implementación de token para post, put, delete

Pendientes: update, y usar función actualizarToken
respuestas.class.php: agregada función error_401
This commit is contained in:
devfzn 2023-03-25 02:40:05 -03:00
parent 1370cec5c3
commit 42771264b5
Signed by: devfzn
GPG Key ID: E070ECF4A754FDB1
2 changed files with 121 additions and 53 deletions

View File

@ -14,7 +14,8 @@ class pacientes extends conexion{
private $telefono = ""; private $telefono = "";
private $fecha_nacimiento = "0000-00-00"; private $fecha_nacimiento = "0000-00-00";
private $correo = ""; private $correo = "";
private $token = "";
// 532c75dac0f7f4d311300302538ab49f
public function listaPacientes($pagina = 1){ public function listaPacientes($pagina = 1){
// paginador // paginador
@ -39,28 +40,41 @@ class pacientes extends conexion{
public function post($json){ public function post($json){
$_respuestas = new respuestas; $_respuestas = new respuestas;
$datos = json_decode($json, true); $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 { } else {
$this->nombre = $datos['nombre']; $this->token = $datos['token'];
$this->dni = $datos['dni']; $arrayToken = $this->buscarToken();
$this->correo = $datos['correo']; if ($arrayToken){
if (isset($datos['telefono'])){ $this->telefono = $datos['telefono']; } if (!isset($datos['nombre']) || !isset($datos['dni']) || !isset($datos['correo'])){
if (isset($datos['direccion'])){ $this->direccion = $datos['direccion']; } return $_respuestas->error_400();
if (isset($datos['codigo_postal'])){ $this->codigo_postal = $datos['codigo_postal']; } } else {
if (isset($datos['genero'])){ $this->genero = $datos['genero']; } $this->nombre = $datos['nombre'];
if (isset($datos['fecha_nacimiento'])){ $this->fecha_nacimiento = $datos['fecha_nacimiento']; } $this->dni = $datos['dni'];
$resp = $this->insertarPaciente(); $this->correo = $datos['correo'];
if ($resp){ if (isset($datos['telefono'])){ $this->telefono = $datos['telefono']; }
$respuesta = $_respuestas->response; if (isset($datos['direccion'])){ $this->direccion = $datos['direccion']; }
$respuesta['result'] = array( if (isset($datos['codigo_postal'])){ $this->codigo_postal = $datos['codigo_postal']; }
'pacienteid' => $resp if (isset($datos['genero'])){ $this->genero = $datos['genero']; }
); if (isset($datos['fecha_nacimiento'])){ $this->fecha_nacimiento = $datos['fecha_nacimiento']; }
return $respuesta; $resp = $this->insertarPaciente();
if ($resp){
$respuesta = $_respuestas->response;
$respuesta['result'] = array(
'pacienteid' => $resp
);
return $respuesta;
} else {
return $_respuestas->error_500();
}
}
} else { } else {
return $_respuestas->error_500(); return $_respuestas->error_401("Token inválido o caducado");
} }
} }
} }
private function insertarPaciente(){ private function insertarPaciente(){
@ -80,29 +94,41 @@ class pacientes extends conexion{
public function put($json){ public function put($json){
$_respuestas = new respuestas; $_respuestas = new respuestas;
$datos = json_decode($json, true); $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(); // validación token
if ($resp){ if (!isset($datos['token'])){
$respuesta = $_respuestas->response; return $_respuestas->error_401();
$respuesta['result'] = array( } else {
//'filas_afectadas' => $resp, $this->token = $datos['token'];
'pacienteid' => $this->pacienteid $arrayToken = $this->buscarToken();
); if ($arrayToken){
return $respuesta; 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 { } 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){ public function delete($json){
$_respuestas = new respuestas; $_respuestas = new respuestas;
$datos = json_decode($json, true); $datos = json_decode($json, true);
if (!isset($datos['pacienteid'])){
return $_respuestas->error_400();
} else {
$this->pacienteid = $datos['pacienteid'];
$resp = $this->eliminarPaciente(); // validación token
if ($resp){ if (!isset($datos['token'])){
$respuesta = $_respuestas->response; return $_respuestas->error_401();
$respuesta['result'] = array( } else {
//'filas_afectadas' => $resp, $this->token = $datos['token'];
'pacienteid' => $this->pacienteid $arrayToken = $this->buscarToken();
); if ($arrayToken){
return $respuesta; 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 { } else {
return $_respuestas->error_500(); return $_respuestas->error_401("Token inválido o caducado");
} }
} }
} }
@ -153,6 +190,29 @@ class pacientes extends conexion{
return 0; 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;
}
}
} }
?> ?>

View File

@ -42,6 +42,14 @@ class respuestas{
return $this->response; 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;
}
} }
?> ?>