PartnerImportController.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Jobs\SyncConveniosMedicosJob;
  4. use App\Jobs\SyncParceirosJob;
  5. use Illuminate\Http\JsonResponse;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\Cache;
  8. use Illuminate\Support\Facades\Storage;
  9. use Illuminate\Support\Str;
  10. class PartnerImportController extends Controller
  11. {
  12. public function importParceiros(Request $request): JsonResponse
  13. {
  14. $request->validate([
  15. 'file' => 'required|file|mimes:xlsx|max:10240',
  16. ]);
  17. $importId = Str::uuid()->toString();
  18. $filePath = Storage::putFileAs('imports', $request->file('file'), $importId . '.xlsx');
  19. Cache::put($importId, ['status' => 'pending'], now()->addDay());
  20. SyncParceirosJob::dispatch($filePath, $importId)->onQueue('imports');
  21. return $this->successResponse(
  22. payload: ['import_id' => $importId],
  23. code: 202,
  24. );
  25. }
  26. public function importConveniosMedicos(Request $request): JsonResponse
  27. {
  28. $request->validate([
  29. 'file' => 'required|file|mimes:xlsx|max:10240',
  30. ]);
  31. $importId = Str::uuid()->toString();
  32. $filePath = Storage::putFileAs('imports', $request->file('file'), $importId . '.xlsx');
  33. Cache::put($importId, ['status' => 'pending'], now()->addDay());
  34. SyncConveniosMedicosJob::dispatch($filePath, $importId)->onQueue('imports');
  35. return $this->successResponse(
  36. payload: ['import_id' => $importId],
  37. code: 202,
  38. );
  39. }
  40. }