Ultimos cambios - endpoint stolen
This commit is contained in:
parent
7ad6f87b17
commit
fae8979532
@ -136,7 +136,7 @@ public function vehicleInscription(VehicleStoreRequest $request)
|
|||||||
$catalogName = CatalogNameImg::firstOrCreate(['name' => $customName]);
|
$catalogName = CatalogNameImg::firstOrCreate(['name' => $customName]);
|
||||||
$extension = $file->getClientOriginalExtension();
|
$extension = $file->getClientOriginalExtension();
|
||||||
$fileName = $customName . '_' . date('dmY_His') . '.' . $extension;
|
$fileName = $customName . '_' . date('dmY_His') . '.' . $extension;
|
||||||
$path = $file->storeAs('records', $fileName, 'public');
|
$path = $file->storeAs("records/{$record->folio}", $fileName, 'public');
|
||||||
$md5 = md5_file($file->getRealPath());
|
$md5 = md5_file($file->getRealPath());
|
||||||
|
|
||||||
$fileRecord = File::create([
|
$fileRecord = File::create([
|
||||||
@ -265,6 +265,63 @@ private function checkIfStolen(string $folio): bool
|
|||||||
return (bool) rand(0, 1);
|
return (bool) rand(0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function stolen(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'folio' => ['sometimes', 'string', 'max:50'],
|
||||||
|
'tag_number' => ['sometimes', 'string', 'exists:tags,tag_number'],
|
||||||
|
'vin' => ['sometimes', 'string', 'max:30'],
|
||||||
|
]);
|
||||||
|
|
||||||
|
$folio = $request->input('folio');
|
||||||
|
$tagNumber = $request->input('tag_number');
|
||||||
|
$vin = $request->input('vin');
|
||||||
|
|
||||||
|
// Validar que se proporcione al menos un criterio de búsqueda
|
||||||
|
if (!$folio && !$tagNumber && !$vin) {
|
||||||
|
return ApiResponse::BAD_REQUEST->response([
|
||||||
|
'message' => 'Debe proporcionar al menos un criterio de búsqueda: folio y tag_number, o vin',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
$query = Record::with(['vehicle.owner', 'vehicle.tag']);
|
||||||
|
|
||||||
|
// Búsqueda por folio ó tag_number
|
||||||
|
if ($folio && !$tagNumber) {
|
||||||
|
$query->where('folio', $folio);
|
||||||
|
}elseif (!$folio && $tagNumber) {
|
||||||
|
$query->whereHas('vehicle.tag', function ($q) use ($tagNumber) {
|
||||||
|
$q->where('tag_number', $tagNumber);
|
||||||
|
});
|
||||||
|
}// Búsqueda solo por VIN
|
||||||
|
elseif ($vin) {
|
||||||
|
$query->whereHas('vehicle', function ($q) use ($vin) {
|
||||||
|
$q->where('niv', $vin);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$record = $query->first();
|
||||||
|
|
||||||
|
if (!$record) {
|
||||||
|
return ApiResponse::NOT_FOUND->response([
|
||||||
|
'stolen' => false,
|
||||||
|
'message' => 'No se encontró ningún registro con los criterios proporcionados',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ApiResponse::OK->response([
|
||||||
|
'stolen' => true,
|
||||||
|
'vehicle' => [
|
||||||
|
'folio' => $record->folio,
|
||||||
|
'placa' => $record->vehicle->placa,
|
||||||
|
'tag_number' => $record->vehicle->tag?->tag_number,
|
||||||
|
'vin' => $record->vehicle->niv,
|
||||||
|
'marca' => $record->vehicle->marca,
|
||||||
|
'modelo' => $record->vehicle->linea,
|
||||||
|
'año' => $record->vehicle->modelo,
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
private function sendToRepuveNacional(string $vin): array
|
private function sendToRepuveNacional(string $vin): array
|
||||||
{
|
{
|
||||||
// Enviar datos a API Repuve Nacional
|
// Enviar datos a API Repuve Nacional
|
||||||
|
|||||||
@ -15,7 +15,7 @@ public function rules(): array
|
|||||||
return [
|
return [
|
||||||
'folio' => ['required', 'string', 'max:50'],
|
'folio' => ['required', 'string', 'max:50'],
|
||||||
'tag_number' => ['required', 'string', 'exists:tags,tag_number'],
|
'tag_number' => ['required', 'string', 'exists:tags,tag_number'],
|
||||||
'vin' => ['required', 'string', 'max:30'],
|
'vin' => ['sometimes', 'string', 'max:30'],
|
||||||
'files' => ['nullable', 'array', 'min:1'],
|
'files' => ['nullable', 'array', 'min:1'],
|
||||||
'files.*' => ['file', 'mimes:jpeg,png,jpg', 'max:10240'],
|
'files.*' => ['file', 'mimes:jpeg,png,jpg', 'max:10240'],
|
||||||
'names' => ['nullable', 'array'],
|
'names' => ['nullable', 'array'],
|
||||||
|
|||||||
@ -29,13 +29,14 @@
|
|||||||
// Rutas de inscripción de vehículos
|
// Rutas de inscripción de vehículos
|
||||||
Route::post('inscripcion', [InscriptionController::class, 'vehicleInscription']);
|
Route::post('inscripcion', [InscriptionController::class, 'vehicleInscription']);
|
||||||
Route::get('consultaV', [InscriptionController::class, 'searchRecord']);
|
Route::get('consultaV', [InscriptionController::class, 'searchRecord']);
|
||||||
Route::get('RecordErrors', [RecordController::class, 'errors']);
|
Route::post('stolen', [InscriptionController::class, 'stolen']);
|
||||||
|
|
||||||
// Rutas de expedientes y documentos
|
// Rutas de expedientes y documentos
|
||||||
Route::get('expediente/{id}/pdf', [RecordController::class, 'generatePdf']);
|
Route::get('expediente/{id}/pdf', [RecordController::class, 'generatePdf']);
|
||||||
Route::get('expediente/{id}/pdfVerificacion', [RecordController::class, 'generatePdfVerification']);
|
Route::get('expediente/{id}/pdfVerificacion', [RecordController::class, 'generatePdfVerification']);
|
||||||
Route::get('expediente/{id}/pdfConstancia', [RecordController::class, 'generatePdfConstancia']);
|
Route::get('expediente/{id}/pdfConstancia', [RecordController::class, 'generatePdfConstancia']);
|
||||||
Route::get('expediente/{id}/pdfImagenes', [RecordController::class, 'generatePdfImages']);
|
Route::get('expediente/{id}/pdfImagenes', [RecordController::class, 'generatePdfImages']);
|
||||||
|
Route::get('RecordErrors', [RecordController::class, 'errors']);
|
||||||
|
|
||||||
//Rutas de Actualización
|
//Rutas de Actualización
|
||||||
Route::get('consulta', [UpdateController::class, 'vehicleData']);
|
Route::get('consulta', [UpdateController::class, 'vehicleData']);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user