Browse Source

feat: add endpoint to retrieve subjects for a user from the last 30 days in TareasController

EmilianoChavarria 1 month ago
parent
commit
bc974b92df

+ 25 - 0
Back/backendP-Educativa/app/Http/Controllers/Api/TareasController.php

@@ -89,6 +89,31 @@ class TareasController extends Controller
         }
     }
 
+    public function getMateriasUsuarioUltimos30Dias($idUsuario)
+    {
+        try {
+            $materias = DB::table('tareas as t')
+                ->join('materias as m', 't.idMateriaTarea', '=', 'm.idMateria')
+                ->join('tareas_usuarios_colegioabc as tu', 't.idTarea', '=', 'tu.idTarea')
+                ->where('tu.idUsuario', $idUsuario)
+                ->where('t.fechaPublicacion', '>=', now()->subDays(30))
+                ->select(
+                    'm.idMateria',
+                    'm.nombreMateria'
+                )
+                ->distinct()
+                ->orderBy('m.nombreMateria', 'asc')
+                ->get();
+
+            return response()->json($materias);
+
+        } catch (\Exception $e) {
+            return response()->json([
+                'mensaje' => 'Error al obtener las materias: ' . $e->getMessage()
+            ], 500);
+        }
+    }
+
     public function getTareasPorMateria($idMateria)
     {
         try {