/** * @param string $name * @param array $array * @param \WoohooLabs\Yang\JsonApi\Schema\ResourceObjects $resources */ public function __construct($name, array $array, ResourceObjects $resources) { $this->name = $name; $this->meta = $this->isArrayKey($array, "meta") ? $array["meta"] : []; $this->links = Links::createFromArray($this->isArrayKey($array, "links") ? $array["links"] : []); if ($this->isArrayKey($array, "data")) { if ($this->isAssociativeArray($array["data"])) { $this->isToOneRelationship = true; if (empty($array["data"]["type"]) === false && empty($array["data"]["id"]) === false) { $this->resourceMap = [["type" => $array["data"]["type"], "id" => $array["data"]["id"]]]; } } else { $this->isToOneRelationship = false; $this->resourceMap = []; foreach ($array["data"] as $item) { if (empty($item["type"]) === false && empty($item["id"]) === false) { $this->resourceMap[] = ["type" => $item["type"], "id" => $item["id"]]; } } } } else { $this->isToOneRelationship = null; } $this->resources = $resources; }
/** * @param array $error * @return $this */ public static function createFromArray(array $error) { $id = empty($error["id"]) === false ? $error["id"] : ""; $meta = isset($error["meta"]) && is_array($error["meta"]) ? $error["meta"] : []; $links = Links::createFromArray(isset($error["links"]) && is_array($error["links"]) ? $error["links"] : []); $status = empty($error["status"]) === false ? $error["status"] : ""; $code = empty($error["code"]) === false ? $error["code"] : ""; $title = empty($error["title"]) === false ? $error["title"] : ""; $detail = empty($error["detail"]) === false ? $error["detail"] : ""; $source = ErrorSource::fromArray(isset($error["source"]) && is_array($error["source"]) ? $error["source"] : []); return new self($id, $meta, $links, $status, $code, $title, $detail, $source); }
/** * @param array $array * @param \WoohooLabs\Yang\JsonApi\Schema\ResourceObjects $resources */ public function __construct($array, ResourceObjects $resources) { $this->type = empty($array["type"]) ? "" : $array["type"]; $this->id = empty($array["id"]) ? "" : $array["id"]; $this->meta = $this->isArrayKey($array, "meta") ? $array["meta"] : []; $this->links = Links::createFromArray($this->isArrayKey($array, "links") ? $array["links"] : []); $this->attributes = $this->isArrayKey($array, "attributes") ? $array["attributes"] : []; $this->relationships = []; if ($this->isArrayKey($array, "relationships")) { foreach ($array["relationships"] as $name => $relationship) { $this->relationships[$name] = new Relationship($name, $relationship, $resources); } } }
/** * @param array $document * @return $this */ public static function createFromArray(array $document) { if (isset($document["jsonApi"]) && is_array($document["jsonApi"])) { $jsonApi = $document["jsonApi"]; } else { $jsonApi = []; } $jsonApiObject = JsonApi::createFromArray($jsonApi); if (isset($document["meta"]) && is_array($document["meta"])) { $meta = $document["meta"]; } else { $meta = []; } if (isset($document["links"]) && is_array($document["links"])) { $links = $document["links"]; } else { $links = []; } $linksObject = Links::createFromArray($links); if (isset($document["data"]) && is_array($document["data"])) { $data = $document["data"]; } else { $data = []; } if (isset($document["included"]) && is_array($document["included"])) { $included = $document["included"]; } else { $included = []; } $resources = new ResourceObjects($data, $included); $errors = []; if (isset($document["errors"]) && is_array($document["errors"])) { foreach ($document["errors"] as $error) { if (is_array($error)) { $errors[] = Error::createFromArray($error); } } } return new self($jsonApiObject, $meta, $linksObject, $resources, $errors); }