Example #1
0
 /**
  * Se consume en GET /personas/{id}/deportes
  * @summary Retorna todos los deportes que practica la persona.
  * @responses 200 array {"$ref":"Deporte"}
  * @responses 404 No se pudo encontrar a la persona
  */
 function get_list($id_persona)
 {
     //si estuviese en el padre, se llamaria como get_deportes_list
     $deportes = modelo_persona::get_deportes($id_persona);
     $deportes_vista = rest_hidratador::hidratar(current($this->_get_modelos()), $deportes);
     rest::response()->get($deportes_vista);
 }
Example #2
0
 public function testMerge()
 {
     $campos = array('a' => array('_compuesto' => array('id' => array('_mapeo' => "a"), 'nombre' => array('_mapeo' => "n"))), 'b' => array('_id'), 'g' => array('_agrupado_por' => 'b', '_compuesto' => array('x' => array('_mapeo' => 'z'))));
     $datos = array(array('a' => 10, 'n' => 'xx', 'b' => 2, 'z' => 4), array('a' => 10, 'n' => 'xx', 'b' => 2, 'z' => 5), array('a' => 10, 'n' => 'xx', 'b' => 2, 'z' => 6));
     $obj = rest_hidratador::hidratar($campos, $datos);
     $exp = array(array('a' => array('id' => 10, 'nombre' => 'xx'), 'b' => 2, 'g' => array(array('x' => 4), array('x' => 5), array('x' => 6))));
     $this->assertEquals($exp, $obj);
 }
Example #3
0
 /**
  * Se consume en GET /personas/{id}/juego_de_mesa
  * @summary Retorna todos los juegos de mesa que juega la persona.
  * @responses 200 array {"$ref":"Juego"}
  * @responses 404 No se pudo encontrar a la persona
  */
 function get_list($id_persona)
 {
     $juegos_mesa = modelo_persona::get_juegos($id_persona, 1);
     if ($juegos_mesa && !empty($juegos_mesa)) {
         $juegos_mesa_vista = rest_hidratador::hidratar(current($this->_get_modelos()), $juegos_mesa);
         rest::response()->get($juegos_mesa_vista);
     } else {
         rest::response()->not_found();
     }
 }
Example #4
0
 /**
  * $relajar_ocultos boolean no checkea campos obligatorios cuando no se especifican
  */
 protected function procesar_input_edicion($relajar_ocultos = false)
 {
     /**Validacion del input del usuario, de acuerdo a la especificacion de la API
      * La PersonaEditar tiene solo los campos editables, ej: el id no se puede setear
      */
     $datos = rest::request()->get_body_json();
     $spec_persona = $this->get_spec_persona(true, 'PersonaEditar');
     rest_validador::validar($datos, $spec_persona, $relajar_ocultos);
     /**Transformo el input del usuario a formato del modelo, deshaciendo la hidratacion.
      * Por ejemplo, cambia el nombre de fecha_nacimiento (vista) a fecha_nac (modelo)
      * Se pueden requerir otros pasos, en casos mas complejos */
     $datos = rest_hidratador::deshidratar_fila($datos, $spec_persona);
     return $datos;
 }