src/objects/event.js (204 lines of code) (raw):

/** * Copyright (c) 2017-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the license found in the * LICENSE file in the root directory of this source tree. * @flow */ import {AbstractCrudObject} from './../abstract-crud-object'; import AbstractObject from './../abstract-object'; import Cursor from './../cursor'; import NullNode from './null-node'; import Profile from './profile'; /** * Event * @extends AbstractCrudObject * @see {@link https://developers.facebook.com/docs/marketing-api/} */ export default class Event extends AbstractCrudObject { static get Fields (): Object { return Object.freeze({ attending_count: 'attending_count', can_guests_invite: 'can_guests_invite', category: 'category', cover: 'cover', created_time: 'created_time', declined_count: 'declined_count', description: 'description', discount_code_enabled: 'discount_code_enabled', end_time: 'end_time', event_times: 'event_times', guest_list_enabled: 'guest_list_enabled', id: 'id', interested_count: 'interested_count', is_canceled: 'is_canceled', is_draft: 'is_draft', is_online: 'is_online', is_page_owned: 'is_page_owned', maybe_count: 'maybe_count', name: 'name', noreply_count: 'noreply_count', online_event_format: 'online_event_format', online_event_third_party_url: 'online_event_third_party_url', owner: 'owner', parent_group: 'parent_group', place: 'place', scheduled_publish_time: 'scheduled_publish_time', start_time: 'start_time', ticket_setting: 'ticket_setting', ticket_uri: 'ticket_uri', ticket_uri_start_sales_time: 'ticket_uri_start_sales_time', ticketing_privacy_uri: 'ticketing_privacy_uri', ticketing_terms_uri: 'ticketing_terms_uri', timezone: 'timezone', type: 'type', updated_time: 'updated_time', }); } static get Category (): Object { return Object.freeze({ art_event: 'ART_EVENT', book_event: 'BOOK_EVENT', class_event: 'CLASS_EVENT', comedy_event: 'COMEDY_EVENT', conference_event: 'CONFERENCE_EVENT', dance_event: 'DANCE_EVENT', dining_event: 'DINING_EVENT', family_event: 'FAMILY_EVENT', festival_event: 'FESTIVAL_EVENT', fitness: 'FITNESS', food_tasting: 'FOOD_TASTING', fundraiser: 'FUNDRAISER', lecture: 'LECTURE', meetup: 'MEETUP', movie_event: 'MOVIE_EVENT', music_event: 'MUSIC_EVENT', neighborhood: 'NEIGHBORHOOD', nightlife: 'NIGHTLIFE', other: 'OTHER', religious_event: 'RELIGIOUS_EVENT', shopping: 'SHOPPING', sports_event: 'SPORTS_EVENT', theater_event: 'THEATER_EVENT', volunteering: 'VOLUNTEERING', workshop: 'WORKSHOP', }); } static get OnlineEventFormat (): Object { return Object.freeze({ fb_live: 'fb_live', messenger_room: 'messenger_room', none: 'none', other: 'other', third_party: 'third_party', }); } static get Type (): Object { return Object.freeze({ community: 'community', friends: 'friends', group: 'group', private: 'private', public: 'public', work_company: 'work_company', }); } static get EventStateFilter (): Object { return Object.freeze({ canceled: 'canceled', draft: 'draft', published: 'published', scheduled_draft_for_publication: 'scheduled_draft_for_publication', }); } static get TimeFilter (): Object { return Object.freeze({ past: 'past', upcoming: 'upcoming', }); } getComments (fields: Array<string>, params: Object = {}, fetchFirstPage: boolean = true): Cursor | Promise<*> { return this.getEdge( NullNode, fields, params, fetchFirstPage, '/comments' ); } getFeed (fields: Array<string>, params: Object = {}, fetchFirstPage: boolean = true): Cursor | Promise<*> { return this.getEdge( NullNode, fields, params, fetchFirstPage, '/feed' ); } getLiveVideos (fields: Array<string>, params: Object = {}, fetchFirstPage: boolean = true): Cursor | Promise<*> { return this.getEdge( NullNode, fields, params, fetchFirstPage, '/live_videos' ); } createLiveVideo (fields: Array<string>, params: Object = {}, pathOverride?: ?string = null): Promise<AbstractObject> { return this.createEdge( '/livevideos', fields, params, null, pathOverride, ); } getPhotos (fields: Array<string>, params: Object = {}, fetchFirstPage: boolean = true): Cursor | Promise<*> { return this.getEdge( NullNode, fields, params, fetchFirstPage, '/photos' ); } getPicture (fields: Array<string>, params: Object = {}, fetchFirstPage: boolean = true): Cursor | Promise<*> { return this.getEdge( NullNode, fields, params, fetchFirstPage, '/picture' ); } getPosts (fields: Array<string>, params: Object = {}, fetchFirstPage: boolean = true): Cursor | Promise<*> { return this.getEdge( NullNode, fields, params, fetchFirstPage, '/posts' ); } getRoles (fields: Array<string>, params: Object = {}, fetchFirstPage: boolean = true): Cursor | Promise<*> { return this.getEdge( Profile, fields, params, fetchFirstPage, '/roles' ); } getTicketTiers (fields: Array<string>, params: Object = {}, fetchFirstPage: boolean = true): Cursor | Promise<*> { return this.getEdge( AbstractObject, fields, params, fetchFirstPage, '/ticket_tiers' ); } getVideos (fields: Array<string>, params: Object = {}, fetchFirstPage: boolean = true): Cursor | Promise<*> { return this.getEdge( NullNode, fields, params, fetchFirstPage, '/videos' ); } get (fields: Array<string>, params: Object = {}): Event { // $FlowFixMe : Support Generic Types return this.read( fields, params ); } }