Browse Source

feat: PeriodoController created and added crearPeriodo method, added savePeriodo on api.php file

EmilianoChavarria 3 months ago
parent
commit
08c36c57ee

+ 1 - 1
Back/backendP-Educativa/.env

@@ -41,7 +41,7 @@ MAIL_FROM_NAME="${APP_NAME}"
 AWS_ACCESS_KEY_ID=4fcaae6da39a40198d8b4a27dc893a1a
 AWS_SECRET_ACCESS_KEY=aaaba8656aa91876038d77c362149689fb063e7c761ea47e
 AWS_DEFAULT_REGION=us-east-1
-AWS_BUCKET=pledu-dv-fjcm
+AWS_BUCKET=pledu-dv-aeci
 AWS_USE_PATH_STYLE_ENDPOINT=true
 AWS_ENDPOINT=https://s3.us-south.cloud-object-storage.appdomain.cloud
 

+ 57 - 0
Back/backendP-Educativa/app/Http/Controllers/Api/PeriodoController.php

@@ -0,0 +1,57 @@
+<?php
+
+namespace App\Http\Controllers\Api;
+
+use App\Http\Controllers\Controller;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Storage;
+
+
+class PeriodoController extends Controller
+{
+
+
+    public function crearPeriodo(Request $request)
+    {
+        try {
+            // Validar datos
+            $validated = $request->validate([
+                'idEscuela' => 'required|string|max:10',
+                'idPeriodo' => 'required|string|max:10',
+                'nombrePeriodo' => 'required|string|max:100',
+                'fechaFinalizacion' => 'required|date',
+            ]);
+
+            // Insertar en la base de datos
+            DB::table('periodos')->insert([
+                'idEscuela' => $validated['idEscuela'],
+                'idPeriodo' => $validated['idPeriodo'],
+                'nombrePeriodo' => $validated['nombrePeriodo'],
+                'fechaFinalizacion' => $validated['fechaFinalizacion'],
+                'estatus' => 'Activo',
+                'ulActualizacion' => now(),
+            ]);
+
+            // Crear carpeta en S3 (la carpeta se crea al subir un archivo vacío o establecer un "prefix")
+            $folderPath = 'periodos/' . $validated['nombrePeriodo'] . '/';
+            Storage::disk('s3')->put($folderPath . 'readme.txt', 'Carpeta creada para el periodo ' . $validated['nombrePeriodo']);
+
+            return response()->json([
+                'mensaje' => 'Periodo creado correctamente',
+                'carpetaS3' => $folderPath,
+            ], 201);
+
+        } catch (\Exception $e) {
+            return response()->json([
+                'mensaje' => 'Error al crear el periodo: ' . $e->getMessage()
+            ], 500);
+        }
+    }
+
+
+
+
+
+
+}

+ 4 - 0
Back/backendP-Educativa/routes/api.php

@@ -9,6 +9,7 @@ use App\Http\Controllers\Api\EventosController;
 use App\Http\Controllers\Api\GradoEducativoController;
 use App\Http\Controllers\Api\GrupoController;
 use App\Http\Controllers\Api\MateriaController;
+use App\Http\Controllers\Api\PeriodoController;
 use App\Http\Controllers\Api\UserController;
 use App\Http\Controllers\auth\LoginController;
 use App\Http\Controllers\MailController;
@@ -62,6 +63,9 @@ Route::post('/send-test-email', [MailController::class, 'sendTestEmail']);
 Route::middleware(['auth:sanctum'])->group(function () {
     Route::get('logout', [LoginController::class, 'logout']);
 
+    // Rutas Periodos
+    Route::post('crearPeriodo', [PeriodoController::class, 'crearPeriodo']);
+
     //Rutas de Usuarios
     Route::get('count', [ActividadController::class, 'count']);
     Route::get('usuarioAll', [UserController::class, 'mostrar']);