Browse Source

ruta de direccion por dni/telefono

main
jirho 2 years ago
parent
commit
a6d7afc12d
  1. 106
      app/Http/Controllers/ApiPersonaController.php
  2. 4
      routes/api.php

106
app/Http/Controllers/ApiPersonaController.php

@ -27,8 +27,6 @@ class ApiPersonaController extends Controller
try{ try{
throw new \Exception("prueba");
if ($request->has('dni')) { if ($request->has('dni')) {
$persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni')); $persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni'));
@ -122,35 +120,46 @@ class ApiPersonaController extends Controller
} }
} }
public function buscar($dni) public function getDireccion(Request $request)
{ {
$persona = UaderMapuchePersona::buscarPersonaPorDni($dni); /**
if (!empty($persona)) { * Obtiene la direccion de una persona según el DNI o el número de teléfono.
$dj = UaderDjPersona::find($persona->id_dj_persona); *
$datos = array( * @param \Illuminate\Http\Request $request La solicitud HTTP que contiene los parámetros de búsqueda.
'id' => $dj->id_persona, * @return \Illuminate\Http\JsonResponse La respuesta JSON con los datos de la persona encontrada, o un mensaje de error si no se encuentra.
'dni' => $persona->nro_docum, */
'apellido' => ucwords(strtolower(trim($persona->desc_appat))),
'nombres' => ucwords(strtolower(trim($persona->desc_nombr))), if(!$request->has('dni') && !$request->has('telefono')){
'telefono' => '549' . preg_replace('([^0-9])', '', trim($persona->telefono_celular)),
'email' => strtolower(trim($persona->correo_electronico)), return response()->json(['error' => trans('persona.DEBE_INGRESAR_DNI_O_TELEFONO')], HttpStatus::BAD_REQUEST);
'domicilio' => array( }
'calle' => strtolower(trim($persona->calle)),
'numero' => strtolower(trim($persona->numero)), try{
'piso' => strtolower(trim($persona->piso)),
'dpto_oficina' => strtolower(trim($persona->dpto_oficina)), if ($request->has('dni')) {
'calles_entre' => strtolower(trim($persona->calles_entre)),
'domicilio_referencia' => strtolower(trim($persona->domicilio_referencia)), $persona = UaderMapuchePersona::buscarPersonaPorDni($request->get('dni'));
'zona_paraje' => strtolower(trim($persona->zona_paraje)),
'casa_nro' => strtolower(trim($persona->casa_nro)), if ($persona) {
'casa_manzana' => strtolower(trim($persona->casa_manzana)), return ApiPersonaController::extraerDireccion($persona);
'localidad' => ucfirst(strtolower(trim($persona->Localidad->desc_localidad))), }
'provincia' => trim($persona->Provincia->descripcion_pcia), }
)
); if ($request->has('telefono')) {
return response()->json($datos);
} else { $persona = UaderMapuchePersona::BuscarPersonaPorTelefono($request->get('telefono'));
return response()->json(array(), 404);
if ($persona) {
return ApiPersonaController::extraerDireccion($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);
} }
} }
@ -221,7 +230,6 @@ class ApiPersonaController extends Controller
} }
public static function extraerDatos($persona){ public static function extraerDatos($persona){
/** /**
* Extrae los datos necesarios de una persona para ser devueltos como respuesta JSON. * Extrae los datos necesarios de una persona para ser devueltos como respuesta JSON.
* *
@ -248,6 +256,42 @@ class ApiPersonaController extends Controller
return response()->json($datos, HttpStatus::OK); return response()->json($datos, HttpStatus::OK);
} }
public static function extraerDireccion($persona){
/**
* 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.
* @return \Illuminate\Http\JsonResponse La respuesta JSON con los datos extraídos de la persona.
**/
$declaracion_jurada = $persona->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,
'nombre' => ucwords(strtolower(trim($persona->desc_nombr))) . ' ' .ucwords(strtolower(trim($persona->desc_appat))) ?? null,
'domicilio' => array(
'calle' => strtolower(trim($persona->calle)) ?? null,
'numero' => strtolower(trim($persona->numero)) ?? null,
'piso' => strtolower(trim($persona->piso)) ?? null,
'dpto_oficina' => strtolower(trim($persona->dpto_oficina)) ?? null,
'calles_entre' => strtolower(trim($persona->calles_entre)) ?? null,
'domicilio_referencia' => strtolower(trim($persona->domicilio_referencia)) ?? null,
'zona_paraje' => strtolower(trim($persona->zona_paraje)) ?? null,
'casa_nro' => strtolower(trim($persona->casa_nro)) ?? null,
'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);
}
# FUNCION STANDALONE: # FUNCION STANDALONE:
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']);

4
routes/api.php

@ -26,11 +26,9 @@ Route::get('/', [ApiController::class, 'bienvenida'])->name('api.bienvenida');
# Rutas de personas: # Rutas de personas:
# Ruta de datos basicos:
Route::get('persona/datos', [ApiPersonaController::class, 'getDatos'])->name('persona.getDatos'); Route::get('persona/datos', [ApiPersonaController::class, 'getDatos'])->name('persona.getDatos');
# Ruta de horarios (por unidad academica, funcion y tipo de horario):
Route::get('persona/horarios', [ApiPersonaController::class, 'getHorarios'])->name('persona.getHorarios'); Route::get('persona/horarios', [ApiPersonaController::class, 'getHorarios'])->name('persona.getHorarios');
Route::get('persona/direccion', [ApiPersonaController::class, 'getDireccion'])->name('persona.getDireccion');
# Rutas de familiares: # Rutas de familiares:
Route::get('familiar/{dni}', [ApiFamilliaresController::class, 'buscar'])->name('familiar.buscar'); Route::get('familiar/{dni}', [ApiFamilliaresController::class, 'buscar'])->name('familiar.buscar');

Loading…
Cancel
Save