File manager - Edit - /var/www/html/gop/api/app/Http/Controllers/MaoDeObraController.php
Back
<?php namespace App\Http\Controllers; use App\Http\Requests\Index\IndexMaoDeObraRequest; use App\Http\Requests\Store\StoreMaoDeObraRequest; use App\Http\Requests\Store\StorePrivateFieldRequest; use App\Http\Requests\Update\UpdateMaoDeObraRequest; use App\Http\Services\PrivateFieldService; use App\Models\MaoDeObra; use Illuminate\Http\JsonResponse; use Symfony\Component\HttpFoundation\Response; /** * @OA\Tag( * name="MaoDeObra", * description="Gerenciamento de Mão de Obra" * ) */ class MaoDeObraController extends Controller { public function __construct() { $this->authorizeResource(MaoDeObra::class); } /** * @OA\Get( * path="/api/mao-de-obra", * summary="Lista de mão de obra", * operationId="IndexMaoDeObra", * tags={"MaoDeObra"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="fornecimento_id", in="query", @OA\Schema(type="integer"), description="Filtra por fornecimento"), * @OA\Parameter(name="limit", in="query", @OA\Schema(type="integer", default=15)), * @OA\Response(response=200, description="Lista retornada com sucesso") * ) */ public function index(IndexMaoDeObraRequest $request) { $limit = $request->limit ?? 15; $maoDeObra = MaoDeObra::with(['fornecimento']) ->when(! empty($request->fornecimento_id), function ($q) use ($request) { $q->where('fornecimento_id', $request->fornecimento_id); }) ->latest('id') ->paginate($limit); return response()->json($maoDeObra); } /** * @OA\Post( * path="/api/mao-de-obra", * summary="Cria nova mão de obra", * operationId="StoreMaoDeObra", * tags={"MaoDeObra"}, * security={{"bearerAuth":{}}}, * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=201, description="Mão de obra criada com sucesso") * ) */ public function store(StoreMaoDeObraRequest $request) { return response()->json(MaoDeObra::create($request->validated()), Response::HTTP_CREATED); } /** * @OA\Get( * path="/api/mao-de-obra/{maoDeObra}", * summary="Exibe uma mão de obra", * operationId="ShowMaoDeObra", * tags={"MaoDeObra"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="maoDeObra", in="path", required=true, @OA\Schema(type="integer", format="int64")), * @OA\Response(response=200, description="Mão de obra retornada com sucesso") * ) */ public function show(MaoDeObra $maoDeObra) { return response()->json($maoDeObra->load(['fornecimento'])); } /** * @OA\Put( * path="/api/mao-de-obra/{maoDeObra}", * summary="Atualiza uma mão de obra", * operationId="UpdateMaoDeObra", * tags={"MaoDeObra"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="maoDeObra", in="path", required=true, @OA\Schema(type="integer", format="int64")), * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=200, description="Mão de obra atualizada com sucesso") * ) */ public function update(UpdateMaoDeObraRequest $request, MaoDeObra $maoDeObra) { $maoDeObra->update($request->validated()); return response()->json($maoDeObra, Response::HTTP_OK); } /** * @OA\Delete( * path="/api/mao-de-obra/{maoDeObra}", * summary="Remove uma mão de obra", * operationId="DeleteMaoDeObra", * tags={"MaoDeObra"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="maoDeObra", in="path", required=true, @OA\Schema(type="integer", format="int64")), * @OA\Response(response=204, description="Mão de obra removida com sucesso") * ) */ public function destroy(MaoDeObra $maoDeObra) { $maoDeObra->delete(); return response()->json([], Response::HTTP_NO_CONTENT); } /** * @OA\Get( * path="/api/mao-de-obra/{maoDeObra}/campos-ocultos", * summary="Campos privados da mão de obra", * operationId="ShowMaoDeObraPrivateFields", * tags={"MaoDeObra"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="maoDeObra", in="path", required=true, @OA\Schema(type="integer", format="int64")), * @OA\Response(response=200, description="Campos privados retornados com sucesso") * ) */ public function showPrivateFields(MaoDeObra $maoDeObra) { $privateFieldService = new PrivateFieldService(); return $privateFieldService->show($maoDeObra); } /** * @OA\Post( * path="/api/mao-de-obra/{maoDeObra}/campos-ocultos", * summary="Atualiza campos privados da mão de obra", * operationId="SetMaoDeObraPrivateFields", * tags={"MaoDeObra"}, * security={{"bearerAuth":{}}}, * @OA\Parameter(name="maoDeObra", 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, MaoDeObra $maoDeObra) { $privateFieldService = new PrivateFieldService(); return $privateFieldService->setPrivateFields($request, $maoDeObra); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings