Browse Source

Linting y fomrateo con laravel pint

main
jirho 1 year ago
parent
commit
b0c52a34b4
  1. 11
      app/Constants/HttpStatus.php
  2. 42
      app/Http/Controllers/ApiFamilliaresController.php
  3. 332
      app/Http/Controllers/ApiPersonaController.php
  4. 19
      app/Http/Controllers/AuthController.php
  5. 1
      app/Http/Kernel.php
  6. 4
      app/Http/Middleware/JwtMiddleware.php
  7. 1
      app/Models/MapucheCiudades.php
  8. 1
      app/Models/MapucheProvincias.php
  9. 6
      app/Models/UaderCargosGrupo.php
  10. 3
      app/Models/UaderDjPersona.php
  11. 3
      app/Models/UaderGrupoCargoHora.php
  12. 2
      app/Models/UaderMapucheFamiliares.php
  13. 59
      app/Models/UaderMapuchePersona.php
  14. 3
      app/Models/UaderUnidadAcademica.php
  15. 25
      routes/api.php
  16. 4
      routes/web.php

11
app/Constants/HttpStatus.php

@ -5,21 +5,30 @@ namespace App\Constants;
class HttpStatus class HttpStatus
{ {
const OK = 200; const OK = 200;
const CREATED = 201; const CREATED = 201;
const NO_CONTENT = 204; const NO_CONTENT = 204;
const BAD_REQUEST = 400; const BAD_REQUEST = 400;
const UNAUTHORIZED = 401; const UNAUTHORIZED = 401;
const FORBIDDEN = 403; const FORBIDDEN = 403;
const NOT_FOUND = 404; const NOT_FOUND = 404;
const INTERNAL_SERVER_ERROR = 500; const INTERNAL_SERVER_ERROR = 500;
const NOT_IMPLEMENTED = 501; const NOT_IMPLEMENTED = 501;
const SERVICE_UNAVAILABLE = 503; const SERVICE_UNAVAILABLE = 503;
const GATEWAY_TIMEOUT = 504; const GATEWAY_TIMEOUT = 504;
const HTTP_VERSION_NOT_SUPPORTED = 505; const HTTP_VERSION_NOT_SUPPORTED = 505;
const NETWORK_AUTHENTICATION_REQUIRED = 511; const NETWORK_AUTHENTICATION_REQUIRED = 511;
const PREDETERMINADA = 404; const PREDETERMINADA = 404;
} }

42
app/Http/Controllers/ApiFamilliaresController.php

