Beispiel #1
0
 /**
  * Setea las propiedades del modelo y lo devuelve.
  * @param Models\Movie $movie instancia de la clase Models\Movie
  * @param array $movieData array con las propiedades a setear.
  * @return Models\Movie con las propiedades seteadas.
  */
 private function setMovieData($movie, $movieData)
 {
     $movie->setTitle($movieData["title"]);
     $movie->setDescription($movieData["description"]);
     $movie->setDirector($movieData["director"]);
     $movie->setDuration($movieData["duration"]);
     $movie->setReleaseDate($movieData["releaseDate"]);
     $movie->setActors($movieData["actors"]);
     $movie->setStars($movieData["stars"]);
     $movie->setWritter($movieData["writter"]);
     return $movie;
 }
Beispiel #2
0
 /**
  * Devuelve un array con la colección de películas y la cantidad de películas.
  * Permite realizar filtros:
  * Si la propiedad es de tipo string por like '%<valor>%'. Case insensitive.
  * Si la propiedad es de tipo int por = <valor>
  * @param string $value valor por el cual filtrar
  * @param string $field campo por el cual filtrar.
  * @param int $offset nro de registro a partir del cual se devuelve
  * @param int $limit cantidad de registros a devolver.
  * @return array con la colección de películas y la cantidad de películas.
  */
 public function findMovieCollection($value = '%', $field = 'title', $offset = 0, $limit = 10)
 {
     if (empty($value) || empty($field)) {
         $value = '%';
         $field = 'title';
     }
     if ($offset < 0) {
         $offset = 0;
     }
     if ($limit < 0) {
         $limit = 0;
     }
     $qb = $this->entityManager->createQueryBuilder();
     $qb->select('m')->from($this->type, 'm')->orderBy('m.' . $field, 'ASC')->setFirstResult($offset)->setMaxResults($limit);
     if (in_array($field, Movie::queryableStringProperties())) {
         $qb->add('where', $qb->expr()->like($qb->expr()->upper('m.' . $field), '?1'))->setParameter(1, '%' . strtoupper($value) . '%');
     } else {
         $qb->add('where', $qb->expr()->eq('m.' . $field, '?1'))->setParameter(1, $value);
     }
     $query = $qb->getQuery();
     $paginator = new Paginator($query);
     $response["totalCount"] = count($paginator);
     $response["movies"] = $this->collectionToArray($query->getResult());
     return $response;
 }
 /**
  * @param text $statusName
  */
 public function getList($statusName)
 {
     if (!$this->application->request->isGet()) {
         throw new Exception('Method not allowed', 405);
     }
     $statuses = Status::find();
     $statusesArr = $statuses->toArray('name');
     if (!in_array($statusName, $statusesArr)) {
         throw new Exception('Invalid parameter', 405);
     }
     $status = Status::findFirst(array('conditions' => 'name = :name:', 'bind' => array('name' => $statusName)));
     $movies = Movie::find(array('conditions' => 'status_id = :id:', 'bind' => array('id' => $status->getId()), 'order' => 'name'));
     if (!$movies) {
         throw new Exception('Query not executed', 500);
     }
     if ($movies->count() == 0) {
         return array('code' => 204, 'content' => 'No matching Movie instance found');
     }
     return array('code' => 200, 'content' => $movies->toArray());
 }