| 1234567891011121314151617181920212223242526272829303132 |
- <?php
- namespace App\Http\Controllers;
- use App\Jobs\SyncAssociadosJob;
- use Illuminate\Http\JsonResponse;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Cache;
- use Illuminate\Support\Facades\Storage;
- use Illuminate\Support\Str;
- class AssociadoImportController extends Controller
- {
- public function importAndSync(Request $request): JsonResponse
- {
- $request->validate([
- 'file' => 'required|file|mimes:xlsx|max:10240',
- ]);
- $importId = Str::uuid()->toString();
- $filePath = Storage::putFileAs('imports', $request->file('file'), $importId . '.xlsx');
- Cache::put($importId, ['status' => 'pending'], now()->addDay());
- SyncAssociadosJob::dispatch($filePath, $importId);
- return $this->successResponse(
- payload: ['import_id' => $importId],
- code: 202,
- );
- }
- }
|