From 76832ed6ac58a55dc76a6b0d2120ba914186a41a Mon Sep 17 00:00:00 2001 From: Pierre Grimaud Date: Wed, 27 May 2020 16:01:10 +0200 Subject: [PATCH] Fix stories and profile without external url --- src/Instagram/Hydrator/StoriesHydrator.php | 23 +++++++++++-------- src/Instagram/Model/Profile.php | 4 ++-- .../Transport/JsonStoriesDataFeed.php | 2 +- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/Instagram/Hydrator/StoriesHydrator.php b/src/Instagram/Hydrator/StoriesHydrator.php index 2d826a2..d75dcfd 100644 --- a/src/Instagram/Hydrator/StoriesHydrator.php +++ b/src/Instagram/Hydrator/StoriesHydrator.php @@ -5,7 +5,6 @@ namespace Instagram\Hydrator; use Instagram\Model\ProfileStory; -use Instagram\Model\StoryMedia; class StoriesHydrator extends AbstractStoryHydrator { @@ -27,17 +26,21 @@ public function __construct() */ public function hydrateStories(\StdClass $data): void { - $this->stories->setOwner($data->owner); - $this->stories->setAllowedToReply($data->can_reply); - $this->stories->setReshareable($data->can_reshare); + if (count($data->reels_media)) { + $medias = current($data->reels_media); - $expiringDate = new \DateTime(); - $expiringDate->setTimestamp($data->expiring_at); - $this->stories->setExpiringDate($expiringDate); + $this->stories->setOwner($medias->owner); + $this->stories->setAllowedToReply($medias->can_reply); + $this->stories->setReshareable($medias->can_reshare); - foreach ($data->items as $item) { - $story = $this->hydrateStory($item); - $this->stories->addStory($story); + $expiringDate = new \DateTime(); + $expiringDate->setTimestamp($medias->expiring_at); + $this->stories->setExpiringDate($expiringDate); + + foreach ($medias->items as $item) { + $story = $this->hydrateStory($item); + $this->stories->addStory($story); + } } } diff --git a/src/Instagram/Model/Profile.php b/src/Instagram/Model/Profile.php index 891698c..59b4056 100644 --- a/src/Instagram/Model/Profile.php +++ b/src/Instagram/Model/Profile.php @@ -176,7 +176,7 @@ public function setProfilePicture(string $profilePicture): void /** * @return string */ - public function getExternalUrl(): string + public function getExternalUrl(): ?string { return $this->externalUrl; } @@ -184,7 +184,7 @@ public function getExternalUrl(): string /** * @param string $externalUrl */ - public function setExternalUrl(string $externalUrl): void + public function setExternalUrl(?string $externalUrl): void { $this->externalUrl = $externalUrl; } diff --git a/src/Instagram/Transport/JsonStoriesDataFeed.php b/src/Instagram/Transport/JsonStoriesDataFeed.php index ad07ec1..338222e 100644 --- a/src/Instagram/Transport/JsonStoriesDataFeed.php +++ b/src/Instagram/Transport/JsonStoriesDataFeed.php @@ -34,6 +34,6 @@ public function fetchData(int $int): \StdClass $data = $this->fetchJsonDataFeed($endpoint); - return $data->data->reels_media[0]; + return $data->data; } }