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;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use App\Models\UaderMapucheFamiliares;
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
{
/**
* 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()
{
return json_encode(['reply' => 'hola']);
}
public function getFamiliares(Request $request){
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
if(!$request->has('dni') && !$request->has('telefono')){
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
$input = $request->input();
$persona = UaderMapuchePersona::BuscarPersonaPorTelefono($input['cel']);
if (!empty($persona)) {
$familiares = $persona->familiares;
$datos = array();
foreach ($familiares as $familiar) {
$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(
['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')],
HttpStatus::BAD_REQUEST
);
}
try{
if ($request->has('dni') && !empty($request->get('dni')) ) {
$persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni'));
if ($persona) {
return self::extraerFamiliaresJson($persona);
}
}
return response()->json($datos);
} else {
return response()->json(array(), 404);
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);
} 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)) {
$datos = array(
'apellido' => ucwords(strtolower($persona->desc_apell)),
'nombres' => ucwords(strtolower($persona->desc_nombre)),
'parentezco' => $persona->codc_paren,
'fnac' => $persona->fec_nacim,
$familiares = $persona->familiares;
$datos = array();
foreach ($familiares as $familiar) {
$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);
}
}
/**
* Show the form for editing the specified resource.
*/
public function edit(UaderMapucheFamiliares $uaderMapucheFamiliares)
{
//
return response()->json($datos);
}
/**
* 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() ) {
/**
* Remove the specified resource from storage.
*/
public function destroy(UaderMapucheFamiliares $uaderMapucheFamiliares)
{
//
$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);
}
}
}

35
routes/api.php

@ -1,10 +1,10 @@
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ApiPersonaController;
use App\Http\Controllers\ApiFamilliaresController;
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) {
// return $request->user();
// });
Route::get('/', [ApiController::class, 'bienvenida'])->name('bienvenida');
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