File manager - Edit - /var/www/html/gop/api/app/Http/Controllers/FornecimentoController.php
Back
<?php namespace App\Http\Controllers; use App\Http\Requests\Index\IndexFornecimentoRequest; use App\Http\Requests\Store\StoreFornecimentoRequest; use App\Http\Requests\Store\StorePrivateFieldRequest; use App\Http\Requests\Update\UpdateFornecimentoRequest; use App\Http\Services\DocumentoService; use App\Http\Services\PrivateFieldService; use App\Models\Fornecimento; use App\Models\Obra; use Illuminate\Http\JsonResponse; /** * @OA\Tag( * name="Fornecimento", * description="Gerenciamento de Fornecimentos" * ) */ class FornecimentoController extends Controller { public function __construct() { $this->authorizeResource(Fornecimento::class); } /** * @OA\Get( * path="/api/fornecimento", * summary="Lista os fornecimentos", * operationId="IndexFornecimento", * tags={"Fornecimento"}, * security={{"bearerAuth":{}}}, * @OA\Response(response=200, description="Lista retornada com sucesso") * ) */ public function index(IndexFornecimentoRequest $request) { $limit = $request->limit ?? 15; $fornecimentos = Obra::with(['fornecimentos']) ->where('is_fornecimento', true) ->when(! empty($request->processo), function ($q) use ($request) { $q->whereHas('fornecimentos', function ($q) use ($request) { $q->where('processo', 'LIKE', '%'.$request->processo.'%'); }); }) ->when(! empty($request->id), function ($q) use ($request) { $q->where('id', $request->id); }) ->when(! empty($request->empenho_id), function ($q) use ($request) { $q->whereHas('fornecimentos', function ($q) use ($request) { $q->where('empenho_id', $request->empenho_id); }); }) ->latest('id') ->paginate($limit); return response()->json($fornecimentos); } /** * @OA\Get( * path="/api/fornecimento/{fornecimento}/gera-pdf", * summary="Gera PDF da ordem de fornecimento", * operationId="GeraPdfFornecimento", * tags={"Fornecimento"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="fornecimento", in="path", required=true, @OA\Schema(type="integer")), * @OA\Response(response=200, description="PDF gerado com sucesso") * ) */ public function geraPdf(Fornecimento $fornecimento) { $this->authorize('viewAny', Fornecimento::class); $fornecimento->load('endereco'); $documentoService = new DocumentoService(); $path = $documentoService->pdfOrdemFornecimento($fornecimento); return response()->json($path); } /** * @OA\Post( * path="/api/fornecimento", * summary="Cria novo fornecimento", * operationId="StoreFornecimento", * tags={"Fornecimento"}, * security={{"bearerAuth":{}}}, * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=201, description="Fornecimento criado com sucesso") * ) */ public function store(StoreFornecimentoRequest $request) { return response()->json(Fornecimento::create($request->validated()), JsonResponse::HTTP_CREATED); } /** * @OA\Get( * path="/api/fornecimento/{fornecimento}", * summary="Exibe um fornecimento", * operationId="ShowFornecimento", * tags={"Fornecimento"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="fornecimento", in="path", required=true, @OA\Schema(type="integer")), * @OA\Response(response=200, description="Fornecimento retornado com sucesso") * ) */ public function show(Fornecimento $fornecimento) { return response()->json($fornecimento->load([ 'empenho', 'obra', 'empresa', 'endereco', 'materiais', 'equipamentos', 'maoDeObra', ])); } /** * @OA\Put( * path="/api/fornecimento/{fornecimento}", * summary="Atualiza fornecimento", * operationId="UpdateFornecimento", * tags={"Fornecimento"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="fornecimento", in="path", required=true, @OA\Schema(type="integer")), * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=200, description="Fornecimento atualizado com sucesso") * ) */ public function update(UpdateFornecimentoRequest $request, Fornecimento $fornecimento) { $fornecimento->update($request->validated()); return response()->json($fornecimento, JsonResponse::HTTP_OK); } /** * @OA\Delete( * path="/api/fornecimento/{fornecimento}", * summary="Remove fornecimento", * operationId="DeleteFornecimento", * tags={"Fornecimento"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="fornecimento", in="path", required=true, @OA\Schema(type="integer")), * @OA\Response(response=204, description="Fornecimento removido com sucesso") * ) */ public function destroy(Fornecimento $fornecimento) { $fornecimento->delete(); return response()->json([], JsonResponse::HTTP_NO_CONTENT); } /** * @OA\Get( * path="/api/fornecimento/{fornecimento}/campos-ocultos", * summary="Exibe campos privados", * operationId="ShowFornecimentoPrivateFields", * tags={"Fornecimento"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="fornecimento", in="path", required=true, @OA\Schema(type="integer")), * @OA\Response(response=200, description="Campos privados exibidos com sucesso") * ) */ public function showPrivateFields(Fornecimento $fornecimento) { $privateFieldService = new PrivateFieldService(); return $privateFieldService->show($fornecimento); } /** * @OA\Post( * path="/api/fornecimento/{fornecimento}/campos-ocultos", * summary="Altera campos privados", * operationId="SetFornecimentoPrivateFields", * tags={"Fornecimento"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="fornecimento", in="path", required=true, @OA\Schema(type="integer")), * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=200, description="Campos privados alterados com sucesso") * ) */ public function setPrivateFields(StorePrivateFieldRequest $request, Fornecimento $fornecimento) { $privateFieldService = new PrivateFieldService(); return $privateFieldService->setPrivateFields($request, $fornecimento); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings