diff --git a/lib/core/DrPublishApiClient.php b/lib/core/DrPublishApiClient.php index 69d0103..fec2546 100644 --- a/lib/core/DrPublishApiClient.php +++ b/lib/core/DrPublishApiClient.php @@ -417,6 +417,21 @@ public function getCategory($id) return $this->createDrPublishApiClientCategory($responseObject); } + public function searchRelations($query, $limit = 5, $offset = 0) + { + $url = '/relationships.json?' . $query . '&offset=' . $offset . '&limit=' . $limit; + $response = $this->curl($url); + $responseObject = json_decode($response->body); + $drPublishApiClientSearchList = new DrPublishApiClientSearchList($responseObject->search, $response->headers); + if (!empty($responseObject)) { + $relations = $responseObject->items; + foreach ($relations as $relationData) { + $drPublishApiClientSearchList->add($this->createDrPublishApiClientRelation($relationData)); + } + } + return $drPublishApiClientSearchList; + } + public function searchSources($query, $limit = 5, $offset = 0) { $url = '/sources.json?' . $query . '&offset=' . $offset . '&limit=' . $limit; @@ -482,6 +497,11 @@ public function createDrPublishApiClientCategory($category) return new DrPublishApiClientCategory($category, $this); } + public function createDrPublishApiClientRelation($relation) + { + return new DrPublishApiClientRelation($relation, $this); + } + public static function writeCache($identifier, $data) { $cacheFile = self::cacheDirGen($identifier, true); diff --git a/lib/core/entities/DrPublishApiClientRelation.php b/lib/core/entities/DrPublishApiClientRelation.php new file mode 100644 index 0000000..054c6f0 --- /dev/null +++ b/lib/core/entities/DrPublishApiClientRelation.php @@ -0,0 +1,23 @@ +relationshipPriority = $this->relationship_priority; + $this->subjectId = $this->subject_id; + $this->objectId = $this->object_id; + } + + public function __toString() + { + return isset($this->$relationship) ? $this->$relationship : ''; + } +}