File manager - Edit - /var/www/html/portalHomolog/app/Http/Services/ConselhosMunicipais/ArquivosService.php
Back
<?php namespace App\Http\Services\ConselhosMunicipais; use Illuminate\Support\Facades\DB; use Illuminate\Http\RedirectResponse; use App\Models\ConselhosMunicipais\Conselho; use App\Models\Arquivo; use Illuminate\Support\Facades\Auth; use Illuminate\Http\Request; use App\Http\Resources\ConselhosMunicipais\ArquivosResource; use Illuminate\Pagination\LengthAwarePaginator; use Spatie\PdfToText\Pdf; class ArquivosService { public function list(Conselho $conselho, Request $request): LengthAwarePaginator { $q = (string) ($request->input('q') ?? ''); $query = Arquivo::where('owner_id', $conselho->id); if ($q !== '') { $query->where('nome', 'like', "%{$q}%"); } return $query->orderByDesc('created_at')->paginate(15)->withQueryString(); } public function store(Conselho $conselho, array $data, Request $request): RedirectResponse { try { DB::beginTransaction(); Arquivo::create([ 'user_id' => Auth::user()?->id, 'owner_id' => $conselho->id, 'tipo' => $data['tipo'] ?? null, 'nome' => $data['nome'] ?? null, 'evento_at' => $data['evento_at'] ?? null, 'status' => $data['status'] ?? 'ATIVADO', 'link' => ArquivosResource::getLinkPath($request), ]); DB::commit(); return redirect()->route('admin.conselhosMunicipais.arquivos.index', $conselho->id) ->with('success', __('Arquivo cadastrado com sucesso')); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.conselhosMunicipais.arquivos.create', $conselho->id) ->withInput()->with('error', __('Erro ao cadastrar arquivo: ') . $e->getMessage()); } } public function update(Conselho $conselho, Arquivo $arquivo, array $data, Request $request): RedirectResponse { try { DB::beginTransaction(); $arquivo->tipo = $data['tipo'] ?? $arquivo->tipo; $arquivo->nome = $data['nome'] ?? $arquivo->nome; $arquivo->evento_at = $data['evento_at'] ?? $arquivo->evento_at; $arquivo->status = $data['status'] ?? $arquivo->status; $arquivo->link = ArquivosResource::getLinkPath($request, $arquivo); $arquivo->save(); DB::commit(); return redirect()->route('admin.conselhosMunicipais.arquivos.index', $conselho->id) ->with('success', __('Arquivo atualizado com sucesso')); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.conselhosMunicipais.arquivos.edit', [$conselho->id, $arquivo->id]) ->withInput()->with('error', __('Erro ao atualizar arquivo: ') . $e->getMessage()); } } public function destroy(Conselho $conselho, Arquivo $arquivo): RedirectResponse { try { DB::beginTransaction(); (new ArquivosResource())->handleFileDestroyArquivo($arquivo->link); $arquivo->delete(); DB::commit(); return redirect()->route('admin.conselhosMunicipais.arquivos.index', $conselho->id) ->with('success', __('Arquivo excluĂdo com sucesso')); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.conselhosMunicipais.arquivos.index', $conselho->id) ->with('error', __('Erro ao excluir arquivo: ') . $e->getMessage()); } } public function status(Conselho $conselho, Arquivo $arquivo, string $status): RedirectResponse { try { DB::beginTransaction(); $arquivo->status = $status; $arquivo->save(); DB::commit(); return redirect()->route('admin.conselhosMunicipais.arquivos.index', $conselho->id) ->with('success', __('Status do arquivo atualizado com sucesso')); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.conselhosMunicipais.arquivos.index', $conselho->id) ->with('error', __('Erro ao atualizar status do arquivo: ') . $e->getMessage()); } } public function indexacao(Conselho $conselho, Arquivo $arquivo): RedirectResponse { try { DB::beginTransaction(); $arquivo->descricao = ArquivosResource::extractPdfText($arquivo->link); $arquivo->indexado = true; $arquivo->save(); DB::commit(); return redirect()->route('admin.conselhosMunicipais.arquivos.index', $conselho->id) ->with('success', __('Arquivo indexado com sucesso')); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.conselhosMunicipais.arquivos.index', $conselho->id) ->with('error', __('Erro ao indexar arquivo: ') . $e->getMessage()); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings