ADD: buscar vehiculos en especifico robado
This commit is contained in:
parent
b27f360109
commit
b689b0e684
@ -1,4 +1,6 @@
|
|||||||
<?php namespace App\Http\Controllers\Api;
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Api;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\Vehicle;
|
use App\Models\Vehicle;
|
||||||
@ -43,10 +45,10 @@ public function consultarVehiculo(Request $request): JsonResponse
|
|||||||
$vin = $request->vin;
|
$vin = $request->vin;
|
||||||
|
|
||||||
// Buscar vehículo en vehicle_fakes
|
// Buscar vehículo en vehicle_fakes
|
||||||
$vehiculo = VehicleFake::when($vin, function($query) use ($vin) {
|
$vehiculo = VehicleFake::when($vin, function ($query) use ($vin) {
|
||||||
return $query->where('vin', $vin);
|
return $query->where('vin', $vin);
|
||||||
})
|
})
|
||||||
->when($placa, function($query) use ($placa) {
|
->when($placa, function ($query) use ($placa) {
|
||||||
return $query->orWhere('placa', $placa);
|
return $query->orWhere('placa', $placa);
|
||||||
})
|
})
|
||||||
->first();
|
->first();
|
||||||
@ -218,7 +220,6 @@ public function recuperarVehiculo(Request $request): JsonResponse
|
|||||||
'acta_robo' => $vehiculoRecuperado->acta_robo,
|
'acta_robo' => $vehiculoRecuperado->acta_robo,
|
||||||
]
|
]
|
||||||
]);
|
]);
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
Log::error('Error al recuperar vehículo', [
|
Log::error('Error al recuperar vehículo', [
|
||||||
'placa' => $request->placa,
|
'placa' => $request->placa,
|
||||||
@ -291,7 +292,6 @@ public function listarRobados(Request $request)
|
|||||||
'total' => $collection->count(),
|
'total' => $collection->count(),
|
||||||
'vehiculos' => $paginatedVehiculos
|
'vehiculos' => $paginatedVehiculos
|
||||||
]);
|
]);
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
return ApiResponse::BAD_REQUEST->response([
|
return ApiResponse::BAD_REQUEST->response([
|
||||||
'success' => false,
|
'success' => false,
|
||||||
@ -323,4 +323,89 @@ public function listarDetecciones()
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function vehicleDetections(Request $request)
|
||||||
|
{
|
||||||
|
$detector = Validator::make($request->all(), [
|
||||||
|
'placa' => 'required_without:vin|string|nullable',
|
||||||
|
'vin' => 'required_without:placa|string|nullable',
|
||||||
|
], [
|
||||||
|
'placa.required_without' => 'Debe proporcionar al menos placa o VIN',
|
||||||
|
'vin.required_without' => 'Debe proporcionar al menos placa o VIN',
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($detector->fails()) {
|
||||||
|
return ApiResponse::BAD_REQUEST->response([
|
||||||
|
'success' => false,
|
||||||
|
'message' => 'Datos inválidos',
|
||||||
|
'errors' => $detector->errors()
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$placa = $request->placa;
|
||||||
|
$vin = $request->vin;
|
||||||
|
|
||||||
|
$detecciones = Detection::when($vin, function ($query) use ($vin) {
|
||||||
|
return $query->where('vin', $vin);
|
||||||
|
})
|
||||||
|
->when($placa, function ($query) use ($placa) {
|
||||||
|
return $query->orWhere('placa', $placa);
|
||||||
|
})
|
||||||
|
->orderBy('fecha_deteccion', 'desc')
|
||||||
|
->paginate(config('app.pagination'));
|
||||||
|
|
||||||
|
if ($detecciones->isEmpty()) {
|
||||||
|
return ApiResponse::NOT_FOUND->response([
|
||||||
|
'success' => false,
|
||||||
|
'message' => 'No se encontraron detecciones para el vehículo proporcionado'
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
return ApiResponse::OK->response([
|
||||||
|
'success' => true,
|
||||||
|
'detecciones' => $detecciones
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ApiResponse::OK->response([
|
||||||
|
'success' => true,
|
||||||
|
'detecciones' => $detecciones
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function buscarVehiculoRobado(Request $request)
|
||||||
|
{
|
||||||
|
$validator = Validator::make($request->all(), [
|
||||||
|
'placa' => 'required_without:vin|string|nullable',
|
||||||
|
'vin' => 'required_without:placa|string|nullable',
|
||||||
|
], [
|
||||||
|
'placa.required_without' => 'Debe proporcionar al menos placa o VIN',
|
||||||
|
'vin.required_without' => 'Debe proporcionar al menos placa o VIN',
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($validator->fails()) {
|
||||||
|
return ApiResponse::BAD_REQUEST->response([
|
||||||
|
'success' => false,
|
||||||
|
'message' => 'Datos inválidos',
|
||||||
|
'errors' => $validator->errors()
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$placa = $request->placa;
|
||||||
|
$vin = $request->vin;
|
||||||
|
|
||||||
|
// Buscar en Redis
|
||||||
|
$vehiculoEncontrado = $this->buscarEnRedis($vin, $placa);
|
||||||
|
|
||||||
|
if (!$vehiculoEncontrado) {
|
||||||
|
return ApiResponse::NOT_FOUND->response([
|
||||||
|
'success' => false,
|
||||||
|
'message' => 'El vehículo no está registrado como robado'
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ApiResponse::OK->response([
|
||||||
|
'success' => true,
|
||||||
|
'message' => 'Vehículo encontrado en lista de robados',
|
||||||
|
'vehiculo' => $vehiculoEncontrado['datos']
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,9 +22,12 @@
|
|||||||
|
|
||||||
Route::post('/vehicles/consultar', [VehicleController::class, 'consultarVehiculo']);
|
Route::post('/vehicles/consultar', [VehicleController::class, 'consultarVehiculo']);
|
||||||
Route::post('/vehicles/recuperar', [VehicleController::class, 'recuperarVehiculo']);
|
Route::post('/vehicles/recuperar', [VehicleController::class, 'recuperarVehiculo']);
|
||||||
|
Route::get('/vehicles/detectar', [VehicleController::class, 'vehicleDetections']);
|
||||||
Route::get('/vehicles/robados', [VehicleController::class, 'listarRobados']);
|
Route::get('/vehicles/robados', [VehicleController::class, 'listarRobados']);
|
||||||
Route::get('/vehicles', [VehicleController::class, 'listarRecuperados']);
|
Route::get('/vehicles', [VehicleController::class, 'listarRecuperados']);
|
||||||
Route::get('/vehicles/detecciones', [VehicleController::class, 'listarDetecciones']);
|
Route::get('/vehicles/detecciones', [VehicleController::class, 'listarDetecciones']);
|
||||||
|
Route::get('/vehicles/robado', [VehicleController::class, 'buscarVehiculoRobado']);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
/** Rutas públicas */
|
/** Rutas públicas */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user