File manager - Edit - /var/www/html/portalHomolog/app/Http/Controllers/Observatorio/IndicadorController.php
Back
<?php namespace App\Http\Controllers\Observatorio; use App\Enums\StatusPermission; use App\Http\Controllers\Controller; use App\Http\Requests\Observatorio\IndicadorRequest; use App\Http\Services\Observatorio\IndicadorService; use App\Models\Observatorio\Indicador; use App\Models\Observatorio\Tema; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; use Illuminate\View\View; class IndicadorController extends Controller { private const FILTER_KEYS = ['q', 'tema_id', 'observatorio', 'page']; public function __construct(private readonly IndicadorService $service) { $this->middleware('observatorio'); } public function index(Request $request): View|RedirectResponse { if ($response = $this->checkPermissao(StatusPermission::GERENCIADOR_DO_OBSERVATORIO, 'visualizar')) { return $response; } return view('admin.observatorio.indicadores.index', [ 'registros' => $this->service->listWithFilters($request), 'temas' => Tema::orderBy('nome')->get(['id', 'nome']), ]); } public function create(): View|RedirectResponse { if ($response = $this->checkPermissao(StatusPermission::GERENCIADOR_DO_OBSERVATORIO, 'adicionar')) { return $response; } return view('admin.observatorio.indicadores.create', $this->service->formOptions()); } public function store(IndicadorRequest $request): RedirectResponse { if ($response = $this->checkPermissao(StatusPermission::GERENCIADOR_DO_OBSERVATORIO, 'adicionar')) { return $response; } try { $this->service->create($request->validated()); return redirect() ->route('admin.observatorio.indicadores.index', $request->only(self::FILTER_KEYS)) ->with('success', __('* Indicador criado com sucesso!')); } catch (\Throwable $e) { Log::error('Erro ao criar indicador do Observatório.', [ 'user_id' => auth()->id(), 'exception' => $e::class, ]); return redirect()->back()->withInput()->with('error', __('Erro ao criar o indicador. Tente novamente.')); } } public function edit(Indicador $indicador): View|RedirectResponse { if ($response = $this->checkPermissao(StatusPermission::GERENCIADOR_DO_OBSERVATORIO, 'editar')) { return $response; } return view('admin.observatorio.indicadores.edit', array_merge( $this->service->formOptions(), ['registro' => $indicador] )); } public function update(IndicadorRequest $request, Indicador $indicador): RedirectResponse { if ($response = $this->checkPermissao(StatusPermission::GERENCIADOR_DO_OBSERVATORIO, 'editar')) { return $response; } try { $this->service->update($indicador, $request->validated()); return redirect() ->route('admin.observatorio.indicadores.index', $request->only(self::FILTER_KEYS)) ->with('success', __('* Indicador atualizado com sucesso!')); } catch (\Throwable $e) { Log::error('Erro ao atualizar indicador do Observatório.', [ 'user_id' => auth()->id(), 'indicador_id' => $indicador->id, 'exception' => $e::class, ]); return redirect()->back()->withInput()->with('error', __('Erro ao atualizar o indicador. Tente novamente.')); } } public function destroy(Request $request, Indicador $indicador): RedirectResponse { if ($response = $this->checkPermissao(StatusPermission::GERENCIADOR_DO_OBSERVATORIO, 'excluir')) { return $response; } try { $this->service->delete($indicador); return redirect() ->route('admin.observatorio.indicadores.index', $request->only(self::FILTER_KEYS)) ->with('success', __('* Indicador excluído com sucesso!')); } catch (\Throwable $e) { Log::error('Erro ao excluir indicador do Observatório.', [ 'user_id' => auth()->id(), 'indicador_id' => $indicador->id, 'exception' => $e::class, ]); return redirect()->back()->with('error', __('Erro ao excluir o indicador. Tente novamente.')); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings