From d7761088dd4cd0393bf6d4713320278fa3762cad Mon Sep 17 00:00:00 2001 From: Juan Felipe Zapata Moreno Date: Wed, 29 Oct 2025 15:58:07 -0600 Subject: [PATCH] Arreglo a imagenes y al searchRecord --- Docker/nginx/nginx.conf | 2 +- .../Repuve/InscriptionController.php | 59 +++++++++---------- .../Controllers/Repuve/UpdateController.php | 52 ++-------------- database/factories/VehicleFactory.php | 4 +- docker-compose.yml | 1 + routes/api.php | 2 +- 6 files changed, 39 insertions(+), 81 deletions(-) diff --git a/Docker/nginx/nginx.conf b/Docker/nginx/nginx.conf index 5ade1b7..4fc73cc 100644 --- a/Docker/nginx/nginx.conf +++ b/Docker/nginx/nginx.conf @@ -45,7 +45,7 @@ server { # Handle storage files (Laravel storage link) location /storage { - alias /var/www/repuve-backend-v1/storage/app; + alias /var/www/repuve-backend-v1/storage/app/public; try_files $uri =404; } diff --git a/app/Http/Controllers/Repuve/InscriptionController.php b/app/Http/Controllers/Repuve/InscriptionController.php index d75b03c..7a4154c 100644 --- a/app/Http/Controllers/Repuve/InscriptionController.php +++ b/app/Http/Controllers/Repuve/InscriptionController.php @@ -350,9 +350,9 @@ public function searchRecord(Request $request) $request->validate([ 'folio' => 'nullable|string', 'placa' => 'nullable|string', - 'niv' => 'nullable|string', + 'vin' => 'nullable|string', ], [ - 'required_without_all' => 'Debe proporcionar al menos uno de los siguientes: folio, placa o NIV.' + 'required_without_all' => 'Debe proporcionar al menos uno de los siguientes: folio, placa o vin.' ]); $query = Record::with(['vehicle.owner', 'vehicle.tag', 'files', 'user', 'error'])->orderBy('id', 'ASC'); @@ -365,9 +365,9 @@ public function searchRecord(Request $request) $query->whereHas('vehicle', function ($q) use ($request) { $q->where('placa', 'LIKE', '%' . $request->input('placa') . '%'); }); - } elseif ($request->filled('niv')) { + } elseif ($request->filled('vin')) { $query->whereHas('vehicle', function ($q) use ($request) { - $q->where('numero_serie', 'LIKE', '%' . $request->input('niv') . '%'); + $q->where('numero_serie', 'LIKE', '%' . $request->input('vin') . '%'); }); } @@ -418,7 +418,6 @@ public function searchRecord(Request $request) 'name' => $file->name, 'path' => $file->path, 'url' => $file->url, - 'md5' => $file->md5, ]; }), ]; @@ -437,35 +436,35 @@ public function searchRecord(Request $request) private function getVehicle(): array { return [ - "ANIO_PLACA" => "2021", - "PLACA" => "WNU700A", - "NO_SERIE" => "LSGHD52H0ND032458", - "RFC" => "GME111116GJA", - "FOLIO" => "EXP-2025-201030", - "VIGENCIA" => "2025", - "FECHA_IMPRESION" => "10-01-2025", - "QR_HASH" => "Vu5TF4kYsbbltzjDdGQyenKfZoIk2wro34a5Gkh9JVh0CFxfPlrd92YEWK21JF.nLjQNyzKmqRvWYuPiS.kU7A--", + "ANIO_PLACA" => "2023", + "PLACA" => "WXY-789-Z", + "NO_SERIE" => "9KLMNP8R7ST234567", + "RFC" => "SDE010203XYZ", + "FOLIO" => "54321", + "VIGENCIA" => "2026", + "FECHA_IMPRESION" => "15-03-2024", + "QR_HASH" => "Abc123Def456Ghi789Jkl0MnOpQrStUvWxYzZaBcDeFgHiJkLmNoPqRsTuVwXyZ", "VALIDO" => true, "FOLIOTEMP" => false, - "NOMBRE" => "GOLSYSTEMS DE MEXICO S DE RL DE CV", - "NOMBRE2" => "GOLS*MS DXICOE RL*CV", - "MUNICIPIO" => "CENTRO", - "LOCALIDAD" => "VILLAHERMOSA", - "CALLE" => "C BUGAMBILIAS 118 ", - "CALLE2" => "C BU*ILIA*18 ", - "TIPO" => "SEDAN", + "NOMBRE" => "SERVICIOS INFORMATICOS DEL GOLFO SA DE CV", + "NOMBRE2" => "SERVI*IOS I*TICOSLFO SA*CV", + "MUNICIPIO" => "CARDENAS", + "LOCALIDAD" => "HEROICA CARDENAS", + "CALLE" => "AV. LAZARO CARDENAS 200", + "CALLE2" => "AV. LA*RO CA*NAS 2*0", + "TIPO" => "SUV", "TIPO_SERVICIO" => "PARTICULAR", - "MARCA" => "CHEVROLET G.M.C.", - "LINEA" => "AVEO", - "SUBLINEA" => "PAQ. \"A\" LS", - "MODELO" => 2022, - "NUMERO_SERIE" => "LSGHD52H0ND032458", - "NUMERO_MOTOR" => "H. EN WUHANLL,SGM", + "MARCA" => "NISSAN", + "LINEA" => "KICKS", + "SUBLINEA" => "ADVANCE", + "MODELO" => 2023, + "NUMERO_SERIE" => "9KLMNP8R7ST234567", + "NUMERO_MOTOR" => "HR16DE123456Z", "DESCRIPCION_ORIGEN" => "NACIONAL", - "COLOR" => "BLANCO", - "CODIGO_POSTAL" => "86179", - "SERIE_FOLIO" => "D3962242", - "SFOLIO" => "3962242" + "COLOR" => "GRIS OXFORD", + "CODIGO_POSTAL" => "86500", + "SERIE_FOLIO" => "E8765432", + "SFOLIO" => "8765432" ]; } diff --git a/app/Http/Controllers/Repuve/UpdateController.php b/app/Http/Controllers/Repuve/UpdateController.php index 91d9dbb..0df5424 100644 --- a/app/Http/Controllers/Repuve/UpdateController.php +++ b/app/Http/Controllers/Repuve/UpdateController.php @@ -13,7 +13,6 @@ use App\Models\Tag; use App\Models\Error; use Exception; -use PhpParser\Node\Stmt\Foreach_; class UpdateController extends Controller { @@ -22,15 +21,9 @@ public function vehicleData(Request $request) { try { $request->validate([ - 'folio' => 'required', - 'string', - 'exists:records,folio', - 'tag_number' => 'required', - 'string', - 'exists:tags,tag_number', - 'vin' => 'required', - 'string', - 'exists:vehicles,vin' + 'folio' => 'required','string','exists:records,folio', + 'tag_number' => 'required','string','exists:tags,tag_number', + 'vin' => 'required','string','exists:vehicles,vin' ]); $folio = $request->input('folio'); @@ -216,14 +209,13 @@ public function vehicleUpdate(VehicleUpdateRequest $request) $customName = str_replace(' ', '_', $customName); $extension = $file->getClientOriginalExtension(); $fileName = $customName . '_' . time() . '.' . $extension; - $path = $file->storeAs('records' . $fileName, 'public'); + $path = $file->storeAs('records', $fileName, 'public'); $md5 = md5_file($file->getRealPath()); $fileRecord = File::create([ 'record_id' => $record->id, 'name' => $fileName, 'path' => $path, - 'url' => asset('storage/' . $path), 'md5' => $md5, ]); @@ -231,7 +223,7 @@ public function vehicleUpdate(VehicleUpdateRequest $request) 'id' => $fileRecord->id, 'name' => $fileRecord->name, 'path' => $fileRecord->path, - 'md5' => $fileRecord->md5, + 'url' => $fileRecord->url, ]; } } @@ -383,40 +375,6 @@ private function sendToRepuveNacional(string $vin): array ]; } - private function getVehicle2(): array - { - return [ - "ANIO_PLACA" => "2027", - "PLACA" => "WNU730X", - "NO_SERIE" => "EXP-2025-201030", - "RFC" => "GME111116GJA", - "FOLIO" => "EXP-2025-201030", - "VIGENCIA" => "2026", - "FECHA_IMPRESION" => "10-01-2025", - "QR_HASH" => "Vu5TF4kYsbbltzjDdGQyenKfZoIk2wro34a5Gkh9JVh0CFxfPlrd92YEWK21JF.nLjQNyzKmqRvWYuPiS.kU7A--", - "VALIDO" => true, - "NOMBRE" => "GOLSYSTEMS DE MEXICO S DE RL DE CV", - "NOMBRE2" => "GOLS*MS DXICOE RL*CV", - "MUNICIPIO" => "CENTRO", - "LOCALIDAD" => "VILLAHERMOSA", - "CALLE" => "C BUGAMBILIAS 119 ", - "CALLE2" => "C BU*ILIA*18 ", - "TIPO" => "SEDAN", - "TIPO_SERVICIO" => "PARTICULAR", - "MARCA" => "CHEVROLET G.M.C.", - "LINEA" => "AVEO", - "SUBLINEA" => "PAQ. \"A\" LS", - "MODELO" => 2023, - "NUMERO_SERIE" => "EXP-2025-201030", - "NUMERO_MOTOR" => "H. EN WUHANLL,SGM", - "DESCRIPCION_ORIGEN" => "IMPORTADO", - "COLOR" => "AZUL", - "CODIGO_POSTAL" => "86181", - "SERIE_FOLIO" => "D3962242", - "SFOLIO" => "EXP-2025-201030" - ]; - } - private function getOwner(): array { return [ diff --git a/database/factories/VehicleFactory.php b/database/factories/VehicleFactory.php index f27c384..359f3c9 100644 --- a/database/factories/VehicleFactory.php +++ b/database/factories/VehicleFactory.php @@ -58,8 +58,8 @@ public function definition(): array return [ 'anio_placa' => (string) $year, - 'placa' => $placa, - 'numero_serie' => $vin, + 'placa' => $placa . fake()->unique(), + 'numero_serie' => $vin . fake()->unique(), 'rfc' => 'GME' . fake()->numerify('######') . 'GJA', 'folio' => fake()->unique()->numerify('#######'), 'vigencia' => (string) ($year + 1), diff --git a/docker-compose.yml b/docker-compose.yml index eac721b..c69b5d0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -26,6 +26,7 @@ services: - "${NGINX_PORT}:80" volumes: - ./public:/var/www/repuve-backend-v1/public + - ./storage:/var/www/repuve-backend-v1/storage - ./Docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf networks: - repuve-network diff --git a/routes/api.php b/routes/api.php index a9be703..bf0cbd2 100644 --- a/routes/api.php +++ b/routes/api.php @@ -28,7 +28,7 @@ Route::middleware('auth:api')->group(function() { // Rutas de inscripción de vehículos Route::post('inscripcion', [InscriptionController::class, 'vehicleInscription']); - Route::get('consulta', [InscriptionController::class, 'searchRecord']); + Route::get('consultaV', [InscriptionController::class, 'searchRecord']); // Rutas de expedientes y documentos Route::get('expediente/{id}/pdf', [RecordController::class, 'generatePdf']);