aboutsummaryrefslogtreecommitdiff
path: root/src/controller/MaintenanceController.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/controller/MaintenanceController.php')
-rw-r--r--src/controller/MaintenanceController.php32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/controller/MaintenanceController.php b/src/controller/MaintenanceController.php
index c60ca1c..c62b21b 100644
--- a/src/controller/MaintenanceController.php
+++ b/src/controller/MaintenanceController.php
@@ -6,6 +6,7 @@ declare(strict_types=1);
6use Doctrine\ORM\EntityManager; 6use Doctrine\ORM\EntityManager;
7use App\Entity\log; 7use App\Entity\log;
8use Symfony\Component\Process\Exception\ProcessFailedException; 8use Symfony\Component\Process\Exception\ProcessFailedException;
9use Symfony\Component\HttpFoundation\File\UploadedFile;
9 10
10class MaintenanceController 11class MaintenanceController
11{ 12{
@@ -49,7 +50,7 @@ class MaintenanceController
49 die; 50 die;
50 } 51 }
51 52
52 static public function getLastDump(EntityManager $entityManager): void 53 static public function getLastDump(): void
53 { 54 {
54 try{ 55 try{
55 $file_path = Backup::getLastBackupName(); 56 $file_path = Backup::getLastBackupName();
@@ -66,4 +67,33 @@ class MaintenanceController
66 } 67 }
67 die; 68 die;
68 } 69 }
70
71 // parce qu'il faut un contrôleur
72 static public function handleBackupSelection(EntityManager $entityManager, string $selected_file): void
73 {
74 if(pathinfo($selected_file)['extension'] !== 'sql'){ // pas censé se produire en fait
75 throw new Exception("charger un fichier au format SQL");
76 }
77
78 Backup::restoreDatabase($entityManager, $selected_file);
79 }
80
81 static public function downloadSQL(EntityManager $entityManager, UploadedFile $uploaded_file): void
82 {
83 if(pathinfo($uploaded_file->getClientOriginalName())['extension'] !== 'sql'){
84 throw new Exception("charger un fichier au format SQL");
85 }
86 //echo $uploaded_file->getSize(); // à garder de côté au cas où
87
88 $server_place = Config::$database . '_' . new DateTime()->format('Y-m-d') . '_uploaded.sql';
89
90 try{
91 // enregistrer le fichier
92 var_dump($uploaded_file->move(Backup::$backup_dir, $server_place));
93
94 // s'en servir
95 Backup::restoreDatabase($entityManager, $server_place);
96 }
97 finally{}
98 }
69} \ No newline at end of file 99} \ No newline at end of file