ADD: arreglo detectar solo un vehiculo
This commit is contained in:
parent
b689b0e684
commit
ccc4449d78
@ -323,27 +323,32 @@ public function listarDetecciones()
|
||||
]);
|
||||
}
|
||||
|
||||
public function vehicleDetections(Request $request)
|
||||
public function buscarVehiculo(Request $request)
|
||||
{
|
||||
$detector = Validator::make($request->all(), [
|
||||
$validated = $request->validate([
|
||||
'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([
|
||||
$placa = $validated['placa'] ?? null;
|
||||
$vin = $validated['vin'] ?? null;
|
||||
|
||||
$vehiculo = VehicleFake::when($vin, function ($query) use ($vin) {
|
||||
return $query->where('vin', $vin);
|
||||
})
|
||||
->when($placa, function ($query) use ($placa) {
|
||||
return $query->orWhere('placa', $placa);
|
||||
})
|
||||
->first();
|
||||
|
||||
if (!$vehiculo) {
|
||||
return ApiResponse::NOT_FOUND->response([
|
||||
'success' => false,
|
||||
'message' => 'Datos inválidos',
|
||||
'errors' => $detector->errors()
|
||||
'message' => 'No se encontró el vehículo en la base de datos'
|
||||
]);
|
||||
}
|
||||
|
||||
$placa = $request->placa;
|
||||
$vin = $request->vin;
|
||||
|
||||
// Buscar detecciones del vehículo
|
||||
$detecciones = Detection::when($vin, function ($query) use ($vin) {
|
||||
return $query->where('vin', $vin);
|
||||
})
|
||||
@ -353,44 +358,31 @@ public function vehicleDetections(Request $request)
|
||||
->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,
|
||||
'vehiculo' => [
|
||||
'folio_tag' => $vehiculo->folio_tag,
|
||||
'tag_number' => $vehiculo->tag_number,
|
||||
'placa' => $vehiculo->placa,
|
||||
'vin' => $vehiculo->vin,
|
||||
'marca' => $vehiculo->marca,
|
||||
'modelo' => $vehiculo->modelo,
|
||||
'color' => $vehiculo->color,
|
||||
],
|
||||
'total_detecciones' => $detecciones->total(),
|
||||
'detecciones' => $detecciones
|
||||
]);
|
||||
}
|
||||
|
||||
public function buscarVehiculoRobado(Request $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
$validated = $request->validate([
|
||||
'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;
|
||||
$placa = $validated['placa'] ?? null;
|
||||
$vin = $validated['vin'] ?? null;
|
||||
|
||||
// Buscar en Redis
|
||||
$vehiculoEncontrado = $this->buscarEnRedis($vin, $placa);
|
||||
|
||||
@ -27,6 +27,6 @@ class Detection extends Model
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'fecha_deteccion' => 'datetime'
|
||||
'fecha_deteccion' => 'datetime:Y-m-d H:i:s'
|
||||
];
|
||||
}
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
|
||||
Route::post('/vehicles/consultar', [VehicleController::class, 'consultarVehiculo']);
|
||||
Route::post('/vehicles/recuperar', [VehicleController::class, 'recuperarVehiculo']);
|
||||
Route::get('/vehicles/detectar', [VehicleController::class, 'vehicleDetections']);
|
||||
Route::get('/vehicles/detectar', [VehicleController::class, 'buscarVehiculo']);
|
||||
Route::get('/vehicles/robados', [VehicleController::class, 'listarRobados']);
|
||||
Route::get('/vehicles', [VehicleController::class, 'listarRecuperados']);
|
||||
Route::get('/vehicles/detecciones', [VehicleController::class, 'listarDetecciones']);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user