| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- <?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 getAllPeriodos(Request $request)
- {
- try {
- $periodos = DB::table('periodos')->get();
- return response()->json([
- 'mensaje' => 'Periodos obtenidos correctamente',
- 'data' => $periodos,
- ], 200);
- } catch (\Exception $e) {
- return response()->json([
- 'mensaje' => 'Error al obtener los periodos: ' . $e->getMessage()
- ], 500);
- }
- }
- public function crearPeriodo(Request $request)
- {
- try {
- $validated = $request->validate([
- 'idPeriodo' => 'required|string|max:10',
- 'nombrePeriodo' => 'required|string|max:100',
- 'fechaFinalizacion' => 'required|date',
- ]);
- DB::table('periodos')->insert([
- 'idEscuela' => 'COLEGIOABC',
- 'idPeriodo' => $validated['idPeriodo'],
- 'nombrePeriodo' => $validated['nombrePeriodo'],
- 'fechaFinalizacion' => $validated['fechaFinalizacion'],
- 'estatus' => 'Inactivo',
- 'ulActualizacion' => now(),
- ]);
- // Crear carpeta en S3 (la carpeta se crea al subir un archivo vacío o establecer un "prefix")
- $folderPath = 'periodos/' . $validated['idPeriodo'] . '/';
- Storage::disk('s3')->put($folderPath . 'readme.txt', 'Carpeta creada para el periodo ' . $validated['idPeriodo']);
- 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);
- }
- }
- public function activarPeriodo(Request $request)
- {
- try {
- $validated = $request->validate([
- 'idPeriodo' => 'required|string|max:10',
- ]);
-
- DB::table('periodos')
- ->where('estatus', '<>', 'Eliminado')
- ->update(['estatus' => 'Inactivo']);
- // Activar el periodo seleccionado
- DB::table('periodos')
- ->where('idPeriodo', $validated['idPeriodo'])
- ->update([
- 'estatus' => 'Activo',
- 'ulActualizacion' => now(),
- ]);
- return response()->json([
- 'mensaje' => 'Periodo activado correctamente',
- 'idPeriodo' => $validated['idPeriodo']
- ], 200);
- } catch (\Exception $e) {
- return response()->json([
- 'mensaje' => 'Error al activar el periodo: ' . $e->getMessage()
- ], 500);
- }
- }
- public function eliminarPeriodo(Request $request)
- {
- try {
- $validated = $request->validate([
- 'idPeriodo' => 'required|string|max:10',
- ]);
- $updated = DB::table('periodos')
- ->where('idPeriodo', $validated['idPeriodo'])
- ->update([
- 'estatus' => 'Eliminado',
- 'ulActualizacion' => now(),
- ]);
- if ($updated) {
- return response()->json([
- 'mensaje' => 'Periodo eliminado correctamente',
- 'idPeriodo' => $validated['idPeriodo']
- ], 200);
- } else {
- return response()->json([
- 'mensaje' => 'No se encontró el periodo para eliminar'
- ], 404);
- }
- } catch (\Exception $e) {
- return response()->json([
- 'mensaje' => 'Error al eliminar el periodo: ' . $e->getMessage()
- ], 500);
- }
- }
- public function habilitarPeriodo(Request $request)
- {
- try {
- $validated = $request->validate([
- 'idPeriodo' => 'required|string|max:10',
- ]);
- $updated = DB::table('periodos')
- ->where('idPeriodo', $validated['idPeriodo'])
- ->update([
- 'estatus' => 'Inactivo',
- 'ulActualizacion' => now(),
- ]);
- if ($updated) {
- return response()->json([
- 'mensaje' => 'Periodo eliminado correctamente',
- 'idPeriodo' => $validated['idPeriodo']
- ], 200);
- } else {
- return response()->json([
- 'mensaje' => 'No se encontró el periodo para eliminar'
- ], 404);
- }
- } catch (\Exception $e) {
- return response()->json([
- 'mensaje' => 'Error al eliminar el periodo: ' . $e->getMessage()
- ], 500);
- }
- }
- }
|