@ -2,12 +2,11 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Http\Request; use App\Constants\HttpStatus;
use Illuminate\Support\Facades\Log;
use App\Models\UaderMapucheFamiliares; use App\Models\UaderMapucheFamiliares;
use App\Models\UaderMapuchePersona; 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. * Controlador para manejar la lógica de las rutas para obtener información de los familiares de una persona.
@ -17,12 +16,13 @@ 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. * 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. * @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( return response()->json(
['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')], ['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')],
@ -31,16 +31,16 @@ class ApiFamilliaresController extends Controller
} }
try{ try {
if ($request->has('dni') && !empty($request->get('dni')) ) { if ($request->has('dni') && ! empty($request->get('dni'))) {
$persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni')); $persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni'));
if ($persona) { if ($persona) {
return self::extraerFamiliaresJson($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')); $persona = UaderMapuchePersona::BuscarPersonaPorTelefono($request->get('telefono'));
if ($persona) { if ($persona) {
@ -52,7 +52,8 @@ class ApiFamilliaresController extends Controller
} catch (\Exception $e) { } 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); 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. * 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. * 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. * @return \Illuminate\Http\JsonResponse Respuesta JSON con los datos de los familiares.
*/ */
public function extraerFamiliaresJson($persona) public function extraerFamiliaresJson($persona)
{ {
$familiares = $persona->familiares; $familiares = $persona->familiares;
$datos = array(); $datos = [];
foreach ($familiares as $familiar) { foreach ($familiares as $familiar) {
$datos[] = array( $datos[] = [
'dni' => $familiar->nro_docum, 'dni' => $familiar->nro_docum,
'apellido' => ucwords(strtolower($familiar['desc_apell'])), 'apellido' => ucwords(strtolower($familiar['desc_apell'])),
'nombres' => ucwords(strtolower($familiar['desc_nombre'])), 'nombres' => ucwords(strtolower($familiar['desc_nombre'])),
@ -80,7 +81,7 @@ class ApiFamilliaresController extends Controller
'fnac' => $familiar->fec_nacim, 'fnac' => $familiar->fec_nacim,
'discapacidad' => $familiar->sino_incap, 'discapacidad' => $familiar->sino_incap,
'a_cargo' => $familiar->sino_cargo, 'a_cargo' => $familiar->sino_cargo,
); ];
} }
return response()->json($datos); return response()->json($datos);
@ -89,28 +90,27 @@ class ApiFamilliaresController extends Controller
/** /**
* Función de ruta para obtener los datos de un familiar específico a partir de su DNI. * 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. * @return \Illuminate\Http\JsonResponse Respuesta JSON con los datos del familiar o un código 404 si no se encuentra.
*/ */
public function familiarPorDni($dni) 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(); $familiar = UaderMapucheFamiliares::where('nro_docum', $dni)->first();
return response()->json( return response()->json(
array( [
'apellido' => ucwords(strtolower($familiar->desc_apell)), 'apellido' => ucwords(strtolower($familiar->desc_apell)),
'nombres' => ucwords(strtolower($familiar->desc_nombre)), 'nombres' => ucwords(strtolower($familiar->desc_nombre)),
'parentezco' => $familiar->codc_paren, 'parentezco' => $familiar->codc_paren,
'fnac' => $familiar->fec_nacim, 'fnac' => $familiar->fec_nacim,
) ]
); );
} else { } else {
return response()->json(array(), 404); return response()->json([], 404);
} }
} }
} }

332
app/Http/Controllers/ApiPersonaController.php

@ -2,31 +2,31 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Constants\HttpStatus;
use App\Models\UaderMapuchePersona; use App\Models\UaderMapuchePersona;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Constants\HttpStatus;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
class ApiPersonaController extends Controller class ApiPersonaController extends Controller
{ {
/** /**
* Funcion de la ruta getDatos. * Funcion de la ruta getDatos.
* Devuelve los datos básicos de una persona en formato JSON. * 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. * @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( return response()->json(
['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')], ['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')],
HttpStatus::BAD_REQUEST HttpStatus::BAD_REQUEST
); );
} }
try{ try {
if ($request->has('dni')) { if ($request->has('dni')) {
@ -48,52 +48,53 @@ class ApiPersonaController extends Controller
} catch (\Exception $e) { } 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); 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. * 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: * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros necesarios:
* - 'dni' o 'telefono' para identificar a la persona. * - 'dni' o 'telefono' para identificar a la persona.
* - 'sede' para especificar la sede. * - 'sede' para especificar la sede.
* - 'funcion' para especificar la función. * - 'funcion' para especificar la función.
* - 'dia' para especificar el día de la semana. * - 'dia' para especificar el día de la semana.
* - 'tipo_horario' para especificar el tipo de horario. * - '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. * @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); 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); 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); 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); 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); return response()->json(['error' => trans('persona.DEBE_INGRESAR_TIPO_HORARIO')], HttpStatus::BAD_REQUEST);
} }
try { try {
if($request->has('dni')){ if ($request->has('dni')) {
$persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni')); $persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni'));
if($persona){ if ($persona) {
return ApiPersonaController::extraerHorariosPorSede( return ApiPersonaController::extraerHorariosPorSede(
$persona, $persona,
@ -105,11 +106,11 @@ class ApiPersonaController extends Controller
} }
} }
if($request->has('telefono')){ if ($request->has('telefono')) {
$persona = UaderMapuchePersona::BuscarPersonaPorTelefono($request->get('telefono')); $persona = UaderMapuchePersona::BuscarPersonaPorTelefono($request->get('telefono'));
if($persona){ if ($persona) {
return ApiPersonaController::extraerHorariosPorSede( return ApiPersonaController::extraerHorariosPorSede(
$persona, $persona,
@ -123,10 +124,10 @@ 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) { } 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); return response()->json(['error' => trans('persona.ERROR')], HttpStatus::INTERNAL_SERVER_ERROR);
} }
} }
@ -134,44 +135,44 @@ 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. * 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: * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros necesarios:
* - 'dni' o 'telefono' para identificar a la persona. * - 'dni' o 'telefono' para identificar a la persona.
* - 'unidad_academica' para especificar la unidad académica. * - 'unidad_academica' para especificar la unidad académica.
* - 'funcion' para especificar la función. * - 'funcion' para especificar la función.
* - 'dia' para especificar el día de la semana. * - 'dia' para especificar el día de la semana.
* - 'tipo_horario' para especificar el tipo de horario. * - '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. * @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); 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); 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); 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); 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); return response()->json(['error' => trans('persona.DEBE_INGRESAR_TIPO_HORARIO')], HttpStatus::BAD_REQUEST);
} }
try { try {
if($request->has('dni')){ if ($request->has('dni')) {
$persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni')); $persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni'));
if($persona){ if ($persona) {
return ApiPersonaController::extraerHorariosPorUnidadAcademica( return ApiPersonaController::extraerHorariosPorUnidadAcademica(
$persona, $persona,
@ -183,11 +184,11 @@ class ApiPersonaController extends Controller
} }
} }
if($request->has('telefono')){ if ($request->has('telefono')) {
$persona = UaderMapuchePersona::BuscarPersonaPorTelefono($request->get('telefono')); $persona = UaderMapuchePersona::BuscarPersonaPorTelefono($request->get('telefono'));
if($persona){ if ($persona) {
return ApiPersonaController::extraerHorariosPorUnidadAcademica( return ApiPersonaController::extraerHorariosPorUnidadAcademica(
$persona, $persona,
@ -201,10 +202,10 @@ 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) { } 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); 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. * 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: * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros de búsqueda:
* - 'dni' o 'telefono' para identificar a la persona. * - '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. * @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) public function getDireccion(Request $request)
@ -222,16 +222,15 @@ class ApiPersonaController extends Controller
/** /**
* Obtiene la direccion de una persona según el DNI o el número de teléfono. * 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. * @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); return response()->json(['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')], HttpStatus::BAD_REQUEST);
} }
try{ try {
if ($request->has('dni')) { if ($request->has('dni')) {
@ -255,7 +254,8 @@ class ApiPersonaController extends Controller
} catch (\Exception $e) { } 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); return response()->json(['error' => trans('persona.ERROR')], HttpStatus::INTERNAL_SERVER_ERROR);
} }
} }
@ -264,22 +264,23 @@ class ApiPersonaController extends Controller
* Funcion de ruta que obtiene las funciones de una persona en una determinada unidad academica * 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. * 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. * @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); 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); return response()->json(['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')], HttpStatus::BAD_REQUEST);
} }
try{ try {
if ($request->has('dni')) { if ($request->has('dni')) {
@ -303,7 +304,8 @@ class ApiPersonaController extends Controller
} catch (\Exception $e) { } 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); return response()->json(['error' => trans('persona.ERROR')], HttpStatus::INTERNAL_SERVER_ERROR);
} }
} }
@ -312,22 +314,23 @@ class ApiPersonaController extends Controller
* Funcion de ruta que obtiene las funciones de una persona en una determinada sede * 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. * 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. * @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); 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); return response()->json(['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')], HttpStatus::BAD_REQUEST);
} }
try{ try {
if ($request->has('dni')) { if ($request->has('dni')) {
@ -351,67 +354,69 @@ class ApiPersonaController extends Controller
} catch (\Exception $e) { } 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); 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. * 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 \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 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 $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 int $dia El día de la semana para filtrar los horarios.
* @param string $tipoHorario El tipo de horario 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. * @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; $declaracion_jurada = $persona->declaracion_jurada;
if(!$declaracion_jurada){ if (! $declaracion_jurada) {
return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND); return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND);
} }
$cargos = $declaracion_jurada->CargosGrupo()->where('estado', 'A')->get(); $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); return response()->json(['error' => trans('persona.NO_TIENE_DESIGNACIONES')], HttpStatus::NOT_FOUND);
} }
$horarios = array(); $horarios = [];
$aux_horario = null; $aux_horario = null;
$unidadAcademica = null; $unidadAcademica = null;
foreach ($cargos as $cargo) { foreach ($cargos as $cargo) {
if($unidadAcademica == null){ if ($unidadAcademica == null) {
$unidadAcademica = $cargo->Sede->ua_guarani; $unidadAcademica = $cargo->Sede->ua_guarani;
} }
if($cargo->id_funcion == $funcion && $cargo->Sede->uacad == $sede){ if ($cargo->id_funcion == $funcion && $cargo->Sede->uacad == $sede) {
# Si vino // Si vino
foreach ($cargo->GrupoHorario as $grupo_horario) { foreach ($cargo->GrupoHorario as $grupo_horario) {
foreach ($grupo_horario->Horarios as $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 = [ $aux_horario = [
'tipo_horario' => $horario->tipo_horario, 'tipo_horario' => $horario->tipo_horario,
'hora_entra' => $horario->hora_entra, '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[] = [ $horarios[] = [
'tipo_horario' => $horario->tipo_horario, 'tipo_horario' => $horario->tipo_horario,
'hora_entra' => $horario->hora_entra, '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); 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']); usort($horarios, [ApiPersonaController::class, 'compararHorarios']);
$datos = array( $datos = [
'id' => $declaracion_jurada->id_persona, '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' => [ 'funcion' => [
'tipo' => $funcion, 'tipo' => $funcion,
'unidad_academica' => $unidadAcademica, 'unidad_academica' => $unidadAcademica,
'sede' => $sede, 'sede' => $sede,
], ],
'horarios' => $horarios, 'horarios' => $horarios,
); ];
return response()->json($datos, HttpStatus::OK); 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. * 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 \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 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 $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 int $dia El día de la semana para filtrar los horarios.
* @param string $tipoHorario El tipo de horario 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. * @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; $declaracion_jurada = $persona->declaracion_jurada;
if(!$declaracion_jurada){ if (! $declaracion_jurada) {
return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND); return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND);
} }
$cargos = $declaracion_jurada->CargosGrupo()->where('estado', 'A')->get(); $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); return response()->json(['error' => trans('persona.NO_TIENE_DESIGNACIONES')], HttpStatus::NOT_FOUND);
} }
$horarios = array(); $horarios = [];
$aux_horario = null; $aux_horario = null;
$sede = null; $sede = null;
foreach ($cargos as $cargo) { foreach ($cargos as $cargo) {
if($sede == null){ if ($sede == null) {
$sede = $cargo->Sede->uacad; $sede = $cargo->Sede->uacad;
} }
if($cargo->id_funcion == $funcion && $cargo->Sede->ua_guarani == $unidadAcademica){ if ($cargo->id_funcion == $funcion && $cargo->Sede->ua_guarani == $unidadAcademica) {
# Si vino // Si vino
foreach ($cargo->GrupoHorario as $grupo_horario) { foreach ($cargo->GrupoHorario as $grupo_horario) {
foreach ($grupo_horario->Horarios as $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 = [ $aux_horario = [
'tipo_horario' => $horario->tipo_horario, 'tipo_horario' => $horario->tipo_horario,
'hora_entra' => $horario->hora_entra, '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[] = [ $horarios[] = [
'tipo_horario' => $horario->tipo_horario, 'tipo_horario' => $horario->tipo_horario,
'hora_entra' => $horario->hora_entra, '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); 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']); usort($horarios, [ApiPersonaController::class, 'compararHorarios']);
$datos = array( $datos = [
'id' => $declaracion_jurada->id_persona, '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' => [ 'funcion' => [
'tipo' => $funcion, 'tipo' => $funcion,
'unidad_academica' => $unidadAcademica, 'unidad_academica' => $unidadAcademica,
'sede' => $sede, 'sede' => $sede,
], ],
'horarios' => $horarios, 'horarios' => $horarios,
); ];
return response()->json($datos, HttpStatus::OK); 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. * 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. * @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; $declaracion_jurada = $persona->declaracion_jurada;
if(!$declaracion_jurada){ if (! $declaracion_jurada) {
return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND); return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND);
} }
$datos = array( $datos = [
'id' => $declaracion_jurada->id_persona ?? null, # id persona de la tabla 'uader_persona' 'id' => $declaracion_jurada->id_persona ?? null, // id persona de la tabla 'uader_persona'
'dni' => $persona->nro_docum ?? null, 'dni' => $persona->nro_docum ?? null,
'apellido' => ucwords(strtolower(trim($persona->desc_appat))) ?? null, 'apellido' => ucwords(strtolower(trim($persona->desc_appat))) ?? null,
'nombres' => ucwords(strtolower(trim($persona->desc_nombr))) ?? 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, 'email' => strtolower(trim($persona->correo_electronico)) ?? null,
); ];
return response()->json($datos, HttpStatus::OK); 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. * 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. * @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; $declaracion_jurada = $persona->declaracion_jurada;
if(!$declaracion_jurada){ if (! $declaracion_jurada) {
return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND); return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND);
} }
$datos = array( $datos = [
'id' => $declaracion_jurada->id_persona, 'id' => $declaracion_jurada->id_persona,
'nombre' => ucwords(strtolower(trim($persona->desc_nombr))) . ' ' .ucwords(strtolower(trim($persona->desc_appat))) ?? null, 'nombre' => ucwords(strtolower(trim($persona->desc_nombr))).' '.ucwords(strtolower(trim($persona->desc_appat))) ?? null,
'domicilio' => array( 'domicilio' => [
'calle' => strtolower(trim($persona->calle)) ?? null, 'calle' => strtolower(trim($persona->calle)) ?? null,
'numero' => strtolower(trim($persona->numero)) ?? null, 'numero' => strtolower(trim($persona->numero)) ?? null,
'piso' => strtolower(trim($persona->piso)) ?? null, 'piso' => strtolower(trim($persona->piso)) ?? null,
@ -580,8 +588,8 @@ class ApiPersonaController extends Controller
'casa_manzana' => strtolower(trim($persona->casa_manzana)) ?? null, 'casa_manzana' => strtolower(trim($persona->casa_manzana)) ?? null,
'localidad' => ucfirst(strtolower(trim($persona->Localidad->desc_localidad))) ?? null, 'localidad' => ucfirst(strtolower(trim($persona->Localidad->desc_localidad))) ?? null,
'provincia' => trim($persona->Provincia->descripcion_pcia) ?? null, 'provincia' => trim($persona->Provincia->descripcion_pcia) ?? null,
) ],
); ];
return response()->json($datos, HttpStatus::OK); 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 * Extrae las funciones asignadas a una persona en una unidad académica específica
* y las devuelve en un formato JSON. * 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 \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 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. * @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; $declaracion_jurada = $persona->declaracion_jurada;
if(!$declaracion_jurada){ if (! $declaracion_jurada) {
return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND); return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND);
} }
$cargos = $declaracion_jurada->CargosGrupo()->where('estado', 'A')->get(); $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); return response()->json(['error' => trans('persona.NO_TIENE_DESIGNACIONES')], HttpStatus::NOT_FOUND);
} }
$cargosUnidadAcademica = array(); $cargosUnidadAcademica = [];
foreach ($cargos as $cargo) { foreach ($cargos as $cargo) {
if($cargo->Sede->ua_guarani == $unidadAcademica){ if ($cargo->Sede->ua_guarani == $unidadAcademica) {
$cargosUnidadAcademica[] = $cargo; $cargosUnidadAcademica[] = $cargo;
} }
} }
if(empty($cargosUnidadAcademica)){ if (empty($cargosUnidadAcademica)) {
return response()->json(['error' => trans('persona.NO_TIENE_DESIGNACIONES_UA')], HttpStatus::NOT_FOUND); return response()->json(['error' => trans('persona.NO_TIENE_DESIGNACIONES_UA')], HttpStatus::NOT_FOUND);
} }
$funciones = array(); $funciones = [];
$funcion = null; $funcion = null;
foreach ($cargosUnidadAcademica as $cargoUnidadAcademica) { foreach ($cargosUnidadAcademica as $cargoUnidadAcademica) {
@ -628,19 +637,19 @@ class ApiPersonaController extends Controller
$funcion = [ $funcion = [
'tipo' => $cargoUnidadAcademica->id_funcion, 'tipo' => $cargoUnidadAcademica->id_funcion,
'unidad_academica' => $unidadAcademica, '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; $funciones[] = $funcion;
} }
} }
$datos = array( $datos = [
'id' => $declaracion_jurada->id_persona, '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, 'funciones' => $funciones,
); ];
return response()->json($datos, HttpStatus::OK); 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 * Extrae las funciones asignadas a una persona en una sede específica
* y las devuelve en un formato JSON. * 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 \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 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. * @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; $declaracion_jurada = $persona->declaracion_jurada;
if(!$declaracion_jurada){ if (! $declaracion_jurada) {
return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND); return response()->json(['error' => trans('persona.DECLARACION_JURADA_NO_ENCONTRADA')], HttpStatus::NOT_FOUND);
} }
$cargos = $declaracion_jurada->CargosGrupo()->where('estado', 'A')->get(); $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); return response()->json(['error' => trans('persona.NO_TIENE_DESIGNACIONES')], HttpStatus::NOT_FOUND);
} }
$cargosSedes = array(); $cargosSedes = [];
$unidadAcademica = null; $unidadAcademica = null;
foreach ($cargos as $cargo) { foreach ($cargos as $cargo) {
if($cargo->Sede->uacad == $sede){ if ($cargo->Sede->uacad == $sede) {
$cargosSedes[] = $cargo; $cargosSedes[] = $cargo;
if($unidadAcademica == null){ if ($unidadAcademica == null) {
$unidadAcademica = $cargo->Sede->ua_guarani; $unidadAcademica = $cargo->Sede->ua_guarani;
} }
} }
} }
if(empty($cargosSedes)){ if (empty($cargosSedes)) {
return response()->json(['error' => trans('persona.NO_TIENE_DESIGNACIONES_SEDE')], HttpStatus::NOT_FOUND); return response()->json(['error' => trans('persona.NO_TIENE_DESIGNACIONES_SEDE')], HttpStatus::NOT_FOUND);
} }
$funciones = array(); $funciones = [];
$funcion = null; $funcion = null;
foreach ($cargosSedes as $cargoSede) { foreach ($cargosSedes as $cargoSede) {
@ -692,36 +702,36 @@ class ApiPersonaController extends Controller
$funcion = [ $funcion = [
'tipo' => $cargoSede->id_funcion, 'tipo' => $cargoSede->id_funcion,
'unidad_academica' => $unidadAcademica, '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; $funciones[] = $funcion;
} }
} }
$datos = array( $datos = [
'id' => $declaracion_jurada->id_persona, '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, 'funciones' => $funciones,
); ];
return response()->json($datos, HttpStatus::OK); return response()->json($datos, HttpStatus::OK);
} }
# FUNCIONES STANDALONE: // FUNCIONES STANDALONE:
/** /**
* Compara dos horarios por su hora de entrada. * Compara dos horarios por su hora de entrada.
* *
* Utilizada para ordenar un arreglo de horarios. * Utilizada para ordenar un arreglo de horarios.
* *
* @param array $a El primer horario a comparar. * @param array $a El primer horario a comparar.
* @param array $b El segundo 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. * @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']); return strcmp($a['hora_entra'], $b['hora_entra']);
} }
} }

19
app/Http/Controllers/AuthController.php

@ -2,22 +2,19 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Firebase\JWT\JWT;
use App\Constants\HttpStatus; use App\Constants\HttpStatus;
use Firebase\JWT\JWT;
use Illuminate\Http\Request;
/** /**
* Controlador de autenticación para generar y gestionar tokens JWT. * Controlador de autenticación para generar y gestionar tokens JWT.
* *
* Este controlador maneja las peticiones de autenticación, verificando una * Este controlador maneja las peticiones de autenticación, verificando una
* clave secreta proporcionada y generando un token JWT con un tiempo de * clave s<ecreta proporcionada y generando un token JWT con un tiempo de
* expiración. El token puede ser utilizado para autorizar solicitudes futuras. * expiración. El token puede ser utilizado para autorizar solicitudes futuras.
* *
* Métodos disponibles: * Métodos disponibles:
* - login: Valida la clave secreta y genera un token JWT. * - login: Valida la clave secreta y genera un token JWT.
*
* @package App\Http\Controllers
*/ */
class AuthController extends Controller class AuthController extends Controller
{ {
@ -29,12 +26,12 @@ class AuthController extends Controller
* token JWT con un tiempo de expiración de 15 minutos. Devuelve el token * token JWT con un tiempo de expiración de 15 minutos. Devuelve el token
* y la información de expiración en formato JSON. * y la información de expiración en formato JSON.
* *
* @param Request $request La solicitud HTTP que contiene la clave secreta. * @param Request $request La solicitud HTTP que contiene la clave secreta.
* @return \Illuminate\Http\JsonResponse Respuesta JSON con el token JWT o mensajes de error. * @return \Illuminate\Http\JsonResponse Respuesta JSON con el token JWT o mensajes de error.
*/ */
public function login(Request $request) public function login(Request $request)
{ {
if(!$request->has('clave_secreta')){ if (! $request->has('clave_secreta')) {
return response()->json(['message' => trans('api.SIN_CLAVE')], HttpStatus::BAD_REQUEST); 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) // Datos que quieres incluir en el JWT (puedes personalizarlo)
$payload = [ $payload = [
'iss' => "tu-dominio.com", // Issuer del token 'iss' => 'tu-dominio.com', // Issuer del token
'iat' => time(), // Hora en que se creó el token 'iat' => time(), // Hora en que se creó el token
'exp' => $expirationTime, // Expiración de 15 minutos '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 // Generar el token JWT usando la clave secreta desde el .env
@ -59,7 +56,7 @@ class AuthController extends Controller
return response()->json([ return response()->json([
'token' => $jwt, 'token' => $jwt,
'expiracion_segundos' => $expirationTime - time(), // Tiempo en segundos hasta la expiración '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
]); ]);
} }
} }

1
app/Http/Kernel.php

@ -27,7 +27,6 @@ class Kernel extends HttpKernel
'jwt.auth' => \App\Http\Middleware\JwtMiddleware::class, 'jwt.auth' => \App\Http\Middleware\JwtMiddleware::class,
]; ];
/** /**
* The application's route middleware groups. * The application's route middleware groups.
* *

4
app/Http/Middleware/JwtMiddleware.php

@ -13,15 +13,13 @@ class JwtMiddleware
/** /**
* Manejar una solicitud entrante. * Manejar una solicitud entrante.
* *
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed * @return mixed
*/ */
public function handle(Request $request, Closure $next) public function handle(Request $request, Closure $next)
{ {
$token = $request->bearerToken(); $token = $request->bearerToken();
if (!$token) { if (! $token) {
return response()->json(['message' => trans('api.SIN_TOKEN')], HttpStatus::BAD_REQUEST); return response()->json(['message' => trans('api.SIN_TOKEN')], HttpStatus::BAD_REQUEST);
} }

1
app/Models/MapucheCiudades.php

@ -10,5 +10,4 @@ class MapucheCiudades extends Model
use HasFactory; use HasFactory;
protected $table = 'mapuche_ciudades'; protected $table = 'mapuche_ciudades';
} }

1
app/Models/MapucheProvincias.php

@ -10,5 +10,4 @@ class MapucheProvincias extends Model
use HasFactory; use HasFactory;
protected $table = 'mapuche_provincias'; protected $table = 'mapuche_provincias';
} }

6
app/Models/UaderCargosGrupo.php

@ -11,11 +11,13 @@ class UaderCargosGrupo extends Model
protected $table = 'uader_cargos_grupo'; protected $table = 'uader_cargos_grupo';
public function Sede() { public function Sede()
{
return $this->hasOne(UaderUnidadAcademica::class, 'uacad', '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'); return $this->hasMany(UaderGrupoCargoHora::class, 'id_declaracion_jurada', 'id_declaracion_jurada');
} }
} }

