File manager - Edit - /var/www/html/gop/api/app/Http/Controllers/SuprimidoController.php
Back
<?php namespace App\Http\Controllers; use App\Http\Requests\Index\IndexSuprimidoRequest; use App\Http\Requests\Store\StorePrivateFieldRequest; use App\Http\Requests\Store\StoreSuprimidoRequest; use App\Http\Requests\Update\UpdateSuprimidoRequest; use App\Http\Services\PrivateFieldService; use App\Models\Suprimido; use Symfony\Component\HttpFoundation\JsonResponse; /** * @OA\Tag( * name="Suprimido", * description="Gerenciamento de Suprimidos" * ) */ class SuprimidoController extends Controller { public function __construct() { $this->authorizeResource(Suprimido::class); } /** * @OA\Get( * path="/api/suprimido", * summary="Lista os suprimidos", * operationId="ListSuprimido", * tags={"Suprimido"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="subitem_id", * in="query", * @OA\Schema(type="integer"), * description="Filtra por subitem" * ), * @OA\Parameter( * name="limit", * in="query", * @OA\Schema(type="integer", default=15) * ), * @OA\Response(response=200, description="Suprimidos retornados com sucesso") * ) */ public function index(IndexSuprimidoRequest $request) { $limit = $request->limit ?? 15; $suprimidos = Suprimido::with(['subitem']) ->when(! empty($request->subitem_id), function ($q) use ($request) { $q->where('fase_servico_subitem_id', $request->subitem_id); }) ->latest('id') ->paginate($limit); return response()->json($suprimidos); } /** * @OA\Post( * path="/api/suprimido", * summary="Cria um novo suprimido", * operationId="StoreSuprimido", * tags={"Suprimido"}, * security={{"bearerAuth":{}}}, * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=201, description="Suprimido criado com sucesso") * ) */ public function store(StoreSuprimidoRequest $request) { return response()->json(Suprimido::create($request->validated()), JsonResponse::HTTP_CREATED); } /** * @OA\Get( * path="/api/suprimido/{suprimido}", * summary="Exibe um suprimido", * operationId="ShowSuprimido", * tags={"Suprimido"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="suprimido", * in="path", * required=true, * @OA\Schema(type="integer") * ), * @OA\Response(response=200, description="Suprimido retornado com sucesso") * ) */ public function show(Suprimido $suprimido) { return response()->json($suprimido->load(['subitem'])); } /** * @OA\Put( * path="/api/suprimido/{suprimido}", * summary="Atualiza um suprimido", * operationId="UpdateSuprimido", * tags={"Suprimido"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="suprimido", * in="path", * required=true, * @OA\Schema(type="integer") * ), * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=200, description="Suprimido atualizado com sucesso") * ) */ public function update(UpdateSuprimidoRequest $request, Suprimido $suprimido) { return response()->json($suprimido->update($request->validated())); } /** * @OA\Delete( * path="/api/suprimido/{suprimido}", * summary="Remove um suprimido", * operationId="DeleteSuprimido", * tags={"Suprimido"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="suprimido", * in="path", * required=true, * @OA\Schema(type="integer") * ), * @OA\Response(response=204, description="Suprimido removido com sucesso") * ) */ public function destroy(Suprimido $suprimido) { $suprimido->delete(); return response()->json([], JsonResponse::HTTP_NO_CONTENT); } /** * @OA\Get( * path="/api/suprimido/{suprimido}/campos-ocultos", * summary="Campos privados do suprimido", * operationId="ShowSuprimidoPrivateFields", * tags={"Suprimido"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="suprimido", * in="path", * required=true, * @OA\Schema(type="integer") * ), * @OA\Response(response=200, description="Campos privados retornados com sucesso") * ) */ public function showPrivateFields(Suprimido $suprimido) { $privateFieldService = new PrivateFieldService(); return $privateFieldService->show($suprimido); } /** * @OA\Post( * path="/api/suprimido/{suprimido}/campos-ocultos", * summary="Atualiza campos privados do suprimido", * operationId="SetSuprimidoPrivateFields", * tags={"Suprimido"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="suprimido", * in="path", * required=true, * @OA\Schema(type="integer") * ), * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=200, description="Campos privados atualizados com sucesso") * ) */ public function setPrivateFields(StorePrivateFieldRequest $request, Suprimido $suprimido) { $privateFieldService = new PrivateFieldService(); return $privateFieldService->setPrivateFields($request, $suprimido); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings