File manager - Edit - /var/www/html/gop/api/app/Http/Controllers/NotaFiscalController.php
Back
<?php namespace App\Http\Controllers; use App\Http\Requests\Index\IndexNotasFiscaisRequest; use App\Http\Requests\Store\StoreArquivoRequest; use App\Http\Requests\Store\StoreImageRequest; use App\Http\Requests\Store\StoreNotaFiscalRequest; use App\Http\Requests\Store\StorePrivateFieldRequest; use App\Http\Requests\Update\UpdateNotaFiscalRequest; use App\Http\Services\ArquivoService; use App\Http\Services\ImageService; use App\Http\Services\NotaFiscalService; use App\Http\Services\PrivateFieldService; use App\Models\NotaFiscal; use Symfony\Component\HttpFoundation\Response; /** * @OA\Tag( * name="NotaFiscal", * description="Gerenciamento de Notas Fiscais" * ) */ class NotaFiscalController extends Controller { public function __construct() { $this->authorizeResource(NotaFiscal::class); } /** * @OA\Get( * path="/api/nota-fiscal", * summary="Lista de notas fiscais", * operationId="IndexNotaFiscal", * tags={"NotaFiscal"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="numero", in="query", @OA\Schema(type="string"), description="Filtra por número"), * @OA\Parameter(name="data", in="query", @OA\Schema(type="string", format="date"), description="Filtra por data"), * @OA\Parameter(name="obra_id", in="query", @OA\Schema(type="integer"), description="Filtra por obra"), * @OA\Parameter(name="limit", in="query", @OA\Schema(type="integer", default=15)), * @OA\Response(response=200, description="Notas fiscais retornadas com sucesso") * ) */ public function index(IndexNotasFiscaisRequest $request) { $limit = $request->limit ?? 15; $nota = NotaFiscal::with(['empenhos']) ->when(! empty($request->numero), function ($q) use ($request) { $q->where('numero', 'LIKE', $request->numero); }) ->when(! empty($request->data), function ($q) use ($request) { $q->whereDate('data', $request->data); }) ->when(! empty($request->obra_id), function ($q) use ($request) { $q->where('obra_id', $request->obra_id); }) ->latest('id') ->paginate($limit); return response()->json($nota); } /** * @OA\Post( * path="/api/nota-fiscal", * summary="Cria nova nota fiscal", * operationId="StoreNotaFiscal", * tags={"NotaFiscal"}, * security={{"bearerAuth":{}}}, * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=201, description="Nota fiscal criada com sucesso") * ) */ public function store(StoreNotaFiscalRequest $request) { $notaFiscalService = new NotaFiscalService(); return $notaFiscalService->store($request); } /** * @OA\Get( * path="/api/nota-fiscal/{notaFiscal}", * summary="Exibe nota fiscal", * operationId="ShowNotaFiscal", * tags={"NotaFiscal"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="notaFiscal", in="path", required=true, * @OA\Schema(type="integer", format="int64") * ), * @OA\Response(response=200, description="Nota fiscal retornada com sucesso") * ) */ public function show(NotaFiscal $notaFiscal) { return response()->json($notaFiscal->load(['empenhos', 'obra'])); } /** * @OA\Put( * path="/api/nota-fiscal/{notaFiscal}", * summary="Atualiza nota fiscal", * operationId="UpdateNotaFiscal", * tags={"NotaFiscal"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="notaFiscal", in="path", required=true, * @OA\Schema(type="integer", format="int64") * ), * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=200, description="Nota fiscal atualizada com sucesso") * ) */ public function update(UpdateNotaFiscalRequest $request, NotaFiscal $notaFiscal) { $notaFiscal->update($request->validated()); return response()->json($notaFiscal->load(['empenhos']), Response::HTTP_OK); } /** * @OA\Delete( * path="/api/nota-fiscal/{notaFiscal}", * summary="Remove nota fiscal", * operationId="DeleteNotaFiscal", * tags={"NotaFiscal"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="notaFiscal", in="path", required=true, * @OA\Schema(type="integer", format="int64") * ), * @OA\Response(response=204, description="Nota fiscal removida com sucesso") * ) */ public function destroy(NotaFiscal $notaFiscal) { $notaFiscal->delete(); return response()->json([], Response::HTTP_NO_CONTENT); } /** * @OA\Get( * path="/api/nota-fiscal/{notaFiscal}/campos-ocultos", * summary="Campos privados da nota fiscal", * operationId="ShowNotaFiscalPrivateFields", * tags={"NotaFiscal"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="notaFiscal", in="path", required=true, * @OA\Schema(type="integer", format="int64") * ), * @OA\Response(response=200, description="Campos privados retornados com sucesso") * ) */ public function showPrivateFields(NotaFiscal $notaFiscal) { $privateFieldService = new PrivateFieldService(); return $privateFieldService->show($notaFiscal); } /** * @OA\Post( * path="/api/nota-fiscal/{notaFiscal}/campos-ocultos", * summary="Atualiza campos privados da nota fiscal", * operationId="SetNotaFiscalPrivateFields", * tags={"NotaFiscal"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="notaFiscal", in="path", required=true, * @OA\Schema(type="integer", format="int64") * ), * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=200, description="Campos privados atualizados com sucesso") * ) */ public function setPrivateFields(StorePrivateFieldRequest $request, NotaFiscal $notaFiscal) { $privateFieldService = new PrivateFieldService(); return $privateFieldService->setPrivateFields($request, $notaFiscal); } /** * @OA\Post( * path="/api/nota-fiscal/{notaFiscal}/images", * summary="Adiciona imagem à nota fiscal", * operationId="StoreNotaFiscalImage", * tags={"NotaFiscal"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="notaFiscal", in="path", required=true, * @OA\Schema(type="integer", format="int64") * ), * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=201, description="Imagem adicionada com sucesso") * ) */ public function storeImage(StoreImageRequest $request, NotaFiscal $notaFiscal) { $imageService = new ImageService(); $image = $imageService->storeImage($request, $notaFiscal); return response()->json($image, Response::HTTP_CREATED); } /** * @OA\Get( * path="/api/nota-fiscal/{notaFiscal}/images", * summary="Lista imagens da nota fiscal", * operationId="ShowNotaFiscalImages", * tags={"NotaFiscal"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="notaFiscal", in="path", required=true, * @OA\Schema(type="integer", format="int64") * ), * @OA\Response(response=200, description="Imagens retornadas com sucesso") * ) */ public function showModelImages(NotaFiscal $notaFiscal) { $imageService = new ImageService(); $images = $imageService->showModelImages($notaFiscal); return response()->json($images, Response::HTTP_OK); } /** * @OA\Post( * path="/api/nota-fiscal/{notaFiscal}/files", * summary="Adiciona arquivo à nota fiscal", * operationId="StoreNotaFiscalFile", * tags={"NotaFiscal"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="notaFiscal", in="path", required=true, * @OA\Schema(type="integer", format="int64") * ), * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=201, description="Arquivo adicionado com sucesso") * ) */ public function storeFile(StoreArquivoRequest $request, NotaFiscal $notaFiscal) { $arquivoService = new ArquivoService(); $arquivo = $arquivoService->storeFile($request, $notaFiscal); return response()->json($arquivo, Response::HTTP_CREATED); } /** * @OA\Get( * path="/api/nota-fiscal/{notaFiscal}/files", * summary="Lista arquivos da nota fiscal", * operationId="ShowNotaFiscalFiles", * tags={"NotaFiscal"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="notaFiscal", in="path", required=true, * @OA\Schema(type="integer", format="int64") * ), * @OA\Response(response=200, description="Arquivos retornados com sucesso") * ) */ public function showModelFiles(NotaFiscal $notaFiscal) { $arquivoService = new ArquivoService(); $arquivos = $arquivoService->showModelFiles($notaFiscal); return response()->json($arquivos, Response::HTTP_OK); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings