/**
  * 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);
 }
Esempio n. 3
0
 /**
  * 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());
 }
Esempio n. 4
0
 public function loadNodeByRemoteId($remoteId)
 {
     $location = $this->locationService->loadLocationByRemoteId($remoteId);
     return $this->getSiteNode($location);
 }