/** * @param mixed $model * @return Relationship */ public function profile($model) { $serializer = new AuthProfileSerializer(); $relationship = new Relationship(new Resource($model->getUser(), $serializer)); $relationship->setLinks(['related' => '%apiurl%' . $serializer->getType(null) . '/' . $serializer->getId($model)]); return $this->addRelationshipSelfLink($relationship, $model, 'profile'); }
/** * * @param Relationship $relationship * @param mixed $model * @param string $related * @return Relationship */ protected function addRelationshipSelfLink(Relationship $relationship, $model, $related) { $links = $relationship->getLinks(); $links = !is_array($links) ? [] : $links; $links = array_merge($links, ['self' => $this->getSelf($model) . '/relationships/' . $related]); $relationship->setLinks($links); return $relationship; }
/** * @param mixed $model * @return Relationship */ public function action($model) { $serializer = Action::getSerializer(); $id = $serializer->getId($model->getAction()); if ($id !== null) { $relationship = new Relationship(new Resource($model->getAction(), $serializer)); $relationship->setLinks(['related' => '%apiurl%' . $serializer->getType(null) . '/' . $id]); return $this->addRelationshipSelfLink($relationship, $model, 'action'); } return null; }
/** * @param mixed $model * @return Relationship */ public function performanceTotalStatistic($model) { $serializer = PerformanceStatistic::getSerializer(); $id = $serializer->getId($model->getPerformanceTotalStatistic()); if ($id !== null) { $relationship = new Relationship(new Resource($model->getPerformanceTotalStatistic(), $serializer)); $relationship->setLinks(['related' => '%apiurl%' . $serializer->getType(null) . '/' . $id]); return $this->addRelationshipSelfLink($relationship, $model, 'performance-total-statistic'); } return null; }