agregacion de la tabla actas, controllers, rutas, modelo y migracion
This commit is contained in:
parent
df30926bdb
commit
c6687c3971
150
app/Http/Controllers/Api/ActaController.php
Normal file
150
app/Http/Controllers/Api/ActaController.php
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Api;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\Acta;
|
||||||
|
use Dotenv\Validator;
|
||||||
|
|
||||||
|
class ActaController extends Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function create(Request $request)
|
||||||
|
{
|
||||||
|
$request = Validator::make($request->all(), [
|
||||||
|
'titulo' => 'required',
|
||||||
|
'fecha' => 'required',
|
||||||
|
'id_estandar' => 'required|exists:estandars,id',
|
||||||
|
'file' => 'required',
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($request->fails()) {
|
||||||
|
return response()->json([
|
||||||
|
'success' => false,
|
||||||
|
'message' => 'Se necesita llenar todos los campos',
|
||||||
|
'data' => $request->errors()
|
||||||
|
], 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
$user = auth()->user();
|
||||||
|
if (!($user->isAdmin() or $user->isEncargadoEstandar($request->id_estandar))) {
|
||||||
|
return response()->json([
|
||||||
|
'success' => false,
|
||||||
|
'message' => 'No tienes permisos para crear una acta',
|
||||||
|
], 401);
|
||||||
|
}
|
||||||
|
$acta = new Acta();
|
||||||
|
$acta->titulo = $request->titulo;
|
||||||
|
$acta->fecha = $request->fecha;
|
||||||
|
$acta->id_estandar = $request->id_estandar;
|
||||||
|
$acta->file = $request->file;
|
||||||
|
$acta->save();
|
||||||
|
return response()->json([
|
||||||
|
'success' => true,
|
||||||
|
'message' => 'Acta creada',
|
||||||
|
'data' => $acta
|
||||||
|
], 200);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function showActa($id)
|
||||||
|
{
|
||||||
|
$acta = Acta::find($id);
|
||||||
|
if ($acta) {
|
||||||
|
return response()->json([
|
||||||
|
'success' => true,
|
||||||
|
'message' => 'Acta encontrada',
|
||||||
|
'data' => $acta
|
||||||
|
], 200);
|
||||||
|
} else {
|
||||||
|
return response()->json([
|
||||||
|
'success' => false,
|
||||||
|
'message' => 'Acta no encontrada',
|
||||||
|
'data' => ''
|
||||||
|
], 404);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function listActas()
|
||||||
|
{
|
||||||
|
$actas = Acta::all();
|
||||||
|
return response()->json([
|
||||||
|
'success' => true,
|
||||||
|
'message' => 'Actas encontradas',
|
||||||
|
'data' => $actas
|
||||||
|
], 200);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$request = Validator::make($request->all(), [
|
||||||
|
'titulo' => 'present',
|
||||||
|
'fecha' => 'present',
|
||||||
|
'id_estandar' => 'present|exists:estandars,id',
|
||||||
|
'file' => 'present',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$acta = Acta::find($id);
|
||||||
|
if (!$acta) {
|
||||||
|
return response()->json([
|
||||||
|
'success' => false,
|
||||||
|
'message' => 'Acta no encontrada',
|
||||||
|
], 404);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($request->fails()) {
|
||||||
|
return response()->json([
|
||||||
|
'success' => false,
|
||||||
|
'message' => 'Se produjo un error al actualizar la acta',
|
||||||
|
'data' => $request->errors()
|
||||||
|
], 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
$user = auth()->user();
|
||||||
|
if (!($user->isAdmin() or $user->isEncargadoEstandar($request->id_estandar))) {
|
||||||
|
return response()->json([
|
||||||
|
'success' => false,
|
||||||
|
'message' => 'No tienes permisos para actualizar una acta',
|
||||||
|
], 401);
|
||||||
|
}
|
||||||
|
|
||||||
|
$acta->titulo = isset($request->titulo) ? $request->titulo : $acta->titulo;
|
||||||
|
$acta->fecha = isset($request->fecha) ? $request->fecha : $acta->fecha;
|
||||||
|
$acta->id_estandar = isset($request->id_estandar) ? $request->id_estandar : $acta->id_estandar;
|
||||||
|
$acta->file = isset($request->file) ? $request->file : $acta->file;
|
||||||
|
$acta->save();
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'success' => true,
|
||||||
|
'message' => 'Acta actualizada',
|
||||||
|
'data' => $acta
|
||||||
|
], 200);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function delete($id)
|
||||||
|
{
|
||||||
|
$acta = Acta::find($id);
|
||||||
|
if (!$acta) {
|
||||||
|
return response()->json([
|
||||||
|
'success' => false,
|
||||||
|
'message' => 'Acta no encontrada',
|
||||||
|
'data' => ''
|
||||||
|
], 404);
|
||||||
|
}
|
||||||
|
|
||||||
|
$user = auth()->user();
|
||||||
|
if (!($user->isAdmin() or $user->isEncargadoEstandar($acta->id_estandar))) {
|
||||||
|
return response()->json([
|
||||||
|
'success' => false,
|
||||||
|
'message' => 'No tienes permisos para eliminar una acta',
|
||||||
|
], 401);
|
||||||
|
}
|
||||||
|
|
||||||
|
$acta->delete();
|
||||||
|
return response()->json([
|
||||||
|
'success' => true,
|
||||||
|
'message' => 'Acta eliminada',
|
||||||
|
], 200);
|
||||||
|
}
|
||||||
|
}
|
24
app/Models/Acta.php
Normal file
24
app/Models/Acta.php
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Acta extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
public $timestamps = true;
|
||||||
|
|
||||||
|
protected $table = 'actas';
|
||||||
|
protected $fillable = [
|
||||||
|
'titulo',
|
||||||
|
'fecha',
|
||||||
|
'file',
|
||||||
|
];
|
||||||
|
|
||||||
|
public function estandar()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Estandar::class, 'id_estandar');
|
||||||
|
}
|
||||||
|
}
|
38
database/migrations/2022_12_11_224806_create_actas_table.php
Normal file
38
database/migrations/2022_12_11_224806_create_actas_table.php
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('actas', function (Blueprint $table) {
|
||||||
|
|
||||||
|
|
||||||
|
$table->id();
|
||||||
|
$table->date('fecha');
|
||||||
|
$table->string('titulo', 255);
|
||||||
|
$table->foreignId('id_estandar')
|
||||||
|
->constrained('estandars');
|
||||||
|
$table->string('file', 255);
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('actas');
|
||||||
|
}
|
||||||
|
};
|
@ -122,6 +122,13 @@
|
|||||||
Route::delete('narrativa/{id}', [NarrativasController::class, 'delete'])->where('id', '[0-9]+');
|
Route::delete('narrativa/{id}', [NarrativasController::class, 'delete'])->where('id', '[0-9]+');
|
||||||
Route::get('narrativa', [NarrativasController::class, 'listNarrativas']);
|
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]+');
|
||||||
|
|
||||||
|
//ruta Actas
|
||||||
|
Route::post('acta', [ActaController::class, 'create']);
|
||||||
|
Route::get('acta/{id}', [ActaController::class, 'showActa'])->where('id', '[0-9]+');
|
||||||
|
Route::put('acta/{id}', [ActaController::class, 'update'])->where('id', '[0-9]+');
|
||||||
|
Route::delete('acta/{id}', [ActaController::class, 'delete'])->where('id', '[0-9]+');
|
||||||
|
Route::get('acta', [ActaController::class, 'listActas']);
|
||||||
});
|
});
|
||||||
|
|
||||||
/*Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
|
/*Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
|
||||||
|
Loading…
Reference in New Issue
Block a user