public function testErrores() { $regla = array('int' => array('_validar' => array(rest_validador::TIPO_INT => array('min' => 2, 'max' => 50))), 'numer' => array('_validar' => array(rest_validador::TIPO_NUMERIC => array('min' => 8.34))), 'alfa' => array('_validar' => array(rest_validador::TIPO_ALPHA)), 'alfanum' => array('_validar' => array(rest_validador::TIPO_ALPHANUM)), 'date' => array('_validar' => array(rest_validador::TIPO_DATE => array('format' => 'd/m/Y'))), 'time' => array('_validar' => array(rest_validador::TIPO_TIME => array('format' => 'H:i:s'))), 'enum' => array('_validar' => array(rest_validador::TIPO_ENUM => array('A', 'B', 'C'))), 'long' => array('_validar' => array(rest_validador::TIPO_LONGITUD => array('min' => 2))), 'oblig' => array('_validar' => array(rest_validador::OBLIGATORIO)), 'arr' => array('_validar' => array(rest_validador::TIPO_ARREGLO => array('max' => 2)))); $datos = array('int' => 'a', 'numer' => 8.25, 'alfa' => '123abcd', 'alfanum' => '--abcdXYZ1234567890', 'date' => '30/30/1999', 'time' => '15-30:05', 'enum' => 'D', 'long' => '/', 'arr' => array('a', '4', '5')); try { rest_validador::validar($datos, $regla); } catch (rest_error $e) { //fallaron todas las reglas $this->assertEquals(count($regla), count($e->get_datalle())); return; } $this->assertTrue(false, "No se lanzo la excepción por los errores"); }
/** * $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; }