3
app/Models/UaderDjPersona.php

@ -11,7 +11,8 @@ class UaderDjPersona extends Model
protected $table = 'uader_dj_persona'; protected $table = 'uader_dj_persona';
public function CargosGrupo() { public function CargosGrupo()
{
return $this->hasMany(UaderCargosGrupo::class, 'id_declaracion_jurada', 'id'); return $this->hasMany(UaderCargosGrupo::class, 'id_declaracion_jurada', 'id');
} }
} }

3
app/Models/UaderGrupoCargoHora.php

@ -11,7 +11,8 @@ class UaderGrupoCargoHora extends Model
protected $table = 'uader_grupo_cargo_hora'; protected $table = 'uader_grupo_cargo_hora';
public function Horarios() { public function Horarios()
{
return $this->hasMany(UaderHorariosComunes::class, 'id_declaracion_jurada', 'id_declaracion_jurada'); return $this->hasMany(UaderHorariosComunes::class, 'id_declaracion_jurada', 'id_declaracion_jurada');
} }
} }

2
app/Models/UaderMapucheFamiliares.php

@ -10,6 +10,4 @@ class UaderMapucheFamiliares extends Model
use HasFactory; use HasFactory;
protected $table = 'uader_mapuche_familirares'; protected $table = 'uader_mapuche_familirares';
} }

