container['page_id'] = $page_id; $this->container['events'] = isset($data['events']) ? $data['events'] : null; } /** * Sets an array of Business Data Event objects * @param FacebookAds\Object\BusinessDataAPI\Event[] $events An array of Business Data Event objects * @return $this */ public function setEvents($events) { $this->container['events'] = $events; return $this; } /** * Sets Partner Agent, which specifies who is sending the event. * @param string $partner_agent The partner agent who is sending the event * @return $this */ public function setPartnerAgent($partner_agent) { $this->container['partner_agent'] = $partner_agent; return $this; } /** * Execute the request * @return EventResponse */ public function execute() { $fields = array(); $params = $this->toJson(); $page = new Page($this->container['page_id']); $response = $page->createBusinessDatum( $fields, $params, ); $event_response = new EventResponse($response->exportAllData()); return $event_response; } /** * convert to JSON * @return array */ public function toJson() { $data = array(); $events = $this->getEvents(); if (!is_null($events)) { foreach ($events as $event) { $event_data = $event->toJson(); array_push($data, $event_data); } } $payload = array( 'data' => $data, 'partner_agent' => $this->container['partner_agent'], ); $payload = array_filter($payload); return $payload; } /** * Gets an array of Event objects * @return FacebookAds\Object\BusinessDataAPI\Event[] */ public function getEvents() { return $this->container['events']; } /** * Gets Partner Agent, which specifies who is sending the event. * @return string */ public function getPartnerAgent() { return $this->container['partner_agent']; } /** * Gets the string presentation of the object * @return string */ public function __toString() { if (defined('JSON_PRETTY_PRINT')) { // use JSON pretty print return json_encode($this, JSON_PRETTY_PRINT); } return json_encode($this); } }