/**
  * @param Request $request
  * @param array   $criteria
  * @return object
  * @throws NotFoundHttpException
  */
 public function findOr404(Request $request, array $criteria = array())
 {
     if ($request->get('slug')) {
         $default = array('slug' => $request->get('slug'));
     } elseif ($request->get('id')) {
         $default = array('id' => $request->get('id'));
     } else {
         $default = array();
     }
     $criteria = array_merge($default, $criteria);
     if (!($resource = $this->resourceResolver->getResource($this->getRepository(), 'findOneBy', array($this->config->getCriteria($criteria))))) {
         throw new NotFoundHttpException(sprintf('Requested %s does not exist with these criteria: %s.', $this->config->getResourceName(), json_encode($this->config->getCriteria($criteria))));
     }
     return $resource;
 }
Example #2
0
 /**
  * @param $entity
  * @param $version
  *
  * @return \Dunglas\ApiBundle\Api\ResourceInterface|null
  */
 public function getResource($entity, $version)
 {
     return $this->resourceResolver->getResourceForEntityWithVersion(get_class($entity), $version);
 }