AsyncValidateLoadArchivesController.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Jobs\ValidateLoadArchives;
  5. use Illuminate\Support\Str;
  6. class AsyncValidateLoadArchivesController extends Controller
  7. {
  8. private $responseController;
  9. public function __construct()
  10. {
  11. $this->responseController = new ResponseController();
  12. }
  13. public function validateFiles(Request $request)
  14. {
  15. $jobId = Str::uuid();
  16. $userId = $request->input('id_user', '0000000001');
  17. // Guardar archivos temporalmente
  18. $tempPaths = [];
  19. if ($request->hasFile('excel_file')) {
  20. $tempPaths['excel_file'] = $request->file('excel_file')->store('temp_uploads');
  21. }
  22. if ($request->hasFile('zip_file')) {
  23. $tempPaths['zip_file'] = $request->file('zip_file')->store('temp_uploads');
  24. }
  25. // Solo pasar datos serializables al job
  26. $requestData = [
  27. 'id_user' => $userId,
  28. 'linea' => $request->input('linea'),
  29. 'temp_paths' => $tempPaths
  30. ];
  31. ValidateLoadArchives::dispatch($requestData, $userId, $jobId);
  32. return $this->responseController->makeResponse(
  33. false,
  34. 'Validación iniciada',
  35. ['job_id' => $jobId, 'status' => 'processing']
  36. );
  37. }
  38. }