public static function buildFromJSON($json) { // TODO parse and verify json $jsonObject = json_decode($json); $builder = (new LinkRosterObjectBuilder())->objectID($jsonObject->objectID)->owner($jsonObject->owner); foreach ($jsonObject->roster as $link) { $builder->link(LinkObjectBuilder::buildFromJSON(json_encode($link))); } return $builder->build(); }
public static function buildFromJSON($json) { // TODO parse and verify json $jsonObject = json_decode($json); $builder = (new LinkResponseObjectBuilder())->objectID($jsonObject->objectID)->targetID($jsonObject->targetID)->accept($jsonObject->accept)->datetime($jsonObject->datetime); if (property_exists($jsonObject, "message")) { $builder->message($jsonObject->message); } if (property_exists($jsonObject, "link")) { $builder->link(LinkObjectBuilder::buildFromJSON(json_encode($jsonObject->link))); } return $builder->build(); }
public function testLink() { $link = (new LinkObjectBuilder())->objectID(UOID::createUOID())->link(Sonic::getContextGlobalID())->owner($this->bobSocialRecord->getGlobalID())->build(); $this->assertTrue($link->validate()); $this->assertEquals($link, LinkObjectBuilder::buildFromJSON($link->getJSONString())); $linkRoster = (new LinkRosterObjectBuilder())->objectID(UOID::createUOID())->owner(Sonic::getContextGlobalID())->roster(array($link))->build(); $this->assertTrue($linkRoster->validate()); $this->assertEquals($linkRoster, LinkRosterObjectBuilder::buildFromJSON($linkRoster->getJSONString())); $linkRequest = (new LinkRequestObjectBuilder())->objectID(UOID::createUOID())->initiatingGID(Sonic::getContextGlobalID())->targetedGID($this->bobSocialRecord->getGlobalID())->message('testMessage')->build(); $this->assertTrue($linkRequest->validate()); $this->assertEquals($linkRequest, LinkRequestObjectBuilder::buildFromJSON($linkRequest->getJSONString())); $linkResponse = (new LinkResponseObjectBuilder())->objectID(UOID::createUOID())->targetID(UOID::createUOID())->accept(true)->message('testMessage')->link($link)->build(); $this->assertTrue($linkResponse->validate()); $this->assertEquals($linkResponse, LinkResponseObjectBuilder::buildFromJSON($linkResponse->getJSONString())); }