Example #1
0
 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");
 }
Example #2
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;
 }