Bläddra i källkod

feat: add new endpoints to retrieve tasks by due date, assignment date, and subject in TareasController

EmilianoChavarria 1 månad sedan
förälder
incheckning
675e6ffd32

+ 65 - 1
Back/backendP-Educativa/app/Http/Controllers/Api/TareasController.php

@@ -47,6 +47,70 @@ class TareasController extends Controller
         }
     }
 
+    public function getTareasPorFechaEntrega($fecha)
+    {
+        try {
+            $tareas = DB::table('tareas as t')
+                ->join('materias as m', 't.idMateriaTarea', '=', 'm.idMateria')
+                ->join('tareas_tipos as tt', 't.idTipoTarea', '=', 'tt.idTareasTipos')
+                ->whereDate('t.fechaEntrega', '=', $fecha)
+                ->select(
+                    'm.nombreMateria as materia',
+                    'tt.nombreTareasTipos as tipo_tarea',
+                    't.*'
+                )
+                ->orderBy('t.fechaEntrega', 'asc')
+                ->get();
+
+            return response()->json($tareas);
+        } catch (\Exception $e) {
+            return response()->json(['mensaje' => 'Error al obtener las tareas por fecha de entrega: ' . $e->getMessage()], 500);
+        }
+    }
+
+    public function getTareasPorFechaAsignacion($fecha)
+    {
+        try {
+            $tareas = DB::table('tareas as t')
+                ->join('materias as m', 't.idMateriaTarea', '=', 'm.idMateria')
+                ->join('tareas_tipos as tt', 't.idTipoTarea', '=', 'tt.idTareasTipos')
+                ->whereDate('t.fechaPublicacion', '=', $fecha)
+                ->select(
+                    'm.nombreMateria as materia',
+                    'tt.nombreTareasTipos as tipo_tarea',
+                    't.*'
+                )
+                ->orderBy('t.fechaPublicacion', 'asc')
+                ->get();
+
+            return response()->json($tareas);
+        } catch (\Exception $e) {
+            return response()->json(['mensaje' => 'Error al obtener las tareas por fecha de asignación: ' . $e->getMessage()], 500);
+        }
+    }
+
+    public function getTareasPorMateria($idMateria)
+    {
+        try {
+            $tareas = DB::table('tareas as t')
+                ->join('materias as m', 't.idMateriaTarea', '=', 'm.idMateria')
+                ->join('tareas_tipos as tt', 't.idTipoTarea', '=', 'tt.idTareasTipos')
+                ->where('t.idMateriaTarea', $idMateria)
+                ->select(
+                    'm.nombreMateria as materia',
+                    'tt.nombreTareasTipos as tipo_tarea',
+                    't.*'
+                )
+                ->orderBy('t.fechaPublicacion', 'desc')
+                ->get();
+
+            return response()->json($tareas);
+        } catch (\Exception $e) {
+            return response()->json(['mensaje' => 'Error al obtener las tareas por materia: ' . $e->getMessage()], 500);
+        }
+    }
+
+
 
     public function crear(Request $request)
     {
@@ -284,7 +348,7 @@ class TareasController extends Controller
 
     public function habilitar($id)
     {
-        
+
         try {
             //code...
             DB::table('tareas')

+ 6 - 2
Back/backendP-Educativa/routes/api.php

@@ -49,7 +49,7 @@ use App\Http\Controllers\s3;
 
 //RUTAS QUE NO NECESITAN TOKENS
 Route::post('/subir-archivo', [s3::class, 'subirArchivo']);
-    Route::post('/recalcular-completado', [RegistroAcademico::class, 'RecalcularCompletado']);
+Route::post('/recalcular-completado', [RegistroAcademico::class, 'RecalcularCompletado']);
 
 Route::post('login', [LoginController::class, 'login']);
 Route::post('register', [UserController::class, 'register']);
@@ -213,7 +213,7 @@ Route::middleware(['auth:sanctum'])->group(function () {
     Route::delete('eliminarGrupo', [AlumnosController::class, 'eliminarGrupo']);
     Route::delete('eliminarPadre', [AlumnosController::class, 'eliminarPadre']);
     Route::get('/alumnos/bitacora/{id}', [AlumnosBitacoraController::class, 'index']);
-     Route::get('getByUser/{id}', [AlumnosBitacoraController::class, 'getByUser']); //Obtener circulares por usuario
+    Route::get('getByUser/{id}', [AlumnosBitacoraController::class, 'getByUser']); //Obtener circulares por usuario
     Route::get('UserOne/{id}', [AlumnosBitacoraController::class, 'findOne']);
 
 
@@ -302,6 +302,10 @@ Route::middleware(['auth:sanctum'])->group(function () {
     Route::get('/tareas/usuario/{idUsuario}', [TareasController::class, 'getTareasPorUsuario']);
     Route::put('tareaDelete/{id}', [TareasController::class, 'eliminar']);
     Route::put('tareaEnable/{id}', [TareasController::class, 'habilitar']);
+    Route::get('tareas/fecha-entrega/{fecha}', [TareasController::class, 'getTareasPorFechaEntrega']);
+    Route::get('tareas/fecha-asignacion/{fecha}', [TareasController::class, 'getTareasPorFechaAsignacion']);
+    Route::get('tareas/materia/{idMateria}', [TareasController::class, 'getTareasPorMateria']);
+
 
 
 });