File manager - Edit - /var/www/html/gop/api/app/Http/Controllers/FiscalController.php
Back
<?php namespace App\Http\Controllers; use App\Http\Requests\Index\IndexFiscalRequest; use App\Http\Requests\Store\StoreFiscalRequest; use App\Http\Requests\Store\StorePrivateFieldRequest; use App\Http\Requests\Update\UpdateFiscalRequest; use App\Http\Services\PrivateFieldService; use App\Models\Fiscal; use Symfony\Component\HttpFoundation\JsonResponse; /** * @OA\Tag( * name="Fiscal", * description="Gerenciamento de Fiscais" * ) */ class FiscalController extends Controller { public function __construct() { $this->authorizeResource(Fiscal::class); } /** * @OA\Get( * path="/api/fiscal", * summary="Lista de fiscais", * operationId="IndexFiscal", * tags={"Fiscal"}, * security={{"bearerAuth":{}}}, * @OA\Response(response=200, description="Lista retornada com sucesso") * ) */ public function index(IndexFiscalRequest $request) { $limit = $request->limit ?? 15; $fiscal = Fiscal::with(['prestador.empresa']) ->when(! empty($request->prestador_id), function ($q) use ($request) { $q->where('prestador_id', $request->prestador_id); }) ->when(! empty($request->empresa_id), function ($q) use ($request) { $q->whereHas('prestador', function ($q) use ($request) { $q->where('empresa_id', $request->empresa_id); }); }) ->latest('id') ->paginate($limit); return response()->json($fiscal); } /** * @OA\Post( * path="/api/fiscal", * summary="Cria novo fiscal", * operationId="StoreFiscal", * tags={"Fiscal"}, * security={{"bearerAuth":{}}}, * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=201, description="Fiscal criado com sucesso") * ) */ public function store(StoreFiscalRequest $request) { return response()->json(Fiscal::create($request->validated()), JsonResponse::HTTP_CREATED); } /** * @OA\Get( * path="/api/fiscal/{fiscal}", * summary="Exibe fiscal", * operationId="ShowFiscal", * tags={"Fiscal"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="fiscal", in="path", required=true, @OA\Schema(type="string")), * @OA\Response(response=200, description="Fiscal retornado com sucesso") * ) */ public function show(Fiscal $fiscal) { return response()->json($fiscal->load(['prestador.empresa'])); } /** * @OA\Put( * path="/api/fiscal/{fiscal}", * summary="Atualiza fiscal", * operationId="UpdateFiscal", * tags={"Fiscal"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="fiscal", in="path", required=true, @OA\Schema(type="string")), * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=200, description="Fiscal atualizado com sucesso") * ) */ public function update(UpdateFiscalRequest $request, Fiscal $fiscal) { return response()->json($fiscal->update($request->validated())); } /** * @OA\Delete( * path="/api/fiscal/{fiscal}", * summary="Remove fiscal", * operationId="DeleteFiscal", * tags={"Fiscal"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="fiscal", in="path", required=true, @OA\Schema(type="string")), * @OA\Response(response=204, description="Fiscal removido com sucesso") * ) */ public function destroy(Fiscal $fiscal) { $fiscal->delete(); return response()->json([], JsonResponse::HTTP_NO_CONTENT); } /** * @OA\Get( * path="/api/fiscal/{fiscal}/campos-ocultos", * summary="Campos privados do fiscal", * operationId="ShowFiscalPrivateFields", * tags={"Fiscal"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="fiscal", in="path", required=true, @OA\Schema(type="string")), * @OA\Response(response=200, description="Campos privados retornados com sucesso") * ) */ public function showPrivateFields(Fiscal $fiscal) { $privateFieldService = new PrivateFieldService(); return $privateFieldService->show($fiscal); } /** * @OA\Post( * path="/api/fiscal/{fiscal}/campos-ocultos", * summary="Modifica campos privados do fiscal", * operationId="SetFiscalPrivateFields", * tags={"Fiscal"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="fiscal", in="path", required=true, @OA\Schema(type="string")), * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=200, description="Campos privados atualizados com sucesso") * ) */ public function setPrivateFields(StorePrivateFieldRequest $request, Fiscal $fiscal) { $privateFieldService = new PrivateFieldService(); return $privateFieldService->setPrivateFields($request, $fiscal); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings