File manager - Edit - /var/www/html/portal/app/Http/Services/Observatorio/TemaService.php
Back
<?php namespace App\Http\Services\Observatorio; use App\Models\Observatorio\Tema; use Illuminate\Contracts\Pagination\LengthAwarePaginator; use Illuminate\Http\Request; use Illuminate\Http\UploadedFile; use Illuminate\Support\Facades\DB; class TemaService { public function listWithFilters(Request $request, int $perPage = 20): LengthAwarePaginator { return Tema::query() ->withCount('indicadores') ->when($request->filled('q'), function ($query) use ($request) { $term = trim((string) $request->input('q')); $query->where('nome', 'like', "%{$term}%"); }) ->orderBy('nome') ->paginate($perPage) ->appends($request->query()); } public function create(array $data, ?UploadedFile $iconeArquivo = null): Tema { return DB::connection('mysql_observatorio')->transaction(function () use ($data, $iconeArquivo): Tema { $data = $this->sanitizeData($data); ObservatorioUploadHelper::applyIconeUpload( $data, $iconeArquivo, null, ObservatorioUploadHelper::FOLDER_TEMA ); return Tema::create($data); }); } public function update(Tema $tema, array $data, ?UploadedFile $iconeArquivo = null): Tema { DB::connection('mysql_observatorio')->transaction(function () use ($tema, $data, $iconeArquivo): void { $data = $this->sanitizeData($data); ObservatorioUploadHelper::applyIconeUpload( $data, $iconeArquivo, $tema->icone, ObservatorioUploadHelper::FOLDER_TEMA ); $tema->update($data); }); return $tema; } public function delete(Tema $tema): void { DB::connection('mysql_observatorio')->transaction(function () use ($tema): void { ObservatorioUploadHelper::deleteIcone($tema->icone); $tema->delete(); }); } private function sanitizeData(array $data): array { $data['status'] = $data['status'] ?? 'ATIVADO'; unset($data['q'], $data['page'], $data['icone_arquivo']); return $data; } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings