Browse Source

Configurada ruta del login, y modificada ruta de los familiares

main
jirho 1 year ago
parent
commit
9cf20969d7
  1. 150
      app/Http/Controllers/ApiFamilliaresController.php
  2. 35
      routes/api.php

150
app/Http/Controllers/ApiFamilliaresController.php

@ -2,95 +2,115 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use App\Models\UaderMapucheFamiliares; use App\Models\UaderMapucheFamiliares;
use App\Models\UaderMapuchePersona; use App\Models\UaderMapuchePersona;
use Illuminate\Http\Request; use App\Constants\HttpStatus;
/**
* Controlador para manejar la lógica de las rutas para obtener información de los familiares de una persona.
*/
class ApiFamilliaresController extends Controller class ApiFamilliaresController extends Controller
{ {
/** /**
* Display a listing of the resource. * 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'.
* @return \Illuminate\Http\JsonResponse Respuesta JSON con los datos de los familiares o un error.
*/ */
public function index() public function getFamiliares(Request $request){
{
return json_encode(['reply' => 'hola']);
}
/** if(!$request->has('dni') && !$request->has('telefono')){
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/** return response()->json(
* Store a newly created resource in storage. ['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')],
*/ HttpStatus::BAD_REQUEST
public function store(Request $request) );
{
$input = $request->input(); }
$persona = UaderMapuchePersona::BuscarPersonaPorTelefono($input['cel']);
if (!empty($persona)) { try{
$familiares = $persona->familiares;
$datos = array(); if ($request->has('dni') && !empty($request->get('dni')) ) {
foreach ($familiares as $familiar) { $persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni'));
$datos[] = array( if ($persona) {
'dni' => $familiar->nro_docum, return self::extraerFamiliaresJson($persona);
'apellido' => ucwords(strtolower($familiar['desc_apell'])), }
'nombres' => ucwords(strtolower($familiar['desc_nombre'])),
'parentezco' => $familiar->codc_paren,
'fnac' => $familiar->fec_nacim,
'discapacidad' => $familiar->sino_incap,
'a_cargo' => $familiar->sino_cargo,
);
} }
return response()->json($datos);
} else { if ($request->has('telefono') && !empty($request->get('telefono')) ) {
return response()->json(array(), 404);
$persona = UaderMapuchePersona::BuscarPersonaPorTelefono($request->get('telefono'));
if ($persona) {
return self::extraerFamiliaresJson($persona);
}
}
return response()->json(['error' => trans('persona.NO_ENCONTRADA')], HttpStatus::NOT_FOUND);
} catch (\Exception $e) {
Log::error(trans('persona.LOG_DATOS') . $e->getMessage());
return response()->json(['error' => trans('persona.ERROR')], HttpStatus::INTERNAL_SERVER_ERROR);
} }
} }
/** /**
* Display the specified resource. * 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.
* @return \Illuminate\Http\JsonResponse Respuesta JSON con los datos de los familiares.
*/ */
public function buscar($dni) public function extraerFamiliaresJson($persona)
{ {
$persona = UaderMapucheFamiliares::where('nro_docum', $dni)->first();
if (!empty($persona)) { $familiares = $persona->familiares;
$datos = array( $datos = array();
'apellido' => ucwords(strtolower($persona->desc_apell)),
'nombres' => ucwords(strtolower($persona->desc_nombre)), foreach ($familiares as $familiar) {
'parentezco' => $persona->codc_paren,
'fnac' => $persona->fec_nacim, $datos[] = array(
'dni' => $familiar->nro_docum,
'apellido' => ucwords(strtolower($familiar['desc_apell'])),
'nombres' => ucwords(strtolower($familiar['desc_nombre'])),
'parentezco' => $familiar->codc_paren,
'fnac' => $familiar->fec_nacim,
'discapacidad' => $familiar->sino_incap,
'a_cargo' => $familiar->sino_cargo,
); );
return response()->json($datos);
} else {
return response()->json(array(), 404);
} }
}
/** return response()->json($datos);
* Show the form for editing the specified resource.
*/
public function edit(UaderMapucheFamiliares $uaderMapucheFamiliares)
{
//
} }
/** /**
* Update the specified resource in storage. * 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.
* @return \Illuminate\Http\JsonResponse Respuesta JSON con los datos del familiar o un código 404 si no se encuentra.
*/ */
public function update(Request $request, UaderMapucheFamiliares $uaderMapucheFamiliares) public function familiarPorDni($dni)
{ {
// if ( UaderMapucheFamiliares::where('nro_docum', $dni)->exists() ) {
}
/** $familiar = UaderMapucheFamiliares::where('nro_docum', $dni)->first();
* Remove the specified resource from storage.
*/ return response()->json(
public function destroy(UaderMapucheFamiliares $uaderMapucheFamiliares) 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);
}
} }
} }

35
routes/api.php

@ -1,10 +1,10 @@
<?php <?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ApiPersonaController; use App\Http\Controllers\ApiPersonaController;
use App\Http\Controllers\ApiFamilliaresController; use App\Http\Controllers\ApiFamilliaresController;
use App\Http\Controllers\ApiController; use App\Http\Controllers\ApiController;
use App\Http\Controllers\AuthController;
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -17,22 +17,27 @@ use App\Http\Controllers\ApiController;
| |
*/ */
// Route::middleware('auth:sanctum')->get('/user', function (Request $request) { Route::get('/', [ApiController::class, 'bienvenida'])->name('bienvenida');
// return $request->user();
// });
Route::post('login', [AuthController::class, 'login'])->name('login');
Route::get('/', [ApiController::class, 'bienvenida'])->name('api.bienvenida');
# Rutas de personas: Route::middleware('jwt.auth')->group(function () {
Route::post('logout', [AuthController::class, 'logout'])->name('logout');
# 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:
Route::get('familiar/{dni}', [ApiFamilliaresController::class, 'familiarPorDni'])->name('persona.familiar');
Route::post('familiares', [ApiFamilliaresController::class, 'getFamiliares'])->name('persona.familiares');
});
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:
Route::get('familiar/{dni}', [ApiFamilliaresController::class, 'buscar'])->name('familiar.buscar');
Route::apiResource('familiares', ApiFamilliaresController::class);

Loading…
Cancel
Save