From b0c52a34b476367696d26e1ec907761c59aa7e1c Mon Sep 17 00:00:00 2001 From: jirho Date: Thu, 26 Sep 2024 13:59:30 -0300 Subject: [PATCH] Linting y fomrateo con laravel pint --- app/Constants/HttpStatus.php | 11 +- app/Http/Controllers/ApiController.php | 2 +- .../Controllers/ApiFamilliaresController.php | 62 +-- app/Http/Controllers/ApiPersonaController.php | 444 +++++++++--------- app/Http/Controllers/AuthController.php | 27 +- app/Http/Kernel.php | 1 - app/Http/Middleware/JwtMiddleware.php | 6 +- app/Models/MapucheCiudades.php | 3 +- app/Models/MapucheProvincias.php | 3 +- app/Models/UaderCargosGrupo.php | 12 +- app/Models/UaderDjPersona.php | 7 +- app/Models/UaderGrupoCargoHora.php | 9 +- app/Models/UaderHorariosComunes.php | 2 +- app/Models/UaderMapucheFamiliares.php | 4 +- app/Models/UaderMapuchePersona.php | 97 ++-- app/Models/UaderUnidadAcademica.php | 11 +- config/app.php | 2 +- resources/lang/es/api.php | 2 +- routes/api.php | 29 +- routes/web.php | 4 - 20 files changed, 367 insertions(+), 371 deletions(-) diff --git a/app/Constants/HttpStatus.php b/app/Constants/HttpStatus.php index 036c3e9..0c9c4b7 100644 --- a/app/Constants/HttpStatus.php +++ b/app/Constants/HttpStatus.php @@ -5,21 +5,30 @@ namespace App\Constants; class HttpStatus { const OK = 200; + const CREATED = 201; + const NO_CONTENT = 204; const BAD_REQUEST = 400; + const UNAUTHORIZED = 401; + const FORBIDDEN = 403; + const NOT_FOUND = 404; const INTERNAL_SERVER_ERROR = 500; + const NOT_IMPLEMENTED = 501; + const SERVICE_UNAVAILABLE = 503; + const GATEWAY_TIMEOUT = 504; + const HTTP_VERSION_NOT_SUPPORTED = 505; + const NETWORK_AUTHENTICATION_REQUIRED = 511; const PREDETERMINADA = 404; - } diff --git a/app/Http/Controllers/ApiController.php b/app/Http/Controllers/ApiController.php index 6def8b9..7f063c7 100644 --- a/app/Http/Controllers/ApiController.php +++ b/app/Http/Controllers/ApiController.php @@ -10,7 +10,7 @@ class ApiController extends Controller * Muestra un mensaje por defecto. */ public function bienvenida() - { + { return response()->json( ['respuesta' => trans('api.PREDETERMINADA')], HttpStatus::OK diff --git a/app/Http/Controllers/ApiFamilliaresController.php b/app/Http/Controllers/ApiFamilliaresController.php index 614e023..2dc1160 100644 --- a/app/Http/Controllers/ApiFamilliaresController.php +++ b/app/Http/Controllers/ApiFamilliaresController.php @@ -2,12 +2,11 @@ namespace App\Http\Controllers; -use Illuminate\Http\Request; -use Illuminate\Support\Facades\Log; - +use App\Constants\HttpStatus; use App\Models\UaderMapucheFamiliares; use App\Models\UaderMapuchePersona; -use App\Constants\HttpStatus; +use Illuminate\Http\Request; +use Illuminate\Support\Facades\Log; /** * Controlador para manejar la lógica de las rutas para obtener información de los familiares de una persona. @@ -17,42 +16,44 @@ class ApiFamilliaresController extends Controller /** * Función de ruta para obtener los familiares de una persona a partir del DNI o teléfono proporcionado en la solicitud. * - * @param Request $request La solicitud HTTP que contiene los parámetros 'dni' o 'telefono'. + * @param Request $request La solicitud HTTP que contiene los parámetros 'dni' o 'telefono'. * @return \Illuminate\Http\JsonResponse Respuesta JSON con los datos de los familiares o un error. */ - public function getFamiliares(Request $request){ + public function getFamiliares(Request $request) + { - if(!$request->has('dni') && !$request->has('telefono')){ + if (! $request->has('dni') && ! $request->has('telefono')) { return response()->json( ['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')], HttpStatus::BAD_REQUEST ); - + } - try{ + try { - if ($request->has('dni') && !empty($request->get('dni')) ) { + if ($request->has('dni') && ! empty($request->get('dni'))) { $persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni')); if ($persona) { return self::extraerFamiliaresJson($persona); - } + } } - - if ($request->has('telefono') && !empty($request->get('telefono')) ) { - + + if ($request->has('telefono') && ! empty($request->get('telefono'))) { + $persona = UaderMapuchePersona::BuscarPersonaPorTelefono($request->get('telefono')); if ($persona) { return self::extraerFamiliaresJson($persona); - } + } } - - return response()->json(['error' => trans('persona.NO_ENCONTRADA')], HttpStatus::NOT_FOUND); + + return response()->json(['error' => trans('persona.NO_ENCONTRADA')], HttpStatus::NOT_FOUND); } catch (\Exception $e) { - Log::error(trans('persona.LOG_DATOS') . $e->getMessage()); + Log::error(trans('persona.LOG_DATOS').$e->getMessage()); + return response()->json(['error' => trans('persona.ERROR')], HttpStatus::INTERNAL_SERVER_ERROR); } } @@ -61,18 +62,18 @@ class ApiFamilliaresController extends Controller * Esta funcion es llamada por la función de ruta getFamiliares. * Extrae la información de los familiares de una persona y la retorna en formato JSON. * - * @param \App\Models\UaderMapuchePersona $persona La persona de la cual se van a extraer los familiares. + * @param \App\Models\UaderMapuchePersona $persona La persona de la cual se van a extraer los familiares. * @return \Illuminate\Http\JsonResponse Respuesta JSON con los datos de los familiares. */ public function extraerFamiliaresJson($persona) { $familiares = $persona->familiares; - $datos = array(); + $datos = []; foreach ($familiares as $familiar) { - $datos[] = array( + $datos[] = [ 'dni' => $familiar->nro_docum, 'apellido' => ucwords(strtolower($familiar['desc_apell'])), 'nombres' => ucwords(strtolower($familiar['desc_nombre'])), @@ -80,37 +81,36 @@ class ApiFamilliaresController extends Controller 'fnac' => $familiar->fec_nacim, 'discapacidad' => $familiar->sino_incap, 'a_cargo' => $familiar->sino_cargo, - ); + ]; } - return response()->json($datos); + return response()->json($datos); } /** * Función de ruta para obtener los datos de un familiar específico a partir de su DNI. * - * @param string $dni El DNI del familiar a buscar. + * @param string $dni El DNI del familiar a buscar. * @return \Illuminate\Http\JsonResponse Respuesta JSON con los datos del familiar o un código 404 si no se encuentra. */ public function familiarPorDni($dni) { - if ( UaderMapucheFamiliares::where('nro_docum', $dni)->exists() ) { + if (UaderMapucheFamiliares::where('nro_docum', $dni)->exists()) { $familiar = UaderMapucheFamiliares::where('nro_docum', $dni)->first(); - + return response()->json( - array( + [ 'apellido' => ucwords(strtolower($familiar->desc_apell)), 'nombres' => ucwords(strtolower($familiar->desc_nombre)), 'parentezco' => $familiar->codc_paren, 'fnac' => $familiar->fec_nacim, - ) - ); + ] + ); } else { - return response()->json(array(), 404); + return response()->json([], 404); } } - } diff --git a/app/Http/Controllers/ApiPersonaController.php b/app/Http/Controllers/ApiPersonaController.php index d697623..5aa3dc5 100644 --- a/app/Http/Controllers/ApiPersonaController.php +++ b/app/Http/Controllers/ApiPersonaController.php @@ -2,99 +2,100 @@ namespace App\Http\Controllers; +use App\Constants\HttpStatus; use App\Models\UaderMapuchePersona; use Illuminate\Http\Request; -use App\Constants\HttpStatus; use Illuminate\Support\Facades\Log; class ApiPersonaController extends Controller { - /** * Funcion de la ruta getDatos. * Devuelve los datos básicos de una persona en formato JSON. * - * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros de búsqueda. + * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros de búsqueda. * @return \Illuminate\Http\JsonResponse La respuesta JSON con los datos de la persona encontrada, o un mensaje de error si no se encuentra. */ - public function getDatos(Request $request){ + public function getDatos(Request $request) + { - if(!$request->has('dni') && !$request->has('telefono')){ + if (! $request->has('dni') && ! $request->has('telefono')) { return response()->json( ['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')], HttpStatus::BAD_REQUEST ); } - try{ + try { if ($request->has('dni')) { $persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni')); if ($persona) { return ApiPersonaController::extraerDatosJson($persona); - } + } } - + if ($request->has('telefono')) { $persona = UaderMapuchePersona::BuscarPersonaPorTelefono($request->get('telefono')); if ($persona) { return ApiPersonaController::extraerDatosJson($persona); - } + } } - - return response()->json(['error' => trans('persona.NO_ENCONTRADA')], HttpStatus::NOT_FOUND); + + return response()->json(['error' => trans('persona.NO_ENCONTRADA')], HttpStatus::NOT_FOUND); } catch (\Exception $e) { - Log::error(trans('persona.LOG_DATOS') . $e->getMessage()); + Log::error(trans('persona.LOG_DATOS').$e->getMessage()); + return response()->json(['error' => trans('persona.ERROR')], HttpStatus::INTERNAL_SERVER_ERROR); } } - /** + /** * Funcion de ruta, obtiene los horarios de una persona en una sede específica según el DNI o teléfono. * - * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros necesarios: - * - 'dni' o 'telefono' para identificar a la persona. - * - 'sede' para especificar la sede. - * - 'funcion' para especificar la función. - * - 'dia' para especificar el día de la semana. - * - 'tipo_horario' para especificar el tipo de horario. - * + * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros necesarios: + * - 'dni' o 'telefono' para identificar a la persona. + * - 'sede' para especificar la sede. + * - 'funcion' para especificar la función. + * - 'dia' para especificar el día de la semana. + * - 'tipo_horario' para especificar el tipo de horario. * @return \Illuminate\Http\JsonResponse La respuesta JSON con los horarios de la persona, o un mensaje de error si no se encuentra la información. */ - public function getHorariosPorSede(Request $request){ + public function getHorariosPorSede(Request $request) + { - if(!$request->has('telefono') && !$request->has('dni')){ + if (! $request->has('telefono') && ! $request->has('dni')) { return response()->json(['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')], HttpStatus::BAD_REQUEST); } - if(!$request->has('sede')){ + if (! $request->has('sede')) { return response()->json(['error' => trans('persona.DEBE_INGRESAR_SEDE')], HttpStatus::BAD_REQUEST); } - if(!$request->has('funcion')){ + if (! $request->has('funcion')) { return response()->json(['error' => trans('persona.DEBE_INGRESAR_FUNCION')], HttpStatus::BAD_REQUEST); } - if(!$request->has('dia')){ + if (! $request->has('dia')) { return response()->json(['error' => trans('persona.DEBE_INGRESAR_DIA')], HttpStatus::BAD_REQUEST); } - if(!$request->has('tipo_horario')){ + if (! $request->has('tipo_horario')) { return response()->json(['error' => trans('persona.DEBE_INGRESAR_TIPO_HORARIO')], HttpStatus::BAD_REQUEST); } try { - if($request->has('dni')){ - + if ($request->has('dni')) { + $persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni')); - - if($persona){ - + + if ($persona) { + return ApiPersonaController::extraerHorariosPorSede( $persona, $request->get('sede'), @@ -104,13 +105,13 @@ class ApiPersonaController extends Controller ); } } - - if($request->has('telefono')){ - + + if ($request->has('telefono')) { + $persona = UaderMapuchePersona::BuscarPersonaPorTelefono($request->get('telefono')); - - if($persona){ - + + if ($persona) { + return ApiPersonaController::extraerHorariosPorSede( $persona, $request->get('sede'), @@ -120,13 +121,13 @@ class ApiPersonaController extends Controller ); } } - - return response()->json(['error' => trans('persona.NO_ENCONTRADA')], HttpStatus::BAD_REQUEST); + return response()->json(['error' => trans('persona.NO_ENCONTRADA')], HttpStatus::BAD_REQUEST); } catch (\Exception $e) { - Log::error(trans('persona.LOG_HORARIOS') . $e->getMessage()); + Log::error(trans('persona.LOG_HORARIOS').$e->getMessage()); + return response()->json(['error' => trans('persona.ERROR')], HttpStatus::INTERNAL_SERVER_ERROR); } } @@ -134,45 +135,45 @@ class ApiPersonaController extends Controller /** * Funcion de ruta, obtiene los horarios de una persona en una unidad académica específica según el DNI o teléfono. * - * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros necesarios: - * - 'dni' o 'telefono' para identificar a la persona. - * - 'unidad_academica' para especificar la unidad académica. - * - 'funcion' para especificar la función. - * - 'dia' para especificar el día de la semana. - * - 'tipo_horario' para especificar el tipo de horario. - * + * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros necesarios: + * - 'dni' o 'telefono' para identificar a la persona. + * - 'unidad_academica' para especificar la unidad académica. + * - 'funcion' para especificar la función. + * - 'dia' para especificar el día de la semana. + * - 'tipo_horario' para especificar el tipo de horario. * @return \Illuminate\Http\JsonResponse La respuesta JSON con los horarios de la persona, o un mensaje de error si no se encuentra la información. */ - public function getHorariosPorUnidadAcademica(Request $request){ + public function getHorariosPorUnidadAcademica(Request $request) + { - if(!$request->has('telefono') && !$request->has('dni')){ + if (! $request->has('telefono') && ! $request->has('dni')) { return response()->json(['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')], HttpStatus::BAD_REQUEST); } - if(!$request->has('unidad_academica')){ + if (! $request->has('unidad_academica')) { return response()->json(['error' => trans('persona.DEBE_INGRESAR_UNIDAD_ACADEMICA')], HttpStatus::BAD_REQUEST); } - if(!$request->has('funcion')){ + if (! $request->has('funcion')) { return response()->json(['error' => trans('persona.DEBE_INGRESAR_FUNCION')], HttpStatus::BAD_REQUEST); } - if(!$request->has('dia')){ + if (! $request->has('dia')) { return response()->json(['error' => trans('persona.DEBE_INGRESAR_DIA')], HttpStatus::BAD_REQUEST); } - if(!$request->has('tipo_horario')){ + if (! $request->has('tipo_horario')) { return response()->json(['error' => trans('persona.DEBE_INGRESAR_TIPO_HORARIO')], HttpStatus::BAD_REQUEST); } try { - if($request->has('dni')){ - + if ($request->has('dni')) { + $persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni')); - - if($persona){ - + + if ($persona) { + return ApiPersonaController::extraerHorariosPorUnidadAcademica( $persona, $request->get('unidad_academica'), @@ -182,13 +183,13 @@ class ApiPersonaController extends Controller ); } } - - if($request->has('telefono')){ - + + if ($request->has('telefono')) { + $persona = UaderMapuchePersona::BuscarPersonaPorTelefono($request->get('telefono')); - - if($persona){ - + + if ($persona) { + return ApiPersonaController::extraerHorariosPorUnidadAcademica( $persona, $request->get('unidad_academica'), @@ -198,13 +199,13 @@ class ApiPersonaController extends Controller ); } } - - return response()->json(['error' => trans('persona.NO_ENCONTRADA')], HttpStatus::BAD_REQUEST); + return response()->json(['error' => trans('persona.NO_ENCONTRADA')], HttpStatus::BAD_REQUEST); } catch (\Exception $e) { - Log::error(trans('persona.LOG_HORARIOS') . $e->getMessage()); + Log::error(trans('persona.LOG_HORARIOS').$e->getMessage()); + return response()->json(['error' => trans('persona.ERROR')], HttpStatus::INTERNAL_SERVER_ERROR); } } @@ -212,9 +213,8 @@ class ApiPersonaController extends Controller /** * Funcion de ruta, obtiene la dirección de una persona según el DNI o el número de teléfono. * - * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros de búsqueda: - * - 'dni' o 'telefono' para identificar a la persona. - * + * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros de búsqueda: + * - 'dni' o 'telefono' para identificar a la persona. * @return \Illuminate\Http\JsonResponse La respuesta JSON con los datos de la persona encontrada, o un mensaje de error si no se encuentra. */ public function getDireccion(Request $request) @@ -222,40 +222,40 @@ class ApiPersonaController extends Controller /** * Obtiene la direccion de una persona según el DNI o el número de teléfono. * - * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros de búsqueda. + * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros de búsqueda. * @return \Illuminate\Http\JsonResponse La respuesta JSON con los datos de la persona encontrada, o un mensaje de error si no se encuentra. */ - - if(!$request->has('dni') && !$request->has('telefono')){ + if (! $request->has('dni') && ! $request->has('telefono')) { return response()->json(['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')], HttpStatus::BAD_REQUEST); } - try{ + try { if ($request->has('dni')) { $persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni')); - + if ($persona) { return ApiPersonaController::extraerDireccion($persona); - } + } } - + if ($request->has('telefono')) { $persona = UaderMapuchePersona::BuscarPersonaPorTelefono($request->get('telefono')); if ($persona) { return ApiPersonaController::extraerDireccion($persona); - } + } } - - return response()->json(['error' => trans('persona.NO_ENCONTRADA')], HttpStatus::NOT_FOUND); + + return response()->json(['error' => trans('persona.NO_ENCONTRADA')], HttpStatus::NOT_FOUND); } catch (\Exception $e) { - Log::error(trans('persona.LOG_DATOS') . $e->getMessage()); + Log::error(trans('persona.LOG_DATOS').$e->getMessage()); + return response()->json(['error' => trans('persona.ERROR')], HttpStatus::INTERNAL_SERVER_ERROR); } } @@ -264,46 +264,48 @@ class ApiPersonaController extends Controller * Funcion de ruta que obtiene las funciones de una persona en una determinada unidad academica * según el DNI o el número de teléfono. * - * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros de búsqueda. + * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros de búsqueda. * @return \Illuminate\Http\JsonResponse La respuesta JSON con los datos de la persona encontrada, o un mensaje de error si no se encuentra. */ - public function getFuncionesPorUnidadAcademica(Request $request){ + public function getFuncionesPorUnidadAcademica(Request $request) + { - if(!$request->has('unidad_academica')){ + if (! $request->has('unidad_academica')) { return response()->json(['error' => trans('persona.DEBE_INGRESAR_UNIDAD_ACADEMICA')], HttpStatus::BAD_REQUEST); } - - if(!$request->has('dni') && !$request->has('telefono')){ + + if (! $request->has('dni') && ! $request->has('telefono')) { return response()->json(['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')], HttpStatus::BAD_REQUEST); } - try{ + try { if ($request->has('dni')) { $persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni')); - + if ($persona) { return ApiPersonaController::extraerFuncionesPorUnidadAcademica($persona, $request->get('unidad_academica')); - } + } } - + if ($request->has('telefono')) { $persona = UaderMapuchePersona::BuscarPersonaPorTelefono($request->get('telefono')); if ($persona) { return ApiPersonaController::extraerFuncionesPorUnidadAcademica($persona, $request->get('unidad_academica')); - } + } } - - return response()->json(['error' => trans('persona.NO_ENCONTRADA')], HttpStatus::NOT_FOUND); + + return response()->json(['error' => trans('persona.NO_ENCONTRADA')], HttpStatus::NOT_FOUND); } catch (\Exception $e) { - Log::error(trans('persona.LOG_DATOS') . $e->getMessage()); + Log::error(trans('persona.LOG_DATOS').$e->getMessage()); + return response()->json(['error' => trans('persona.ERROR')], HttpStatus::INTERNAL_SERVER_ERROR); } } @@ -312,106 +314,109 @@ class ApiPersonaController extends Controller * Funcion de ruta que obtiene las funciones de una persona en una determinada sede * según el DNI o el número de teléfono. * - * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros de búsqueda. + * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros de búsqueda. * @return \Illuminate\Http\JsonResponse La respuesta JSON con los datos de la persona encontrada, o un mensaje de error si no se encuentra. */ - public function getFuncionesPorSede(Request $request){ + public function getFuncionesPorSede(Request $request) + { - if(!$request->has('sede')){ + if (! $request->has('sede')) { return response()->json(['error' => trans('persona.DEBE_INGRESAR_SEDE')], HttpStatus::BAD_REQUEST); } - - if(!$request->has('dni') && !$request->has('telefono')){ + + if (! $request->has('dni') && ! $request->has('telefono')) { return response()->json(['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')], HttpStatus::BAD_REQUEST); } - try{ + try { if ($request->has('dni')) { $persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni')); - + if ($persona) { return ApiPersonaController::extraerFuncionesPorSede($persona, $request->get('sede')); - } + } } - + if ($request->has('telefono')) { $persona = UaderMapuchePersona::BuscarPersonaPorTelefono($request->get('telefono')); if ($persona) { return ApiPersonaController::extraerFuncionesPorSede($persona, $request->get('sede')); - } + } } - - return response()->json(['error' => trans('persona.NO_ENCONTRADA')], HttpStatus::NOT_FOUND); + + return response()->json(['error' => trans('persona.NO_ENCONTRADA')], HttpStatus::NOT_FOUND); } catch (\Exception $e) { - Log::error(trans('persona.LOG_DATOS') . $e->getMessage()); + Log::error(trans('persona.LOG_DATOS').$e->getMessage()); + return response()->json(['error' => trans('persona.ERROR')], HttpStatus::INTERNAL_SERVER_ERROR); } } - # SUBRUTAS INVOCADAS POR LAS RUTAS: + // SUBRUTAS INVOCADAS POR LAS RUTAS: /** * Devuelve en formato JSON los horarios asignados a una persona en una sede específica, filtrados por función, día y tipo de horario. * - * @param \App\Models\Persona $persona El objeto de la persona cuya declaración jurada se utiliza para extraer los horarios. - * @param string $sede El código de la sede para filtrar las funciones. - * @param int $funcion El ID de la función para filtrar los horarios. - * @param int $dia El día de la semana para filtrar los horarios. - * @param string $tipoHorario El tipo de horario para filtrar los horarios. + * @param \App\Models\Persona $persona El objeto de la persona cuya declaración jurada se utiliza para extraer los horarios. + * @param string $sede El código de la sede para filtrar las funciones. + * @param int $funcion El ID de la función para filtrar los horarios. + * @param int $dia El día de la semana para filtrar los horarios. + * @param string $tipoHorario El tipo de horario para filtrar los horarios. * @return \Illuminate\Http\JsonResponse Una respuesta JSON que contiene la información de la persona, la función y los horarios correspondientes a la sede especificada. */ - public function extraerHorariosPorSede($persona, $sede, $funcion, $dia, $tipoHorario){ + public function extraerHorariosPorSede($persona, $sede, $funcion, $dia, $tipoHorario) + { $declaracion_jurada = $persona->declaracion_jurada; - if(!$declaracion_jurada){ + if (! $declaracion_jurada) { return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND); } $cargos = $declaracion_jurada->CargosGrupo()->where('estado', 'A')->get(); - if(empty($cargos)){ + if (empty($cargos)) { return response()->json(['error' => trans('persona.NO_TIENE_DESIGNACIONES')], HttpStatus::NOT_FOUND); } - $horarios = array(); + $horarios = []; $aux_horario = null; $unidadAcademica = null; foreach ($cargos as $cargo) { - if($unidadAcademica == null){ + if ($unidadAcademica == null) { $unidadAcademica = $cargo->Sede->ua_guarani; } - if($cargo->id_funcion == $funcion && $cargo->Sede->uacad == $sede){ - - # Si vino + if ($cargo->id_funcion == $funcion && $cargo->Sede->uacad == $sede) { + + // Si vino foreach ($cargo->GrupoHorario as $grupo_horario) { foreach ($grupo_horario->Horarios as $horario) { - if ($horario->dia_semanal == $dia && $horario->tipo_horario == $tipoHorario){ + if ($horario->dia_semanal == $dia && $horario->tipo_horario == $tipoHorario) { $aux_horario = [ 'tipo_horario' => $horario->tipo_horario, 'hora_entra' => $horario->hora_entra, - 'hora_sale' => $horario->hora_sale + 'hora_sale' => $horario->hora_sale, ]; - - if(!in_array($aux_horario, $horarios)){ + + if (! in_array($aux_horario, $horarios)) { $horarios[] = [ 'tipo_horario' => $horario->tipo_horario, 'hora_entra' => $horario->hora_entra, - 'hora_sale' => $horario->hora_sale + 'hora_sale' => $horario->hora_sale, ]; } } @@ -420,23 +425,23 @@ class ApiPersonaController extends Controller } } - if(empty($horarios)){ + if (empty($horarios)) { return response()->json(['error' => trans('persona.SIN_HORARIOS')], HttpStatus::NOT_FOUND); } - # Ordenar el arreglo de horarios usando la función de comparación + // Ordenar el arreglo de horarios usando la función de comparación usort($horarios, [ApiPersonaController::class, 'compararHorarios']); - $datos = array( + $datos = [ 'id' => $declaracion_jurada->id_persona, - 'nombre' => ucwords(strtolower(trim($persona->desc_nombr))) . ' ' . ucwords(strtolower(trim($persona->desc_appat))), + 'nombre' => ucwords(strtolower(trim($persona->desc_nombr))).' '.ucwords(strtolower(trim($persona->desc_appat))), 'funcion' => [ 'tipo' => $funcion, 'unidad_academica' => $unidadAcademica, 'sede' => $sede, ], 'horarios' => $horarios, - ); + ]; return response()->json($datos, HttpStatus::OK); } @@ -444,57 +449,58 @@ class ApiPersonaController extends Controller /** * Devuelve en formato JSON los horarios asignados a una persona en una unidad académica específica, filtrados por función, día y tipo de horario. * - * @param \App\Models\Persona $persona El objeto de la persona cuya declaración jurada se utiliza para extraer los horarios. - * @param string $unidadAcademica El código de la unidad académica para filtrar las funciones. - * @param int $funcion El ID de la función para filtrar los horarios. - * @param int $dia El día de la semana para filtrar los horarios. - * @param string $tipoHorario El tipo de horario para filtrar los horarios. + * @param \App\Models\Persona $persona El objeto de la persona cuya declaración jurada se utiliza para extraer los horarios. + * @param string $unidadAcademica El código de la unidad académica para filtrar las funciones. + * @param int $funcion El ID de la función para filtrar los horarios. + * @param int $dia El día de la semana para filtrar los horarios. + * @param string $tipoHorario El tipo de horario para filtrar los horarios. * @return \Illuminate\Http\JsonResponse Una respuesta JSON que contiene la información de la persona, la función y los horarios correspondientes a la unidad académica especificada. */ - public function extraerHorariosPorUnidadAcademica($persona, $unidadAcademica, $funcion, $dia, $tipoHorario){ + public function extraerHorariosPorUnidadAcademica($persona, $unidadAcademica, $funcion, $dia, $tipoHorario) + { $declaracion_jurada = $persona->declaracion_jurada; - if(!$declaracion_jurada){ + if (! $declaracion_jurada) { return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND); } $cargos = $declaracion_jurada->CargosGrupo()->where('estado', 'A')->get(); - if(empty($cargos)){ + if (empty($cargos)) { return response()->json(['error' => trans('persona.NO_TIENE_DESIGNACIONES')], HttpStatus::NOT_FOUND); } - $horarios = array(); + $horarios = []; $aux_horario = null; $sede = null; foreach ($cargos as $cargo) { - if($sede == null){ + if ($sede == null) { $sede = $cargo->Sede->uacad; } - if($cargo->id_funcion == $funcion && $cargo->Sede->ua_guarani == $unidadAcademica){ - - # Si vino + if ($cargo->id_funcion == $funcion && $cargo->Sede->ua_guarani == $unidadAcademica) { + + // Si vino foreach ($cargo->GrupoHorario as $grupo_horario) { foreach ($grupo_horario->Horarios as $horario) { - if ($horario->dia_semanal == $dia && $horario->tipo_horario == $tipoHorario){ + if ($horario->dia_semanal == $dia && $horario->tipo_horario == $tipoHorario) { $aux_horario = [ 'tipo_horario' => $horario->tipo_horario, 'hora_entra' => $horario->hora_entra, - 'hora_sale' => $horario->hora_sale + 'hora_sale' => $horario->hora_sale, ]; - - if(!in_array($aux_horario, $horarios)){ + + if (! in_array($aux_horario, $horarios)) { $horarios[] = [ 'tipo_horario' => $horario->tipo_horario, 'hora_entra' => $horario->hora_entra, - 'hora_sale' => $horario->hora_sale + 'hora_sale' => $horario->hora_sale, ]; } } @@ -503,23 +509,23 @@ class ApiPersonaController extends Controller } } - if(empty($horarios)){ + if (empty($horarios)) { return response()->json(['error' => trans('persona.SIN_HORARIOS')], HttpStatus::NOT_FOUND); } - # Ordenar el arreglo de horarios usando la función de comparación + // Ordenar el arreglo de horarios usando la función de comparación usort($horarios, [ApiPersonaController::class, 'compararHorarios']); - $datos = array( + $datos = [ 'id' => $declaracion_jurada->id_persona, - 'nombre' => ucwords(strtolower(trim($persona->desc_nombr))) . ' ' . ucwords(strtolower(trim($persona->desc_appat))), + 'nombre' => ucwords(strtolower(trim($persona->desc_nombr))).' '.ucwords(strtolower(trim($persona->desc_appat))), 'funcion' => [ 'tipo' => $funcion, 'unidad_academica' => $unidadAcademica, 'sede' => $sede, ], 'horarios' => $horarios, - ); + ]; return response()->json($datos, HttpStatus::OK); } @@ -527,25 +533,26 @@ class ApiPersonaController extends Controller /** * Extrae los datos de la declaracion jurada de una persona y los retorna como JSON. * - * @param mixed $persona La instancia de la persona de la cual se extraerán los datos. + * @param mixed $persona La instancia de la persona de la cual se extraerán los datos. * @return \Illuminate\Http\JsonResponse La respuesta JSON con los datos extraídos de la persona. */ - public static function extraerDatosJson($persona){ - + public static function extraerDatosJson($persona) + { + $declaracion_jurada = $persona->declaracion_jurada; - if(!$declaracion_jurada){ - + if (! $declaracion_jurada) { + return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND); } - $datos = array( - 'id' => $declaracion_jurada->id_persona ?? null, # id persona de la tabla 'uader_persona' + $datos = [ + 'id' => $declaracion_jurada->id_persona ?? null, // id persona de la tabla 'uader_persona' 'dni' => $persona->nro_docum ?? null, 'apellido' => ucwords(strtolower(trim($persona->desc_appat))) ?? null, 'nombres' => ucwords(strtolower(trim($persona->desc_nombr))) ?? null, - 'telefono' => '549' . preg_replace('([^0-9])', '', trim($persona->telefono_celular)) ?? null, + 'telefono' => '549'.preg_replace('([^0-9])', '', trim($persona->telefono_celular)) ?? null, 'email' => strtolower(trim($persona->correo_electronico)) ?? null, - ); + ]; return response()->json($datos, HttpStatus::OK); } @@ -553,22 +560,23 @@ class ApiPersonaController extends Controller /** * Extrae los datos de la direccion de una persona para ser devueltos como respuesta JSON. * - * @param App\Models\UaderMapuchePersona $persona La instancia de la persona de la cual se extraerán los datos. + * @param App\Models\UaderMapuchePersona $persona La instancia de la persona de la cual se extraerán los datos. * @return \Illuminate\Http\JsonResponse La respuesta JSON con los datos extraídos de la persona. - **/ - public static function extraerDireccion($persona){ + **/ + public static function extraerDireccion($persona) + { $declaracion_jurada = $persona->declaracion_jurada; - if(!$declaracion_jurada){ - - return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND); - } - - $datos = array( + if (! $declaracion_jurada) { + + return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND); + } + + $datos = [ 'id' => $declaracion_jurada->id_persona, - 'nombre' => ucwords(strtolower(trim($persona->desc_nombr))) . ' ' .ucwords(strtolower(trim($persona->desc_appat))) ?? null, - 'domicilio' => array( + 'nombre' => ucwords(strtolower(trim($persona->desc_nombr))).' '.ucwords(strtolower(trim($persona->desc_appat))) ?? null, + 'domicilio' => [ 'calle' => strtolower(trim($persona->calle)) ?? null, 'numero' => strtolower(trim($persona->numero)) ?? null, 'piso' => strtolower(trim($persona->piso)) ?? null, @@ -580,9 +588,9 @@ class ApiPersonaController extends Controller 'casa_manzana' => strtolower(trim($persona->casa_manzana)) ?? null, 'localidad' => ucfirst(strtolower(trim($persona->Localidad->desc_localidad))) ?? null, 'provincia' => trim($persona->Provincia->descripcion_pcia) ?? null, - ) - ); - + ], + ]; + return response()->json($datos, HttpStatus::OK); } @@ -590,37 +598,38 @@ class ApiPersonaController extends Controller * Extrae las funciones asignadas a una persona en una unidad académica específica * y las devuelve en un formato JSON. * - * @param \App\Models\Persona $persona El objeto de la persona cuya declaración jurada se utiliza para extraer las funciones. - * @param string $unidadAcademica El código de la unidad académica para filtrar las funciones. + * @param \App\Models\Persona $persona El objeto de la persona cuya declaración jurada se utiliza para extraer las funciones. + * @param string $unidadAcademica El código de la unidad académica para filtrar las funciones. * @return \Illuminate\Http\JsonResponse Una respuesta JSON que contiene la información de la persona y las funciones correspondientes a la unidad académica especificada. */ - public static function extraerFuncionesPorUnidadAcademica($persona, $unidadAcademica){ - + public static function extraerFuncionesPorUnidadAcademica($persona, $unidadAcademica) + { + $declaracion_jurada = $persona->declaracion_jurada; - if(!$declaracion_jurada){ + if (! $declaracion_jurada) { return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND); } $cargos = $declaracion_jurada->CargosGrupo()->where('estado', 'A')->get(); - if(empty($cargos)){ + if (empty($cargos)) { return response()->json(['error' => trans('persona.NO_TIENE_DESIGNACIONES')], HttpStatus::NOT_FOUND); } - $cargosUnidadAcademica = array(); + $cargosUnidadAcademica = []; foreach ($cargos as $cargo) { - if($cargo->Sede->ua_guarani == $unidadAcademica){ + if ($cargo->Sede->ua_guarani == $unidadAcademica) { $cargosUnidadAcademica[] = $cargo; } } - if(empty($cargosUnidadAcademica)){ + if (empty($cargosUnidadAcademica)) { return response()->json(['error' => trans('persona.NO_TIENE_DESIGNACIONES_UA')], HttpStatus::NOT_FOUND); } - $funciones = array(); + $funciones = []; $funcion = null; foreach ($cargosUnidadAcademica as $cargoUnidadAcademica) { @@ -628,19 +637,19 @@ class ApiPersonaController extends Controller $funcion = [ 'tipo' => $cargoUnidadAcademica->id_funcion, 'unidad_academica' => $unidadAcademica, - 'sede' => $cargoUnidadAcademica->Sede->uacad + 'sede' => $cargoUnidadAcademica->Sede->uacad, ]; - - if(!in_array($funcion, $funciones)){ # para que no se repitan las funciones por cargo + + if (! in_array($funcion, $funciones)) { // para que no se repitan las funciones por cargo $funciones[] = $funcion; } } - $datos = array( + $datos = [ 'id' => $declaracion_jurada->id_persona, - 'nombre' => ucwords(strtolower(trim($persona->desc_nombr))) . ' ' . ucwords(strtolower(trim($persona->desc_appat))), + 'nombre' => ucwords(strtolower(trim($persona->desc_nombr))).' '.ucwords(strtolower(trim($persona->desc_appat))), 'funciones' => $funciones, - ); + ]; return response()->json($datos, HttpStatus::OK); } @@ -649,42 +658,43 @@ class ApiPersonaController extends Controller * Extrae las funciones asignadas a una persona en una sede específica * y las devuelve en un formato JSON. * - * @param \App\Models\Persona $persona El objeto de la persona cuya declaración jurada se utiliza para extraer las funciones. - * @param string $sede El código de la sede para filtrar las funciones. + * @param \App\Models\Persona $persona El objeto de la persona cuya declaración jurada se utiliza para extraer las funciones. + * @param string $sede El código de la sede para filtrar las funciones. * @return \Illuminate\Http\JsonResponse Una respuesta JSON que contiene la información de la persona y las funciones correspondientes a la sede especificada. */ - public static function extraerFuncionesPorSede($persona, $sede){ - + public static function extraerFuncionesPorSede($persona, $sede) + { + $declaracion_jurada = $persona->declaracion_jurada; - if(!$declaracion_jurada){ + if (! $declaracion_jurada) { return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND); } $cargos = $declaracion_jurada->CargosGrupo()->where('estado', 'A')->get(); - if(empty($cargos)){ + if (empty($cargos)) { return response()->json(['error' => trans('persona.NO_TIENE_DESIGNACIONES')], HttpStatus::NOT_FOUND); } - $cargosSedes = array(); + $cargosSedes = []; $unidadAcademica = null; foreach ($cargos as $cargo) { - if($cargo->Sede->uacad == $sede){ - + if ($cargo->Sede->uacad == $sede) { + $cargosSedes[] = $cargo; - if($unidadAcademica == null){ + if ($unidadAcademica == null) { $unidadAcademica = $cargo->Sede->ua_guarani; } } } - if(empty($cargosSedes)){ + if (empty($cargosSedes)) { return response()->json(['error' => trans('persona.NO_TIENE_DESIGNACIONES_SEDE')], HttpStatus::NOT_FOUND); } - $funciones = array(); + $funciones = []; $funcion = null; foreach ($cargosSedes as $cargoSede) { @@ -692,36 +702,36 @@ class ApiPersonaController extends Controller $funcion = [ 'tipo' => $cargoSede->id_funcion, 'unidad_academica' => $unidadAcademica, - 'sede' => $sede + 'sede' => $sede, ]; - - if(!in_array($funcion, $funciones)){ # para que no se repitan las funciones por tarea o designacion + + if (! in_array($funcion, $funciones)) { // para que no se repitan las funciones por tarea o designacion $funciones[] = $funcion; } } - $datos = array( + $datos = [ 'id' => $declaracion_jurada->id_persona, - 'nombre' => ucwords(strtolower(trim($persona->desc_nombr))) . ' ' . ucwords(strtolower(trim($persona->desc_appat))), + 'nombre' => ucwords(strtolower(trim($persona->desc_nombr))).' '.ucwords(strtolower(trim($persona->desc_appat))), 'funciones' => $funciones, - ); + ]; return response()->json($datos, HttpStatus::OK); } - # FUNCIONES STANDALONE: + // FUNCIONES STANDALONE: /** * Compara dos horarios por su hora de entrada. - * + * * Utilizada para ordenar un arreglo de horarios. * - * @param array $a El primer horario a comparar. - * @param array $b El segundo horario a comparar. + * @param array $a El primer horario a comparar. + * @param array $b El segundo horario a comparar. * @return int Un valor negativo si $a es menor que $b, cero si son iguales, o un valor positivo si $a es mayor que $b. */ - public static function compararHorarios($a, $b) { + public static function compararHorarios($a, $b) + { return strcmp($a['hora_entra'], $b['hora_entra']); } - } diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 73ee242..e01ebee 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -2,39 +2,36 @@ namespace App\Http\Controllers; -use Illuminate\Http\Request; -use Firebase\JWT\JWT; - use App\Constants\HttpStatus; +use Firebase\JWT\JWT; +use Illuminate\Http\Request; /** * Controlador de autenticación para generar y gestionar tokens JWT. - * + * * Este controlador maneja las peticiones de autenticación, verificando una - * clave secreta proporcionada y generando un token JWT con un tiempo de + * clave shas('clave_secreta')){ + if (! $request->has('clave_secreta')) { return response()->json(['message' => trans('api.SIN_CLAVE')], HttpStatus::BAD_REQUEST); } @@ -47,10 +44,10 @@ class AuthController extends Controller // Datos que quieres incluir en el JWT (puedes personalizarlo) $payload = [ - 'iss' => "tu-dominio.com", // Issuer del token + 'iss' => 'tu-dominio.com', // Issuer del token 'iat' => time(), // Hora en que se creó el token 'exp' => $expirationTime, // Expiración de 15 minutos - 'clave_secreta' => $request->clave_secreta // Datos personalizados en el token + 'clave_secreta' => $request->clave_secreta, // Datos personalizados en el token ]; // Generar el token JWT usando la clave secreta desde el .env @@ -59,7 +56,7 @@ class AuthController extends Controller return response()->json([ 'token' => $jwt, 'expiracion_segundos' => $expirationTime - time(), // Tiempo en segundos hasta la expiración - 'tiempo_expiracion' => date('Y-m-d H:i:s', $expirationTime) // Fecha y hora de expiración + 'tiempo_expiracion' => date('Y-m-d H:i:s', $expirationTime), // Fecha y hora de expiración ]); } } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 5af51bc..284be30 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -26,7 +26,6 @@ class Kernel extends HttpKernel protected $routeMiddleware = [ 'jwt.auth' => \App\Http\Middleware\JwtMiddleware::class, ]; - /** * The application's route middleware groups. diff --git a/app/Http/Middleware/JwtMiddleware.php b/app/Http/Middleware/JwtMiddleware.php index ab00124..f2a7184 100644 --- a/app/Http/Middleware/JwtMiddleware.php +++ b/app/Http/Middleware/JwtMiddleware.php @@ -13,22 +13,20 @@ class JwtMiddleware /** * Manejar una solicitud entrante. * - * @param \Illuminate\Http\Request $request - * @param \Closure $next * @return mixed */ public function handle(Request $request, Closure $next) { $token = $request->bearerToken(); - if (!$token) { + if (! $token) { return response()->json(['message' => trans('api.SIN_TOKEN')], HttpStatus::BAD_REQUEST); } try { JWT::decode($token, new Key(config('app.jwt_secret'), 'HS256')); - + return $next($request); } catch (\Firebase\JWT\ExpiredException $e) { diff --git a/app/Models/MapucheCiudades.php b/app/Models/MapucheCiudades.php index cabc6b5..a071b6a 100644 --- a/app/Models/MapucheCiudades.php +++ b/app/Models/MapucheCiudades.php @@ -8,7 +8,6 @@ use Illuminate\Database\Eloquent\Model; class MapucheCiudades extends Model { use HasFactory; - + protected $table = 'mapuche_ciudades'; - } diff --git a/app/Models/MapucheProvincias.php b/app/Models/MapucheProvincias.php index b191e9f..f48316d 100644 --- a/app/Models/MapucheProvincias.php +++ b/app/Models/MapucheProvincias.php @@ -8,7 +8,6 @@ use Illuminate\Database\Eloquent\Model; class MapucheProvincias extends Model { use HasFactory; - + protected $table = 'mapuche_provincias'; - } diff --git a/app/Models/UaderCargosGrupo.php b/app/Models/UaderCargosGrupo.php index 3a61346..c42152a 100644 --- a/app/Models/UaderCargosGrupo.php +++ b/app/Models/UaderCargosGrupo.php @@ -8,14 +8,16 @@ use Illuminate\Database\Eloquent\Model; class UaderCargosGrupo extends Model { use HasFactory; - + protected $table = 'uader_cargos_grupo'; - - public function Sede() { + + public function Sede() + { return $this->hasOne(UaderUnidadAcademica::class, 'uacad', 'sede'); } - - public function GrupoHorario() { + + public function GrupoHorario() + { return $this->hasMany(UaderGrupoCargoHora::class, 'id_declaracion_jurada', 'id_declaracion_jurada'); } } diff --git a/app/Models/UaderDjPersona.php b/app/Models/UaderDjPersona.php index 718b525..e44a874 100644 --- a/app/Models/UaderDjPersona.php +++ b/app/Models/UaderDjPersona.php @@ -8,10 +8,11 @@ use Illuminate\Database\Eloquent\Model; class UaderDjPersona extends Model { use HasFactory; - + protected $table = 'uader_dj_persona'; - - public function CargosGrupo() { + + public function CargosGrupo() + { return $this->hasMany(UaderCargosGrupo::class, 'id_declaracion_jurada', 'id'); } } diff --git a/app/Models/UaderGrupoCargoHora.php b/app/Models/UaderGrupoCargoHora.php index 490b7ff..e48d610 100644 --- a/app/Models/UaderGrupoCargoHora.php +++ b/app/Models/UaderGrupoCargoHora.php @@ -8,10 +8,11 @@ use Illuminate\Database\Eloquent\Model; class UaderGrupoCargoHora extends Model { use HasFactory; - + protected $table = 'uader_grupo_cargo_hora'; - - public function Horarios() { + + public function Horarios() + { return $this->hasMany(UaderHorariosComunes::class, 'id_declaracion_jurada', 'id_declaracion_jurada'); - } + } } diff --git a/app/Models/UaderHorariosComunes.php b/app/Models/UaderHorariosComunes.php index 8a6e77a..67c5f77 100644 --- a/app/Models/UaderHorariosComunes.php +++ b/app/Models/UaderHorariosComunes.php @@ -8,6 +8,6 @@ use Illuminate\Database\Eloquent\Model; class UaderHorariosComunes extends Model { use HasFactory; - + protected $table = 'uader_horarios_comunes'; } diff --git a/app/Models/UaderMapucheFamiliares.php b/app/Models/UaderMapucheFamiliares.php index 8eb7992..398b6cb 100644 --- a/app/Models/UaderMapucheFamiliares.php +++ b/app/Models/UaderMapucheFamiliares.php @@ -8,8 +8,6 @@ use Illuminate\Database\Eloquent\Model; class UaderMapucheFamiliares extends Model { use HasFactory; - - protected $table = 'uader_mapuche_familirares'; - + protected $table = 'uader_mapuche_familirares'; } diff --git a/app/Models/UaderMapuchePersona.php b/app/Models/UaderMapuchePersona.php index 82c6114..80b8a30 100644 --- a/app/Models/UaderMapuchePersona.php +++ b/app/Models/UaderMapuchePersona.php @@ -2,98 +2,102 @@ namespace App\Models; +use DB; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; -use DB; /** * Modelo Eloquent para la tabla `uader_mapuche_persona`. - + * Este modelo representa los datos de las personas en el sistema Mapuche. - * @package App\Models */ class UaderMapuchePersona extends Model { use HasFactory; - + protected $table = 'uader_mapuche_persona'; - + /** * Obtiene la lista de familiares asociados a una persona. * - * Utiliza la relación 'hasMany' para recuperar los registros de la tabla 'uader_mapuche_familiares' + * Utiliza la relación 'hasMany' para recuperar los registros de la tabla 'uader_mapuche_familiares' * relacionados con el identificador de la persona en la tabla actual. * * @return Illuminate\Database\Eloquent\Collection Una colección de objetos UaderMapucheFamiliares. */ - public function familiares() { + public function familiares() + { return $this->hasMany(UaderMapucheFamiliares::class, 'id_uader_mapu_pers', 'id'); } - + /** * Obtiene la localidad a la que pertenece una persona. * - * Utiliza la relación 'hasOne' para recuperar el registro de la tabla 'mapuche_ciudades' + * Utiliza la relación 'hasOne' para recuperar el registro de la tabla 'mapuche_ciudades' * asociado al identificador de la localidad en la tabla actual. * - * @return Illuminate\Database\Eloquent\Model|null El objeto MapucheCiudades - * representando la localidad, o null si no se encuentra. + * @return Illuminate\Database\Eloquent\Model|null El objeto MapucheCiudades + * representando la localidad, o null si no se encuentra. */ - public function localidad() { + public function localidad() + { return $this->hasOne(MapucheCiudades::class, 'id', 'localidad_id'); } /** * Obtiene la declaración jurada asociada a una persona. * - * Utiliza la relación 'hasOne' para recuperar el registro de la tabla 'uader_dj_persona' + * Utiliza la relación 'hasOne' para recuperar el registro de la tabla 'uader_dj_persona' * asociado al identificador de la declaración jurada en la tabla actual. * - * @return Illuminate\Database\Eloquent\Model|null El objeto UaderDjPersona - * representando la declaración jurada, o null si no se encuentra. + * @return Illuminate\Database\Eloquent\Model|null El objeto UaderDjPersona + * representando la declaración jurada, o null si no se encuentra. */ - public function declaracion_jurada(){ + public function declaracion_jurada() + { return $this->hasOne(UaderDjPersona::class, 'id', 'id_dj_persona'); } - + /** * Obtiene la provincia a la que pertenece una persona. * - * Utiliza la relación 'hasOne' para recuperar el registro de la tabla 'mapuche_provincias' + * Utiliza la relación 'hasOne' para recuperar el registro de la tabla 'mapuche_provincias' * asociado al código de provincia en la tabla actual. * - * @return Illuminate\Database\Eloquent\Model|null El objeto MapucheProvincias - * representando la provincia, o null si no se encuentra. + * @return Illuminate\Database\Eloquent\Model|null El objeto MapucheProvincias + * representando la provincia, o null si no se encuentra. */ - public function provincia() { + public function provincia() + { return $this->hasOne(MapucheProvincias::class, 'codigo_pcia', 'codigo_provincia'); } - + /** * Busca los datos de una persona y su ultima declaracion juarada por su número de teléfono. * * Elimina los guiones y el prefijo '15' del número de teléfono antes de realizar la búsqueda. * Solo considera personas con estado de declaración jurada 'C' (Completa) o 'V' (Verificada). * Ordena los resultados por la fecha de cierre de la declaración jurada (descendente). - * - * @param string $telefono El número de teléfono de la persona a buscar. - * @return UaderMapuchePersona|null El objeto UaderMapuchePersona - * representando la persona encontrada, o null si no se encuentra. + * + * @param string $telefono El número de teléfono de la persona a buscar. + * @return UaderMapuchePersona|null El objeto UaderMapuchePersona + * representando la persona encontrada, o null si no se encuentra. */ - public static function BuscarPersonaPorTelefono($telefono) { + public static function BuscarPersonaPorTelefono($telefono) + { $persona = DB::table('uader_mapuche_persona') - ->join('uader_dj_persona', 'uader_mapuche_persona.id_dj_persona', '=', 'uader_dj_persona.id') - ->selectRaw('uader_mapuche_persona.id_dj_persona as id_dj') - ->whereRaw("'549'||REGEXP_REPLACE(telefono_celular, '-|-15','','g') = '$telefono'") - ->whereIn('uader_dj_persona.estado', ['C', 'V']) - ->orderBy('uader_dj_persona.fecha_cierre', 'desc') - ->first(); + ->join('uader_dj_persona', 'uader_mapuche_persona.id_dj_persona', '=', 'uader_dj_persona.id') + ->selectRaw('uader_mapuche_persona.id_dj_persona as id_dj') + ->whereRaw("'549'||REGEXP_REPLACE(telefono_celular, '-|-15','','g') = '$telefono'") + ->whereIn('uader_dj_persona.estado', ['C', 'V']) + ->orderBy('uader_dj_persona.fecha_cierre', 'desc') + ->first(); if (empty($persona)) { - return 0; + return null; } - + return UaderMapuchePersona::where('id_dj_persona', $persona->id_dj)->first(); } @@ -103,25 +107,24 @@ class UaderMapuchePersona extends Model * Solo considera personas con estado de declaración jurada 'C' (Completa) o 'V' (Verificada). * Ordena los resultados por la fecha de cierre de la declaración jurada (descendente). * - * @param string $dni El número de documento de la persona a buscar. - * @return UaderMapuchePersona|null El objeto UaderMapuchePersona - * representando la persona encontrada, o null si no se encuentra. + * @param string $dni El número de documento de la persona a buscar. + * @return UaderMapuchePersona|null El objeto UaderMapuchePersona + * representando la persona encontrada, o null si no se encuentra. */ public static function buscarPersonaPorDni($dni) { $persona = DB::table('uader_mapuche_persona') - ->join('uader_dj_persona', 'uader_mapuche_persona.id_dj_persona', '=', 'uader_dj_persona.id') - ->selectRaw('uader_mapuche_persona.id_dj_persona as id_dj') - ->whereRaw("uader_mapuche_persona.nro_docum = '$dni'") - ->whereIn('uader_dj_persona.estado', ['C', 'V']) - ->orderBy('uader_dj_persona.fecha_cierre', 'desc') - ->first(); - + ->join('uader_dj_persona', 'uader_mapuche_persona.id_dj_persona', '=', 'uader_dj_persona.id') + ->selectRaw('uader_mapuche_persona.id_dj_persona as id_dj') + ->whereRaw("uader_mapuche_persona.nro_docum = '$dni'") + ->whereIn('uader_dj_persona.estado', ['C', 'V']) + ->orderBy('uader_dj_persona.fecha_cierre', 'desc') + ->first(); + if (empty($persona)) { return null; } - + return UaderMapuchePersona::where('id_dj_persona', $persona->id_dj)->first(); } - } diff --git a/app/Models/UaderUnidadAcademica.php b/app/Models/UaderUnidadAcademica.php index 88f1a4a..7a11797 100644 --- a/app/Models/UaderUnidadAcademica.php +++ b/app/Models/UaderUnidadAcademica.php @@ -19,26 +19,25 @@ use Illuminate\Database\Eloquent\Model; * aux_cargos_persona (fk_uacad) * uader_cargos_persona (fk uacad) * uader_lugares (fk uacad) - * + * * Existen tablas en tienen relación con esta pero no a través de relaciones MySql, * sino que simplemente contienen campos con id de otras tablas pero no son FKs en el SGBD, * se relacionan en esta API a través relaciones de Eloquent. * Se desconoce cuantas tablas tiene relación con esta de esta forma, * pero se listaran las conocidas y relevantes para esta API: - * + * * uader_cargos_grupos (campo sede) => Representada por el Modelo 'UaderCargosGrupo': * Este modelo contiene una relación de Eloquent a esta tabla llamada 'Sede', y sirve para indicar * la Sede de tal CargoGrupo o 'grupos de horarios de designaciónes'. - * - * @package App\Models */ class UaderUnidadAcademica extends Model { use HasFactory; - + /** * Nombre de la tabla asociada con el modelo. + * * @var string */ protected $table = 'uader_unidad_academica'; @@ -48,7 +47,7 @@ class UaderUnidadAcademica extends Model * uacad => PK. * ua_guarani => Codigo de la Unidad Academica a la que pertenece esta sede. * descripcion => Nombre de esta sede. - * + * * @var array */ protected $fillable = [ diff --git a/config/app.php b/config/app.php index 6eed2b5..d42b8ae 100644 --- a/config/app.php +++ b/config/app.php @@ -5,7 +5,7 @@ use Illuminate\Support\Facades\Facade; return [ 'clave' => env('CLAVE', ''), - 'jwt_secret' => env('JWT_SECRET', ''), + 'jwt_secret' => env('JWT_SECRET', ''), /* |-------------------------------------------------------------------------- diff --git a/resources/lang/es/api.php b/resources/lang/es/api.php index 9d13a50..2917339 100644 --- a/resources/lang/es/api.php +++ b/resources/lang/es/api.php @@ -7,7 +7,7 @@ return [ 'TOKEN_INVALIDO' => 'Token inválido', 'SIN_TOKEN' => 'Token no proporcionado', 'TOKEN_EXPIRADO' => 'Token expirado', - + 'CLAVE_INCORRECTA' => 'Clave de acceso incorrecta', 'SIN_CLAVE' => 'Clave de acceso no proporcionada', ]; diff --git a/routes/api.php b/routes/api.php index 49e958e..56f98e5 100644 --- a/routes/api.php +++ b/routes/api.php @@ -1,43 +1,28 @@ name('bienvenida'); Route::post('login', [AuthController::class, 'login'])->name('login'); - Route::middleware('jwt.auth')->group(function () { - + Route::post('logout', [AuthController::class, 'logout'])->name('logout'); - # Rutas de personas: + // Rutas de personas: Route::get('persona/datos', [ApiPersonaController::class, 'getDatos'])->name('persona.getDatos'); Route::get('persona/horarios/unidadacademica', [ApiPersonaController::class, 'getHorariosPorUnidadAcademica'])->name('persona.horarios.unidadacademica'); Route::get('persona/horarios/sede', [ApiPersonaController::class, 'getHorariosPorSede'])->name('persona.horarios.sede'); Route::get('persona/direccion', [ApiPersonaController::class, 'getDireccion'])->name('persona.getDireccion'); Route::get('persona/funciones/sede', [ApiPersonaController::class, 'getFuncionesPorSede'])->name('persona.funciones.sede'); Route::get('persona/funciones/unidadacademica', [ApiPersonaController::class, 'getFuncionesPorUnidadAcademica'])->name('persona.funciones.unidadacademica'); - - # Rutas de familiares: + + // Rutas de familiares: Route::get('familiar/{dni}', [ApiFamilliaresController::class, 'familiarPorDni'])->name('persona.familiar'); Route::post('familiares', [ApiFamilliaresController::class, 'getFamiliares'])->name('persona.familiares'); }); - - - diff --git a/routes/web.php b/routes/web.php index 8ee4c17..83469ef 100644 --- a/routes/web.php +++ b/routes/web.php @@ -12,7 +12,3 @@ use Illuminate\Support\Facades\Route; | be assigned to the "web" middleware group. Make something great! | */ - -// Route::get('/', function () { - // return view('welcome'); -// });