/** * Parses input structure to a Criterion object. * * @param array $data * @param \eZ\Publish\Core\REST\Common\Input\ParsingDispatcher $parsingDispatcher * * @throws \eZ\Publish\Core\REST\Common\Exceptions\Parser * * @return \eZ\Publish\API\Repository\Values\Content\Query\Criterion\ParentLocationId */ public function parse(array $data, ParsingDispatcher $parsingDispatcher) { if (!array_key_exists('ParentLocationRemoteIdCriterion', $data)) { throw new Exceptions\Parser('Invalid <ParentLocationRemoteIdCriterion> format'); } $contentIdArray = array(); foreach (explode(',', $data['ParentLocationRemoteIdCriterion']) as $parentRemoteId) { $location = $this->locationService->loadLocationByRemoteId($parentRemoteId); $contentIdArray[] = $location->id; } return new ParentLocationIdCriterion($contentIdArray); }
/** * Loads a location object from its $remoteId * * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException If the current user user is not allowed to read this location * @throws \eZ\Publish\API\Repository\Exceptions\NotFoundException If the specified location is not found * * @param string $remoteId * * @return \eZ\Publish\API\Repository\Values\Content\Location */ public function loadLocationByRemoteId($remoteId) { return $this->service->loadLocationByRemoteId($remoteId); }
/** * Loads a location by remote ID. * * @todo remove, or use in loadLocation with filter * * @return \eZ\Publish\Core\REST\Server\Values\LocationList */ public function loadLocationByRemoteId(Request $request) { return new Values\LocationList(array(new Values\RestLocation($location = $this->locationService->loadLocationByRemoteId($request->query->get('remoteId')), $this->locationService->getLocationChildCount($location))), $request->getPathInfo()); }
public function loadNodeByRemoteId($remoteId) { $location = $this->locationService->loadLocationByRemoteId($remoteId); return $this->getSiteNode($location); }