From 8e68ba91325c3645b3c4ca5787f4fe92a018614d Mon Sep 17 00:00:00 2001 From: Christian Dacid Sullca Puma Date: Wed, 16 Nov 2022 15:59:38 -0500 Subject: [PATCH] arreglo general de responses --- .../Controllers/Api/NarrativasController.php | 59 +++++++++++++------ routes/api.php | 10 ++-- 2 files changed, 45 insertions(+), 24 deletions(-) diff --git a/app/Http/Controllers/Api/NarrativasController.php b/app/Http/Controllers/Api/NarrativasController.php index 7b4d834..fc07ced 100644 --- a/app/Http/Controllers/Api/NarrativasController.php +++ b/app/Http/Controllers/Api/NarrativasController.php @@ -6,23 +6,37 @@ use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Models\Estandar; use App\Models\Narrativa; +use Illuminate\Validation\Rule; +use Illuminate\Support\Facades\Validator; -//edita solo contenido -//eliminar -// Cabecera endopoint unico class NarrativasController extends Controller { public function create(Request $request) { - $request->validate([ - "id_estandar" => "required|integer", - "semestre" => "required", - "contenido" => "required", - ]); - if (Estandar::where("id", $request->id_estandar)->exists()) { + + $id_user = auth()->user(); + if ($id_user->isAdmin()) { + $validator = Validator::make($request->all(), [ + "id_estandar" => "required|integer|exists:estandars,id", + "contenido" => "required", + "semestre" => [ + 'required', + Rule::unique('narrativas', 'semestre')->where(function ($query) use ($request) { + return $query->where('id_estandar', $request->id_estandar); + }), + ], + ]); + + if ($validator->fails()) { + return response([ + "status" => "error", + "message" => $validator->errors() + ], 400); + } + $narrativa = new Narrativa(); $narrativa->id_estandar = $request->id_estandar; $narrativa->semestre = $request->semestre; @@ -32,18 +46,20 @@ class NarrativasController extends Controller "status" => 1, "msg" => "!Narrativa creada exitosamente", "data" => $narrativa, - ]); + ], 200); } else { return response([ "status" => 0, - "msg" => "!No se encontro el estandar", - ], 404); + "msg" => "No tiene permisos para crear una narrativa", + "data" => null, + ], 200); } } + public function update(Request $request) { $request->validate([ - "id" => "required", + "id" => "required|exists:narrativas,id", "contenido" => "required", ]); if (Narrativa::where("id", $request->id)->exists()) { @@ -59,6 +75,7 @@ class NarrativasController extends Controller ], 404); } } + public function delete($id) { if (Narrativa::where("id", $id)->exists()) { @@ -75,6 +92,7 @@ class NarrativasController extends Controller ], 404); } } + public function show($id) { if (Narrativa::where("id", $id)->exists()) { @@ -91,6 +109,7 @@ class NarrativasController extends Controller ], 404); } } + public function listNarrativas() { $narrativas = Narrativa::all(); @@ -100,15 +119,17 @@ class NarrativasController extends Controller "data" => $narrativas, ]); } - public function ultimaNarrativa(Request $request){ - $request->validate([ + + public function ultimaNarrativa(Request $request) + { + $request->validate([ "id_estandar" => 'required|exists:App\Models\Estandar,id', ]); - $narrativa = Narrativa::where("id_estandar", $request->id_estandar)->latest()->first(); - return response([ + $narrativa = Narrativa::where("id_estandar", $request->id_estandar)->latest()->first(); + return response([ "status" => 1, - "message" => "!Ultima Narrativa del estandar ".$request->id_estandar, + "message" => "!Ultima Narrativa del estandar " . $request->id_estandar, "data" => $narrativa, ]); - } + } } diff --git a/routes/api.php b/routes/api.php index a19fcd9..b92dbd5 100644 --- a/routes/api.php +++ b/routes/api.php @@ -37,14 +37,14 @@ Route::get('estandares', [EstandarController::class, 'listEstandarValores']); Route::middleware("auth:sanctum")->group(function () { //Rutas de Auth - Route::get('logout', [LoginController::class, 'logout']); + Route::get('logout', [LoginController::class, 'logout']); - //Rutas de Gestion de usarios + //Rutas de Gestion de usarios Route::get('user-profile', [UserController::class, 'userProfile']); Route::put('update', [UserController::class, 'updateRoleEstado']); Route::post('register', [UserController::class, 'register']); - Route::get('user', [UserController::class, 'listUser']); - Route::get('enabled_users', [UserController::class, 'listUserHabilitados']); + Route::get('user', [UserController::class, 'listUser']); + Route::get('enabled_users', [UserController::class, 'listUserHabilitados']); //rutas estandar @@ -120,7 +120,7 @@ Route::middleware("auth:sanctum")->group(function () { Route::put('narrativa', [NarrativasController::class, 'update']); Route::delete('narrativa/{id}', [NarrativasController::class, 'delete'])->where('id', '[0-9]+'); Route::get('narrativa', [NarrativasController::class, 'listNarrativas']); - Route::get('narrativa/ultima/{id}', [NarrativasController::class, 'ultimaNarrativa']->where('id', '[0-9]+')); + Route::get('narrativa/ultima/{id}', [NarrativasController::class, 'ultimaNarrativa'])->where('id', '[0-9]+'); }); /*Route::middleware('auth:sanctum')->get('/user', function (Request $request) {