| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- namespace App\Http\Controllers;
- use App\Jobs\SyncAfastamentosJob;
- use App\Jobs\SyncAssociadosJob;
- use App\Jobs\SyncExamesJob;
- 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, auth()->id());
- return $this->successResponse(
- payload: ['import_id' => $importId],
- code: 202,
- );
- }
- public function importAfastamentos(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());
- SyncAfastamentosJob::dispatch($filePath, $importId, auth()->id());
- return $this->successResponse(
- payload: ['import_id' => $importId],
- code: 202,
- );
- }
- public function import(Request $request, int $partnerAgreementId): 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()
- );
- SyncExamesJob::dispatch(
- $filePath,
- $importId,
- auth()->id(),
- $partnerAgreementId
- );
- return $this->successResponse(
- payload: [
- 'import_id' => $importId,
- ],
- code: 202,
- );
- }
- }
|