diff --git a/apirest_yt/clases/pacientes.class.php b/apirest_yt/clases/pacientes.class.php index 05fcb04..37bc4f7 100644 --- a/apirest_yt/clases/pacientes.class.php +++ b/apirest_yt/clases/pacientes.class.php @@ -14,7 +14,8 @@ class pacientes extends conexion{ private $telefono = ""; private $fecha_nacimiento = "0000-00-00"; private $correo = ""; - + private $token = ""; + // 532c75dac0f7f4d311300302538ab49f public function listaPacientes($pagina = 1){ // paginador @@ -39,28 +40,41 @@ class pacientes extends conexion{ public function post($json){ $_respuestas = new respuestas; $datos = json_decode($json, true); - if (!isset($datos['nombre']) || !isset($datos['dni']) || !isset($datos['correo'])){ - return $_respuestas->error_400(); + + // validación token + if (!isset($datos['token'])){ + return $_respuestas->error_401(); } else { - $this->nombre = $datos['nombre']; - $this->dni = $datos['dni']; - $this->correo = $datos['correo']; - if (isset($datos['telefono'])){ $this->telefono = $datos['telefono']; } - if (isset($datos['direccion'])){ $this->direccion = $datos['direccion']; } - if (isset($datos['codigo_postal'])){ $this->codigo_postal = $datos['codigo_postal']; } - if (isset($datos['genero'])){ $this->genero = $datos['genero']; } - if (isset($datos['fecha_nacimiento'])){ $this->fecha_nacimiento = $datos['fecha_nacimiento']; } - $resp = $this->insertarPaciente(); - if ($resp){ - $respuesta = $_respuestas->response; - $respuesta['result'] = array( - 'pacienteid' => $resp - ); - return $respuesta; + $this->token = $datos['token']; + $arrayToken = $this->buscarToken(); + if ($arrayToken){ + if (!isset($datos['nombre']) || !isset($datos['dni']) || !isset($datos['correo'])){ + return $_respuestas->error_400(); + } else { + $this->nombre = $datos['nombre']; + $this->dni = $datos['dni']; + $this->correo = $datos['correo']; + if (isset($datos['telefono'])){ $this->telefono = $datos['telefono']; } + if (isset($datos['direccion'])){ $this->direccion = $datos['direccion']; } + if (isset($datos['codigo_postal'])){ $this->codigo_postal = $datos['codigo_postal']; } + if (isset($datos['genero'])){ $this->genero = $datos['genero']; } + if (isset($datos['fecha_nacimiento'])){ $this->fecha_nacimiento = $datos['fecha_nacimiento']; } + $resp = $this->insertarPaciente(); + if ($resp){ + $respuesta = $_respuestas->response; + $respuesta['result'] = array( + 'pacienteid' => $resp + ); + return $respuesta; + } else { + return $_respuestas->error_500(); + } + } } else { - return $_respuestas->error_500(); + return $_respuestas->error_401("Token inválido o caducado"); } } + } private function insertarPaciente(){ @@ -80,29 +94,41 @@ class pacientes extends conexion{ public function put($json){ $_respuestas = new respuestas; $datos = json_decode($json, true); - if (!isset($datos['pacienteid'])){ - return $_respuestas->error_400(); - } else { - $this->pacienteid = $datos['pacienteid']; - if (isset($datos['nombre'])){ $this->nombre = $datos['nombre']; } - if (isset($datos['dni'])){ $this->dni = $datos['dni']; } - if (isset($datos['correo'])){ $this->correo = $datos['correo']; } - if (isset($datos['telefono'])){ $this->telefono = $datos['telefono']; } - if (isset($datos['direccion'])){ $this->direccion = $datos['direccion']; } - if (isset($datos['codigo_postal'])){ $this->codigo_postal = $datos['codigo_postal']; } - if (isset($datos['genero'])){ $this->genero = $datos['genero']; } - if (isset($datos['fecha_nacimiento'])){ $this->fecha_nacimiento = $datos['fecha_nacimiento']; } - $resp = $this->modificarPaciente(); - if ($resp){ - $respuesta = $_respuestas->response; - $respuesta['result'] = array( - //'filas_afectadas' => $resp, - 'pacienteid' => $this->pacienteid - ); - return $respuesta; + // validación token + if (!isset($datos['token'])){ + return $_respuestas->error_401(); + } else { + $this->token = $datos['token']; + $arrayToken = $this->buscarToken(); + if ($arrayToken){ + if (!isset($datos['pacienteid'])){ + return $_respuestas->error_400(); + } else { + $this->pacienteid = $datos['pacienteid']; + if (isset($datos['nombre'])){ $this->nombre = $datos['nombre']; } + if (isset($datos['dni'])){ $this->dni = $datos['dni']; } + if (isset($datos['correo'])){ $this->correo = $datos['correo']; } + if (isset($datos['telefono'])){ $this->telefono = $datos['telefono']; } + if (isset($datos['direccion'])){ $this->direccion = $datos['direccion']; } + if (isset($datos['codigo_postal'])){ $this->codigo_postal = $datos['codigo_postal']; } + if (isset($datos['genero'])){ $this->genero = $datos['genero']; } + if (isset($datos['fecha_nacimiento'])){ $this->fecha_nacimiento = $datos['fecha_nacimiento']; } + + $resp = $this->modificarPaciente(); + if ($resp){ + $respuesta = $_respuestas->response; + $respuesta['result'] = array( + //'filas_afectadas' => $resp, + 'pacienteid' => $this->pacienteid + ); + return $respuesta; + } else { + return $_respuestas->error_500(); + } + } } else { - return $_respuestas->error_500(); + return $_respuestas->error_401("Token inválido o caducado"); } } } @@ -125,21 +151,32 @@ class pacientes extends conexion{ public function delete($json){ $_respuestas = new respuestas; $datos = json_decode($json, true); - if (!isset($datos['pacienteid'])){ - return $_respuestas->error_400(); - } else { - $this->pacienteid = $datos['pacienteid']; - $resp = $this->eliminarPaciente(); - if ($resp){ - $respuesta = $_respuestas->response; - $respuesta['result'] = array( - //'filas_afectadas' => $resp, - 'pacienteid' => $this->pacienteid - ); - return $respuesta; + // validación token + if (!isset($datos['token'])){ + return $_respuestas->error_401(); + } else { + $this->token = $datos['token']; + $arrayToken = $this->buscarToken(); + if ($arrayToken){ + if (!isset($datos['pacienteid'])){ + return $_respuestas->error_400(); + } else { + $this->pacienteid = $datos['pacienteid']; + $resp = $this->eliminarPaciente(); + if ($resp){ + $respuesta = $_respuestas->response; + $respuesta['result'] = array( + //'filas_afectadas' => $resp, + 'pacienteid' => $this->pacienteid + ); + return $respuesta; + } else { + return $_respuestas->error_500(); + } + } } else { - return $_respuestas->error_500(); + return $_respuestas->error_401("Token inválido o caducado"); } } } @@ -153,6 +190,29 @@ class pacientes extends conexion{ return 0; } } + + private function buscarToken(){ + $query = "SELECT TokenId,UsuarioId,Estado FROM usuarios_token + WHERE Token = '$this->token' AND Estado = 'Activo'"; + $resp = parent::obtenerDatos($query); + if ($resp){ + return $resp; + } else { + return 0; + } + } + + private function actualizarToken($tokenid){ + $date = date("Y m d H:i"); + $query = "UPDATE usuarios_token SET Fecha = '$date' + WHERE TokenId = '$tokenid'"; + $resp = parent::nonQuery($query); + if ($resp >= 1){ + return $resp; + } else { + return 0; + } + } } ?> diff --git a/apirest_yt/clases/respuestas.class.php b/apirest_yt/clases/respuestas.class.php index 1bd59ac..bb0d20c 100644 --- a/apirest_yt/clases/respuestas.class.php +++ b/apirest_yt/clases/respuestas.class.php @@ -42,6 +42,14 @@ class respuestas{ return $this->response; } + public function error_401($mensaje = "No autorizado"){ + $this->response['status'] = "error"; + $this->response['result'] = array( + "error_id" => "401", + "error_msg" => $mensaje + ); + return $this->response; + } } ?>