Files
api/services/nginx/app/routes/moduleBackupsRoute.php
T
Jepp9350 797630d8bd Add backup and email enhancements with PHPMailer integration
Introduced a backup system managing database and metadata files using Minio/S3, alongside routes for handling these. Integrated PHPMailer for robust email functionalities, including configuration testing and SMTP handling. Updated Dockerfile, composer dependencies, and minor code improvements to support new features.
2025-02-11 14:25:26 +01:00

59 lines
2.1 KiB
PHP

<?php
namespace routes;
use classes\authentication;
use classes\backup_store;
use classes\response;
use classes\router;
use objects\logs_o;
use traits\route_t;
class moduleBackupsRoute
{
use route_t;
public function run(): void
{
global /** @var response $response */
/** @var router $router */
$router, $response;
/** Modules > Backups > GET */
$this->get('/modules/backup', function () {
global $response;
$this->requirePermission('modules_backup_list');
$user = (new authentication())->get_user();
if ($user) {
(new logs_o())->add('modules_backup', 'global', 1, $user->id, 'MODULES_BACKUP', 'Successfully fetched backup modules');
$response->success(
(new backup_store())->listBackups()
);
} else {
(new logs_o())->add('modules_backup', 'global', 1, 0, 'MODULES_BACKUP', 'No user found, or invalid session');
$response->error('Invalid session', 400);
}
});
/** Modules > Backups > POST */
$this->post('/modules/backup', function () {
global $response;
$this->requirePermission('modules_backup_create');
$user = (new authentication())->get_user();
if ($user) {
(new logs_o())->add('modules_backup', 'global', 1, $user->id, 'MODULES_BACKUP', 'Successfully created backup module');
// Check if the request contains a name, and description parameter
$name = $this->fromRequest('name');
$description = $this->fromRequest('description');
// Create the backup
$response->success(
(new backup_store())->createBackup($name, $description)
);
} else {
(new logs_o())->add('modules_backup', 'global', 1, 0, 'MODULES_BACKUP', 'No user found, or invalid session');
$response->error('Invalid session', 400);
}
});
}
}