MAPG-203 add cleanup for multi_rooms to db:maintain

This commit is contained in:
Bence Pőcze 2021-03-20 13:01:55 +01:00
parent e5fb725c69
commit 5dd2ce0d5a
Signed by: bence
GPG Key ID: AA52B11A3269D1C1

View File

@ -5,6 +5,7 @@ use MapGuesser\Database\Query\Modify;
use MapGuesser\Database\Query\Select; use MapGuesser\Database\Query\Select;
use MapGuesser\Interfaces\Database\IResultSet; use MapGuesser\Interfaces\Database\IResultSet;
use MapGuesser\PersistentData\PersistentDataManager; use MapGuesser\PersistentData\PersistentDataManager;
use MapGuesser\Repository\MultiRoomRepository;
use MapGuesser\Repository\UserConfirmationRepository; use MapGuesser\Repository\UserConfirmationRepository;
use MapGuesser\Repository\UserPasswordResetterRepository; use MapGuesser\Repository\UserPasswordResetterRepository;
use MapGuesser\Repository\UserRepository; use MapGuesser\Repository\UserRepository;
@ -22,6 +23,8 @@ class MaintainDatabaseCommand extends Command
private UserPasswordResetterRepository $userPasswordResetterRepository; private UserPasswordResetterRepository $userPasswordResetterRepository;
private MultiRoomRepository $multiRoomRepository;
public function __construct() public function __construct()
{ {
parent::__construct(); parent::__construct();
@ -30,6 +33,7 @@ class MaintainDatabaseCommand extends Command
$this->userRepository = new UserRepository(); $this->userRepository = new UserRepository();
$this->userConfirmationRepository = new UserConfirmationRepository(); $this->userConfirmationRepository = new UserConfirmationRepository();
$this->userPasswordResetterRepository = new UserPasswordResetterRepository(); $this->userPasswordResetterRepository = new UserPasswordResetterRepository();
$this->multiRoomRepository = new MultiRoomRepository();
} }
public function configure(): void public function configure(): void
@ -43,6 +47,7 @@ class MaintainDatabaseCommand extends Command
try { try {
$this->deleteInactiveExpiredUsers(); $this->deleteInactiveExpiredUsers();
$this->deleteExpiredPasswordResetters(); $this->deleteExpiredPasswordResetters();
$this->deleteExpiredRooms();
$this->deleteExpiredSessions(); $this->deleteExpiredSessions();
} catch (\Exception $e) { } catch (\Exception $e) {
$output->writeln('<error>Maintenance failed!</error>'); $output->writeln('<error>Maintenance failed!</error>');
@ -89,6 +94,13 @@ class MaintainDatabaseCommand extends Command
} }
} }
private function deleteExpiredRooms(): void
{
foreach ($this->multiRoomRepository->getAllExpired() as $multiRoom) {
$this->pdm->deleteFromDb($multiRoom);
}
}
private function deleteExpiredSessions(): void private function deleteExpiredSessions(): void
{ {
//TODO: model may be used for sessions too //TODO: model may be used for sessions too