59
app/Models/UaderMapuchePersona.php

@ -2,15 +2,14 @@
namespace App\Models; namespace App\Models;
use DB;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use DB;
/** /**
* Modelo Eloquent para la tabla `uader_mapuche_persona`. * Modelo Eloquent para la tabla `uader_mapuche_persona`.
* Este modelo representa los datos de las personas en el sistema Mapuche. * Este modelo representa los datos de las personas en el sistema Mapuche.
* @package App\Models
*/ */
class UaderMapuchePersona extends Model class UaderMapuchePersona extends Model
{ {
@ -26,7 +25,8 @@ class UaderMapuchePersona extends Model
* *
* @return Illuminate\Database\Eloquent\Collection Una colección de objetos UaderMapucheFamiliares. * @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'); return $this->hasMany(UaderMapucheFamiliares::class, 'id_uader_mapu_pers', 'id');
} }
@ -37,9 +37,10 @@ class UaderMapuchePersona extends Model
* asociado al identificador de la localidad en la tabla actual. * asociado al identificador de la localidad en la tabla actual.
* *
* @return Illuminate\Database\Eloquent\Model|null El objeto MapucheCiudades * @return Illuminate\Database\Eloquent\Model|null El objeto MapucheCiudades
* representando la localidad, o null si no se encuentra. * representando la localidad, o null si no se encuentra.
*/ */
public function localidad() { public function localidad()
{
return $this->hasOne(MapucheCiudades::class, 'id', 'localidad_id'); return $this->hasOne(MapucheCiudades::class, 'id', 'localidad_id');
} }
@ -50,9 +51,10 @@ class UaderMapuchePersona extends Model
* asociado al identificador de la declaración jurada en la tabla actual. * asociado al identificador de la declaración jurada en la tabla actual.
* *
* @return Illuminate\Database\Eloquent\Model|null El objeto UaderDjPersona * @return Illuminate\Database\Eloquent\Model|null El objeto UaderDjPersona
* representando la declaración jurada, o null si no se encuentra. * 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'); return $this->hasOne(UaderDjPersona::class, 'id', 'id_dj_persona');
} }
@ -63,9 +65,10 @@ class UaderMapuchePersona extends Model
* asociado al código de provincia en la tabla actual. * asociado al código de provincia en la tabla actual.
* *
* @return Illuminate\Database\Eloquent\Model|null El objeto MapucheProvincias * @return Illuminate\Database\Eloquent\Model|null El objeto MapucheProvincias
* representando la provincia, o null si no se encuentra. * representando la provincia, o null si no se encuentra.
*/ */
public function provincia() { public function provincia()
{
return $this->hasOne(MapucheProvincias::class, 'codigo_pcia', 'codigo_provincia'); return $this->hasOne(MapucheProvincias::class, 'codigo_pcia', 'codigo_provincia');
} }
@ -76,22 +79,23 @@ class UaderMapuchePersona extends Model
* Solo considera personas con estado de declaración jurada 'C' (Completa) o 'V' (Verificada). * 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). * 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. * @param string $telefono El número de teléfono de la persona a buscar.
* @return UaderMapuchePersona|null El objeto UaderMapuchePersona * @return UaderMapuchePersona|null El objeto UaderMapuchePersona
* representando la persona encontrada, o null si no se encuentra. * 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') $persona = DB::table('uader_mapuche_persona')
->join('uader_dj_persona', 'uader_mapuche_persona.id_dj_persona', '=', 'uader_dj_persona.id') ->join('uader_dj_persona', 'uader_mapuche_persona.id_dj_persona', '=', 'uader_dj_persona.id')
->selectRaw('uader_mapuche_persona.id_dj_persona as id_dj') ->selectRaw('uader_mapuche_persona.id_dj_persona as id_dj')
->whereRaw("'549'||REGEXP_REPLACE(telefono_celular, '-|-15','','g') = '$telefono'") ->whereRaw("'549'||REGEXP_REPLACE(telefono_celular, '-|-15','','g') = '$telefono'")
->whereIn('uader_dj_persona.estado', ['C', 'V']) ->whereIn('uader_dj_persona.estado', ['C', 'V'])
->orderBy('uader_dj_persona.fecha_cierre', 'desc') ->orderBy('uader_dj_persona.fecha_cierre', 'desc')
->first(); ->first();
if (empty($persona)) { if (empty($persona)) {
return 0; return null;
} }
return UaderMapuchePersona::where('id_dj_persona', $persona->id_dj)->first(); return UaderMapuchePersona::where('id_dj_persona', $persona->id_dj)->first();
@ -103,19 +107,19 @@ class UaderMapuchePersona extends Model
* Solo considera personas con estado de declaración jurada 'C' (Completa) o 'V' (Verificada). * 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). * 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. * @param string $dni El número de documento de la persona a buscar.
* @return UaderMapuchePersona|null El objeto UaderMapuchePersona * @return UaderMapuchePersona|null El objeto UaderMapuchePersona
* representando la persona encontrada, o null si no se encuentra. * representando la persona encontrada, o null si no se encuentra.
*/ */
public static function buscarPersonaPorDni($dni) public static function buscarPersonaPorDni($dni)
{ {
$persona = DB::table('uader_mapuche_persona') $persona = DB::table('uader_mapuche_persona')
->join('uader_dj_persona', 'uader_mapuche_persona.id_dj_persona', '=', 'uader_dj_persona.id') ->join('uader_dj_persona', 'uader_mapuche_persona.id_dj_persona', '=', 'uader_dj_persona.id')
->selectRaw('uader_mapuche_persona.id_dj_persona as id_dj') ->selectRaw('uader_mapuche_persona.id_dj_persona as id_dj')
->whereRaw("uader_mapuche_persona.nro_docum = '$dni'") ->whereRaw("uader_mapuche_persona.nro_docum = '$dni'")
->whereIn('uader_dj_persona.estado', ['C', 'V']) ->whereIn('uader_dj_persona.estado', ['C', 'V'])
->orderBy('uader_dj_persona.fecha_cierre', 'desc') ->orderBy('uader_dj_persona.fecha_cierre', 'desc')
->first(); ->first();
if (empty($persona)) { if (empty($persona)) {
return null; return null;
@ -123,5 +127,4 @@ class UaderMapuchePersona extends Model
return UaderMapuchePersona::where('id_dj_persona', $persona->id_dj)->first(); return UaderMapuchePersona::where('id_dj_persona', $persona->id_dj)->first();
} }
} }

