/** * 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); }
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); }
/** * 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(); } }
/** * $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; }