/** * Searches for persons based off the specified query. * * @param GedcomxSearchQuery|string $query * @param StateTransitionOption $option,... * * @return PersonSearchResultsState|null */ public function searchForPersons($query, StateTransitionOption $option = null) { $searchLink = $this->getLink(Rel::PERSON_SEARCH); if ($searchLink === null || $searchLink->getTemplate() === null) { return null; } if ($query instanceof GedcomxPersonSearchQueryBuilder) { $queryString = $query->build(); } else { $queryString = $query; } $uri = array($searchLink->getTemplate(), array("q" => $queryString, "access_token" => $this->accessToken)); $request = $this->createAuthenticatedFeedRequest("GET", $uri); return $this->stateFactory->createState("PersonSearchResultsState", $this->client, $request, $this->passOptionsTo('invoke', array($request), func_get_args()), $this->accessToken); }
/** * Searches for places based off the specified query. * * @param GedcomxSearchQuery|string $query * @param StateTransitionOption $option,... * * @throws \Gedcomx\Rs\Client\Exception\GedcomxInvalidQueryParameter * @return \Gedcomx\Rs\Client\PlaceSearchResultsState|null */ public function searchForPlaces($query, StateTransitionOption $option = null) { $searchLink = $this->getLink(Rel::PLACE_SEARCH); if ($searchLink === null || $searchLink->getTemplate() === null) { return null; } if ($query instanceof GedcomxPlaceSearchQueryBuilder) { $queryString = $query->build(); } elseif (is_string($query)) { $queryString = $query; } else { throw new GedcomxInvalidQueryParameter($query); } $uri = array($searchLink->getTemplate(), array("q" => $queryString)); $request = $this->createAuthenticatedFeedRequest("GET", $uri, ['Accept' => Gedcomx::ATOM_JSON_MEDIA_TYPE]); return $this->stateFactory->createState("PlaceSearchResultsState", $this->client, $request, $this->passOptionsTo('invoke', array($request), func_get_args()), $this->accessToken); }