3
app/Models/UaderUnidadAcademica.php

@ -29,8 +29,6 @@ use Illuminate\Database\Eloquent\Model;
* uader_cargos_grupos (campo sede) => Representada por el Modelo 'UaderCargosGrupo': * 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 * 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'. * la Sede de tal CargoGrupo o 'grupos de horarios de designaciónes'.
*
* @package App\Models
*/ */
class UaderUnidadAcademica extends Model class UaderUnidadAcademica extends Model
{ {
@ -39,6 +37,7 @@ class UaderUnidadAcademica extends Model
/** /**
* Nombre de la tabla asociada con el modelo. * Nombre de la tabla asociada con el modelo.
*
* @var string * @var string
*/ */
protected $table = 'uader_unidad_academica'; protected $table = 'uader_unidad_academica';

25
routes/api.php

@ -1,32 +1,20 @@
<?php <?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ApiPersonaController;
use App\Http\Controllers\ApiFamilliaresController;
use App\Http\Controllers\ApiController; use App\Http\Controllers\ApiController;
use App\Http\Controllers\ApiFamilliaresController;
use App\Http\Controllers\ApiPersonaController;
use App\Http\Controllers\AuthController; use App\Http\Controllers\AuthController;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "api" middleware group. Make something great!
|
*/
Route::get('/', [ApiController::class, 'bienvenida'])->name('bienvenida'); Route::get('/', [ApiController::class, 'bienvenida'])->name('bienvenida');
Route::post('login', [AuthController::class, 'login'])->name('login'); Route::post('login', [AuthController::class, 'login'])->name('login');
Route::middleware('jwt.auth')->group(function () { Route::middleware('jwt.auth')->group(function () {
Route::post('logout', [AuthController::class, 'logout'])->name('logout'); 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/datos', [ApiPersonaController::class, 'getDatos'])->name('persona.getDatos');
Route::get('persona/horarios/unidadacademica', [ApiPersonaController::class, 'getHorariosPorUnidadAcademica'])->name('persona.horarios.unidadacademica'); 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/horarios/sede', [ApiPersonaController::class, 'getHorariosPorSede'])->name('persona.horarios.sede');
@ -34,10 +22,7 @@ Route::middleware('jwt.auth')->group(function () {
Route::get('persona/funciones/sede', [ApiPersonaController::class, 'getFuncionesPorSede'])->name('persona.funciones.sede'); Route::get('persona/funciones/sede', [ApiPersonaController::class, 'getFuncionesPorSede'])->name('persona.funciones.sede');
Route::get('persona/funciones/unidadacademica', [ApiPersonaController::class, 'getFuncionesPorUnidadAcademica'])->name('persona.funciones.unidadacademica'); 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::get('familiar/{dni}', [ApiFamilliaresController::class, 'familiarPorDni'])->name('persona.familiar');
Route::post('familiares', [ApiFamilliaresController::class, 'getFamiliares'])->name('persona.familiares'); Route::post('familiares', [ApiFamilliaresController::class, 'getFamiliares'])->name('persona.familiares');
}); });

4
routes/web.php

@ -12,7 +12,3 @@ use Illuminate\Support\Facades\Route;
| be assigned to the "web" middleware group. Make something great! | be assigned to the "web" middleware group. Make something great!
| |
*/ */
// Route::get('/', function () {
// return view('welcome');
// });

Loading…
Cancel
Save