/** * @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; }
/** * @param $entity * @param $version * * @return \Dunglas\ApiBundle\Api\ResourceInterface|null */ public function getResource($entity, $version) { return $this->resourceResolver->getResourceForEntityWithVersion(get_class($entity), $version); }