File manager - Edit - /var/www/html/gop/api/app/Http/Controllers/EquipamentoController.php
Back
<?php namespace App\Http\Controllers; use App\Http\Requests\Index\IndexEquipamentoRequest; use App\Http\Requests\Store\StoreEquipamentoRequest; use App\Http\Requests\Store\StorePrivateFieldRequest; use App\Http\Requests\Update\UpdateEquipamentoRequest; use App\Http\Services\PrivateFieldService; use App\Models\Equipamento; use Illuminate\Http\JsonResponse; use Symfony\Component\HttpFoundation\Response; /** * @OA\Tag( * name="Equipamento", * description="Gerenciamento de Equipamentos" * ) */ class EquipamentoController extends Controller { public function __construct() { $this->authorizeResource(Equipamento::class); } /** * Retorna a lista paginada do modelo. * * @return JsonResponse */ /** * @OA\Get( * path="/api/equipamentos", * summary="Lista Equipamentos", * operationId="IndexEquipamento", * tags={"Equipamento"}, * security={{"bearerAuth":{}}}, * @OA\Response(response=200, description="Equipamentos retornados com sucesso") * ) */ public function index(IndexEquipamentoRequest $request) { $limit = $request->limit ?? 15; $equipamentos = Equipamento::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($equipamentos); } /** * Salva um novo modelo. * * @return JsonResponse */ /** * @OA\Post( * path="/api/equipamentos", * summary="Cria Equipamento", * operationId="StoreEquipamento", * tags={"Equipamento"}, * security={{"bearerAuth":{}}}, * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=201, description="Equipamento criado com sucesso") * ) */ public function store(StoreEquipamentoRequest $request) { return response()->json(Equipamento::create($request->validated()), Response::HTTP_CREATED); } /** * Mostra o modelo com base em seu id. * * @return JsonResponse */ /** * @OA\Get( * path="/api/equipamentos/{equipamento}", * summary="Mostra Equipamento", * operationId="ShowEquipamento", * tags={"Equipamento"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="equipamento", in="path", required=true, @OA\Schema(type="string") * ), * @OA\Response(response=200, description="Equipamento retornado com sucesso") * ) */ public function show(Equipamento $equipamento) { return response()->json($equipamento->load(['fornecimento'])); } /** * Atualiza o modelo com base em seu id. * * @return JsonResponse */ /** * @OA\Put( * path="/api/equipamentos/{equipamento}", * summary="Atualiza Equipamento", * operationId="UpdateEquipamento", * tags={"Equipamento"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="equipamento", in="path", required=true, @OA\Schema(type="string") * ), * @OA\RequestBody(required=true, @OA\JsonContent()), * @OA\Response(response=200, description="Equipamento atualizado com sucesso") * ) */ public function update(UpdateEquipamentoRequest $request, Equipamento $equipamento) { $equipamento->update($request->validated()); return response()->json($equipamento, Response::HTTP_OK); } /** * Remove o modelo com base no seu id. * * @return JsonResponse */ /** * @OA\Delete( * path="/api/equipamentos/{equipamento}", * summary="Remove Equipamento", * operationId="DeleteEquipamento", * tags={"Equipamento"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="equipamento", in="path", required=true, @OA\Schema(type="string") * ), * @OA\Response(response=204, description="Equipamento removido com sucesso") * ) */ public function destroy(Equipamento $equipamento) { $equipamento->delete(); return response()->json([], Response::HTTP_NO_CONTENT); } /** * Mostra os campos privados do modelo. * * @return JsonResponse */ /** * @OA\Get( * path="/api/equipamentos/{equipamento}/campos-ocultos", * summary="Mostra campos privados do Equipamento", * operationId="ShowEquipamentoPrivateFields", * tags={"Equipamento"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="equipamento", in="path", required=true, @OA\Schema(type="string") * ), * @OA\Response(response=200, description="Campos privados retornados com sucesso") * ) */ public function showPrivateFields(Equipamento $equipamento) { $privateFieldService = new PrivateFieldService(); return $privateFieldService->show($equipamento); } /** * Modifica os campos privados do modelo. * * @return JsonResponse */ /** * @OA\Put( * path="/api/equipamentos/{equipamento}/campos-ocultos", * summary="Modifica campos privados do Equipamento", * operationId="SetEquipamentoPrivateFields", * tags={"Equipamento"}, * security={{"bearerAuth":{}}}, * @OA\Parameter( * name="equipamento", 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, Equipamento $equipamento) { $privateFieldService = new PrivateFieldService(); return $privateFieldService->setPrivateFields($request, $equipamento); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings