File manager - Edit - /var/www/html/gop/api/app/Http/Controllers/FaseServicoController.php
Back
<?php namespace App\Http\Controllers; use App\Http\Requests\Index\IndexFaseServicoRequest; use App\Http\Requests\Store\StoreFaseServicoRequest; use App\Http\Requests\Store\StoreImageRequest; use App\Http\Requests\Store\StorePrivateFieldRequest; use App\Http\Requests\Update\UpdateFaseServicoRequest; use App\Http\Services\ImageService; use App\Http\Services\PrivateFieldService; use App\Models\FaseServico; use Illuminate\Http\JsonResponse; use Symfony\Component\HttpFoundation\Response; /** * @OA\Tag( * name="FaseServico", * description="Gerenciamento de FaseServicos" * ) */ class FaseServicoController extends Controller { public function __construct() { $this->authorizeResource(FaseServico::class); } /** * @OA\Get( * path="/api/faseservicos", * summary="Lista FaseServicos", * operationId="IndexFaseServico", * tags={"FaseServico"}, * security={{"bearerAuth":{}}}, * @OA\Response(response=200, description="FaseServicos retornados com sucesso") * ) */ public function index(IndexFaseServicoRequest $request) { $limit = $request->limit ?? 15; $faseServico = FaseServico::with(['fase', 'subitens.medicoes']) ->when(! empty($request->fase_id), function ($q) use ($request) { $q->where('fase_id', $request->fase_id); }) ->when(! empty($request->obra_id), function ($q) use ($request) { $q->whereHas('fase', function ($q) use ($request) { $q->where('obra_id', $request->obra_id); }); }) ->latest('id') ->paginate($limit); return response()->json($faseServico); } /** * @OA\Post( * path="/api/faseservicos", * summary="Cria FaseServico", * operationId="StoreFaseServico", * tags={"FaseServico"}, * security={{"bearerAuth":{}}}, * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=201, description="FaseServico criado com sucesso") * ) */ public function store(StoreFaseServicoRequest $request) { return response()->json(FaseServico::create($request->validated()), JsonResponse::HTTP_CREATED); } /** * @OA\Get( * path="/api/faseservicos/{faseServico}", * summary="Mostra FaseServico", * operationId="ShowFaseServico", * tags={"FaseServico"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="faseServico", * in="path", * required=true, * @OA\Schema(type="string") * ), * @OA\Response(response=200, description="FaseServico retornado com sucesso") * ) */ public function show(FaseServico $faseServico) { return response()->json($faseServico->load(['fase', 'subitens.medicoes'])); } /** * @OA\Put( * path="/api/faseservicos/{faseServico}", * summary="Atualiza FaseServico", * operationId="UpdateFaseServico", * tags={"FaseServico"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="faseServico", * in="path", * required=true, * @OA\Schema(type="string") * ), * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=200, description="FaseServico atualizado com sucesso") * ) */ public function update(UpdateFaseServicoRequest $request, FaseServico $faseServico) { return response()->json($faseServico->update($request->validated())); } /** * @OA\Delete( * path="/api/faseservicos/{faseServico}", * summary="Remove FaseServico", * operationId="DeleteFaseServico", * tags={"FaseServico"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="faseServico", * in="path", * required=true, * @OA\Schema(type="string") * ), * @OA\Response(response=204, description="FaseServico removido com sucesso") * ) */ public function destroy(FaseServico $faseServico) { $faseServico->delete(); return response()->json([], JsonResponse::HTTP_NO_CONTENT); } /** * @OA\Get( * path="/api/faseservicos/{faseServico}/campos-ocultos", * summary="Mostra campos privados do FaseServico", * operationId="ShowFaseServicoPrivateFields", * tags={"FaseServico"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="faseServico", * in="path", * required=true, * @OA\Schema(type="string") * ), * @OA\Response(response=200, description="Campos privados retornados com sucesso") * ) */ public function showPrivateFields(FaseServico $servico) { $privateFieldService = new PrivateFieldService(); return $privateFieldService->show($servico); } /** * @OA\Put( * path="/api/faseservicos/{faseServico}/campos-ocultos", * summary="Modifica campos privados do FaseServico", * operationId="SetFaseServicoPrivateFields", * tags={"FaseServico"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="faseServico", * in="path", * required=true, * @OA\Schema(type="string") * ), * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=200, description="Campos privados modificados com sucesso") * ) */ public function setPrivateFields(StorePrivateFieldRequest $request, FaseServico $servico) { $privateFieldService = new PrivateFieldService(); return $privateFieldService->setPrivateFields($request, $servico); } /** * @OA\Post( * path="/api/faseservicos/{faseServico}/images", * summary="Adiciona imagem ao FaseServico", * operationId="StoreFaseServicoImage", * tags={"FaseServico"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="faseServico", * in="path", * required=true, * @OA\Schema(type="string") * ), * @OA\RequestBody( * required=true, * @OA\MediaType( * mediaType="multipart/form-data", * @OA\Schema( * @OA\Property(property="file", type="string", format="binary") * ) * ) * ), * @OA\Response(response=201, description="Imagem adicionada com sucesso") * ) */ public function storeImage(StoreImageRequest $request, FaseServico $servico) { $imageService = new ImageService(); $image = $imageService->storeImage($request, $servico); return response()->json($image, Response::HTTP_CREATED); } /** * @OA\Get( * path="/api/faseservicos/{faseServico}/images", * summary="Mostra imagens do FaseServico", * operationId="ShowFaseServicoImages", * tags={"FaseServico"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="faseServico", * in="path", * required=true, * @OA\Schema(type="string") * ), * @OA\Response(response=200, description="Imagens retornadas com sucesso") * ) */ public function showModelImages(FaseServico $servico) { $imageService = new ImageService(); $images = $imageService->showModelImages($servico); return response()->json($images, Response::HTTP_OK); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings