File manager - Edit - /var/www/html/portal/app/Http/Controllers/TurisAngra/VisiteAngra/ArquivosAtrativosController.php
Back
<?php namespace App\Http\Controllers\TurisAngra\VisiteAngra; use App\Http\Controllers\Controller; use App\Models\TurisAngra\VisiteAngra\Atrativo; use App\Models\Arquivo; use App\Http\Requests\TurisAngra\VisiteAngra\ArquivosAtrativosRequest; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use App\Http\Services\TurisAngra\VisiteAngra\ArquivoAtrativoService; use App\Helpers\FileUploadHelper; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Http\RedirectResponse; use Illuminate\View\View; use Illuminate\Support\Facades\DB; class ArquivosAtrativosController extends Controller { private $permissao = "GERENCIADOR_VISITE_ANGRA"; public function index(Request $request, Atrativo $atrativo): View|LengthAwarePaginator { $response = $this->checkPermissao($this->permissao, "visualizar"); if ($response instanceof RedirectResponse) { return $response; } $ArquivoAtrativoService = new ArquivoAtrativoService(); $arquivos = $ArquivoAtrativoService->index($request, $atrativo); return view("admin.visiteAngra.atrativos.arquivos.index", compact(['atrativo', 'arquivos'])); } public function create(Atrativo $atrativo): View|RedirectResponse { $response = $this->checkPermissao($this->permissao, "adicionar"); if ($response instanceof RedirectResponse) { return $response; } return view("admin.visiteAngra.atrativos.arquivos.create", compact(['atrativo'])); } public function store(ArquivosAtrativosRequest $request, Atrativo $atrativo): RedirectResponse { $response = $this->checkPermissao($this->permissao, "adicionar"); if ($response instanceof RedirectResponse) { return $response; } $ArquivoAtrativoService = new ArquivoAtrativoService(); if ($request->hasFile('link')) { foreach ($request->file('link') as $file) { if (!$file->isValid()) { continue; } $link = $this->handleFileUploadLoop($file, 'link', 'arquivos'); if ($link === null) { continue; // Arquivo rejeitado pela validação do FileUploadHelper } $array_arquivo = [ "user_id" => Auth::user()->id, "owner_id" => $atrativo->id, "nome" => FileUploadHelper::sanitizeOriginalFileName($file), "tipo" => "Imagem", "link" => $link, ]; if (($arquivo = $ArquivoAtrativoService->store($array_arquivo)) instanceof RedirectResponse) { return $arquivo; } } $page = $request->input('page', 1); return redirect("/admin/visite-angra/atrativos/{$atrativo->id}/arquivos?page={$page}") ->with("success", __("* Imagens criadas com sucesso!")); } else { return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar criar imagem.'); } } public function destroy(Request $request, Atrativo $atrativo, Arquivo $arquivo): RedirectResponse { $response = $this->checkPermissao($this->permissao, "excluir"); if ($response instanceof RedirectResponse) { return $response; } $this->handleFileDestroyArquivo($arquivo->link); $ArquivoAtrativoService = new ArquivoAtrativoService(); return $ArquivoAtrativoService->destroy($request, $atrativo, $arquivo); } public function removeAll(Request $request, Atrativo $atrativo): RedirectResponse { $response = $this->checkPermissao($this->permissao, "excluir"); if ($response instanceof RedirectResponse) { return $response; } $ArquivoAtrativoService = new ArquivoAtrativoService(); foreach ($atrativo->arquivos()->get() as $arquivo) { $this->handleFileDestroyArquivo($arquivo->link); if ($response = $ArquivoAtrativoService->remove($arquivo) instanceof RedirectResponse) { return $response; } } $page = $request->input('page', 1); return redirect("/admin/visite-angra/atrativos/{$atrativo->id}/arquivos?page={$page}") ->with("success", __("* Imagens removidas com sucesso!")); } public function status(Request $request, Atrativo $atrativo, Arquivo $arquivo): RedirectResponse { $response = $this->checkPermissao($this->permissao, "editar"); if ($response instanceof RedirectResponse) { return $response; } $ArquivoAtrativoService = new ArquivoAtrativoService(); return $ArquivoAtrativoService->status($request, $atrativo, $arquivo); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings