/** * @param TwitterSerializable $object * @return \stdClass */ public function serialize(TwitterSerializable $object) { /* @var Tweet $object */ Assertion::true($this->canSerialize($object), 'object must be an instance of Tweet'); Assertion::eq(new \DateTimeZone('UTC'), $object->getDate()->getTimezone()); $tweet = new \stdClass(); $tweet->id = (string) $object->getId(); $tweet->user = $this->userSerializer->serialize($object->getSender()); $tweet->text = $object->getText(); $tweet->lang = $object->getLang(); $tweet->created_at = $object->getDate()->format(TwitterDate::FORMAT); $tweet->entities = $this->twitterEntitiesSerializer->serialize($object->getEntities()); $tweet->coordinates = $object->getCoordinates() ? $this->coordinatesSerializer->serialize($object->getCoordinates()) : null; $tweet->place = $object->getPlace() ? $this->placeSerializer->serialize($object->getPlace()) : null; $tweet->in_reply_to_status_id = $object->getInReplyToStatusId(); $tweet->in_reply_to_user_id = $object->getInReplyToUserId(); $tweet->in_reply_to_screen_name = $object->getInReplyToScreenName(); $tweet->retweeted = $object->isRetweeted(); $tweet->retweet_count = $object->getRetweetCount(); $tweet->favorited = $object->isFavorited(); $tweet->favorite_count = $object->getFavoriteCount(); $tweet->truncated = $object->isTruncated(); $tweet->source = $object->getSource(); if ($object->getRetweetedStatus()) { $tweet->retweeted_status = $this->serialize($object->getRetweetedStatus()); } return $tweet; }
/** * @test */ public function itShouldSerializeWithLegalObject() { $serialized = $this->serializer->serialize($this->getValidObject()); $this->assertEquals($this->id, $serialized->id); $this->assertEquals($this->screenName, $serialized->screen_name); $this->assertEquals($this->name, $serialized->name); $this->assertEquals($this->lang, $serialized->lang); $this->assertEquals($this->location, $serialized->location); $this->assertEquals($this->profileImageUrl, $serialized->profile_background_image_url); $this->assertEquals($this->profileImageUrlHttps, $serialized->profile_background_image_url_https); }
/** * @param TwitterSerializable $object * @return \stdClass */ public function serialize(TwitterSerializable $object) { /* @var TwitterDirectMessage $object */ Assertion::true($this->canSerialize($object), 'object must be an instance of TwitterDirectMessage'); Assertion::eq(new \DateTimeZone('UTC'), $object->getDate()->getTimezone()); $dm = new \stdClass(); $dm->id = (string) $object->getId(); $dm->sender = $this->userSerializer->serialize($object->getSender()); $dm->recipient = $this->userSerializer->serialize($object->getRecipient()); $dm->text = $object->getText(); $dm->created_at = $object->getDate()->format(TwitterDate::FORMAT); $dm->entities = $object->getEntities() ? $this->twitterEntitiesSerializer->serialize($object->getEntities()) : null; $dmObject = new \stdClass(); $dmObject->direct_message = $dm; return $dmObject; }
/** * @param TwitterSerializable $object * @return \stdClass */ public function serialize(TwitterSerializable $object) { /* @var TwitterEvent $object */ Assertion::true($this->canSerialize($object), 'object must be an instance of TwitterEvent'); Assertion::eq(new \DateTimeZone('UTC'), $object->getDate()->getTimezone()); $event = new \stdClass(); $event->event = $object->getType(); $event->source = $this->userSerializer->serialize($object->getSource()); $event->created_at = $object->getDate()->format(TwitterDate::FORMAT); if ($object->getTarget()) { $event->target = $this->userSerializer->serialize($object->getTarget()); } if ($object->getObject()) { $event->target_object = $this->targetSerializer->serialize($object->getObject()); } return $event; }