|
|
@@ -17,11 +17,14 @@ class PersonalizarController extends Controller
|
|
|
|
|
|
protected $nombrePeriodoActivo;
|
|
|
|
|
|
- public function __construct(PeriodoService $periodoService)
|
|
|
- {
|
|
|
+ public function __construct(PeriodoService $periodoService)
|
|
|
+{
|
|
|
+ try {
|
|
|
$this->nombrePeriodoActivo = $periodoService->obtenerPeriodoActivoNombre();
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ $this->nombrePeriodoActivo = null;
|
|
|
}
|
|
|
-
|
|
|
+}
|
|
|
public function show()
|
|
|
{
|
|
|
$personalizar = Personalizar::find(1);
|
|
|
@@ -119,7 +122,18 @@ public function eliminarPerlogo(Request $request)
|
|
|
public function update(Request $request)
|
|
|
{
|
|
|
$personalizar = Personalizar::find(1);
|
|
|
- if ($personalizar) {
|
|
|
+
|
|
|
+ if (!$personalizar) {
|
|
|
+ return response()->json([
|
|
|
+ 'message' => 'No se encontró la personalización',
|
|
|
+ 'status' => 400
|
|
|
+ ], 400);
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+
|
|
|
+ $periodoService = new PeriodoService();
|
|
|
+ $carpetaPeriodo = $periodoService->obtenerPeriodoActivoNombre();
|
|
|
|
|
|
$personalizar->PERMENSAJE = $request->mensajeBienvenida;
|
|
|
$personalizar->PERNOMBRE = $request->nombreColegio;
|
|
|
@@ -131,8 +145,7 @@ public function update(Request $request)
|
|
|
$personalizar->PERPR_COL_TIT = $request->primerColorTitulos;
|
|
|
$personalizar->PERVINCULOS = $request->colorVinculos;
|
|
|
|
|
|
- $carpetaPeriodo = $this->nombrePeriodoActivo ?? 'sin_periodo';
|
|
|
-
|
|
|
+ // Función interna para procesar imágenes
|
|
|
$procesarImagen = function(?string $imageData, string $nombreArchivoBase, ?string $rutaActual) use ($carpetaPeriodo) {
|
|
|
if (empty($imageData) || $imageData === 'null') {
|
|
|
return $rutaActual;
|
|
|
@@ -146,7 +159,9 @@ public function update(Request $request)
|
|
|
}
|
|
|
return $imageData;
|
|
|
}
|
|
|
-
|
|
|
+ if (!$carpetaPeriodo) {
|
|
|
+ throw new \Exception('No hay un período activo configurado. No se puede subir imágenes.');
|
|
|
+ }
|
|
|
if (preg_match('/^data:image\/(\w+);base64,/', $imageData, $matches)) {
|
|
|
$fileExtension = strtolower($matches[1]);
|
|
|
} else {
|
|
|
@@ -167,7 +182,6 @@ public function update(Request $request)
|
|
|
}
|
|
|
|
|
|
$uniqueSuffix = time() . '_' . Str::uuid();
|
|
|
-
|
|
|
$path = $carpetaPeriodo . '/personalizar/' . $nombreArchivoBase . '_' . $uniqueSuffix . '.' . $fileExtension;
|
|
|
|
|
|
Storage::disk('s3')->put($path, base64_decode($imageBase64), 'public');
|
|
|
@@ -175,16 +189,10 @@ public function update(Request $request)
|
|
|
return $path;
|
|
|
};
|
|
|
|
|
|
- try {
|
|
|
- $personalizar->PERLOGO = $procesarImagen($request->imagen, 'personalizar', $personalizar->PERLOGO);
|
|
|
- $personalizar->PERLOGO1 = $procesarImagen($request->imagen1, 'personalizar1', $personalizar->PERLOGO1);
|
|
|
- $personalizar->PERLOGO2 = $procesarImagen($request->imagen2, 'personalizar2', $personalizar->PERLOGO2);
|
|
|
- } catch (\Exception $ex) {
|
|
|
- return response()->json([
|
|
|
- 'message' => $ex->getMessage(),
|
|
|
- 'status' => 400,
|
|
|
- ], 400);
|
|
|
- }
|
|
|
+ // Procesar imágenes
|
|
|
+ $personalizar->PERLOGO = $procesarImagen($request->imagen, 'personalizar', $personalizar->PERLOGO);
|
|
|
+ $personalizar->PERLOGO1 = $procesarImagen($request->imagen1, 'personalizar1', $personalizar->PERLOGO1);
|
|
|
+ $personalizar->PERLOGO2 = $procesarImagen($request->imagen2, 'personalizar2', $personalizar->PERLOGO2);
|
|
|
|
|
|
$personalizar->save();
|
|
|
|
|
|
@@ -192,15 +200,15 @@ public function update(Request $request)
|
|
|
'message' => 'Personalización del sistema actualizada',
|
|
|
'status' => 200
|
|
|
], 200);
|
|
|
- }
|
|
|
|
|
|
- return response()->json([
|
|
|
- 'message' => 'No se encontró la personalización',
|
|
|
- 'status' => 400
|
|
|
- ], 400);
|
|
|
+ } catch (\Exception $ex) {
|
|
|
+ return response()->json([
|
|
|
+ 'message' => $ex->getMessage(),
|
|
|
+ 'status' => 400,
|
|
|
+ ], 400);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-
|
|
|
public function getNombreColegio()
|
|
|
{
|
|
|
try {
|