arreglo general de responses

master
Christian Dacid Sullca Puma 2022-11-16 15:59:38 -05:00
parent 2e66fc4309
commit 8e68ba9132
2 changed files with 45 additions and 24 deletions

View File

@ -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",
$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 (Estandar::where("id", $request->id_estandar)->exists()) {
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,7 +119,9 @@ class NarrativasController extends Controller
"data" => $narrativas,
]);
}
public function ultimaNarrativa(Request $request){
public function ultimaNarrativa(Request $request)
{
$request->validate([
"id_estandar" => 'required|exists:App\Models\Estandar,id',
]);

View File

@ -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) {