/** * Update Event with missing data using GraphAPI. * * @param EventModel $event * @param bool $save * @return string Error message, if any * @throws SystemException */ protected function updateEvent(EventModel $event, $save) { static $accessToken; if (!$accessToken) { try { $externalUser = UserExternalModel::where('user_id', $this->importUserId)->where('provider', UserExternalModel::PROVIDER_FACEBOOK)->firstOrFail(); $accessToken = $externalUser->token; } catch (ModelNotFoundException $e) { $accessToken = GraphAPI::instance()->getAppAccessToken(); } } try { $response = GraphAPI::instance()->get('/' . $event->facebook_id, ['cover', 'description', 'place{id,name,location}', 'ticket_uri'], $accessToken); } catch (SystemException $e) { return $e->getMessage(); } $eventObject = $response->getGraphEvent(); $event->info = $eventObject->getDescription(); $event->ticket_url = $eventObject->getTicketUri(); if ($save) { $coverObject = $eventObject->getCover(); if ($coverObject->getSource()) { $event->save(); $event->importFlyer($coverObject->getSource(), true); } } return $this->updateVenue($event, $eventObject->getPlace(), $save); }