diff --git a/lib/Command/CreateResource.php b/lib/Command/CreateResource.php index 970895b..7c29e82 100644 --- a/lib/Command/CreateResource.php +++ b/lib/Command/CreateResource.php @@ -6,6 +6,7 @@ * @copyright 2021 Anna Larch * * @author 2021 Anna Larch + * @author 2024 Richard Steinmetz * * @license GNU AGPL version 3 or any later version * @@ -27,6 +28,7 @@ use OCA\CalendarResourceManagement\Db\ResourceMapper; use OCA\CalendarResourceManagement\Db\ResourceModel; +use OCP\Calendar\Resource\IManager as IResourceManager; use OCP\DB\Exception; use Psr\Log\LoggerInterface; use Symfony\Component\Console\Command\Command; @@ -50,7 +52,8 @@ class CreateResource extends Command { private $resourceMapper; public function __construct(LoggerInterface $logger, - ResourceMapper $resourceMapper) { + ResourceMapper $resourceMapper, + private IResourceManager $resourceManager) { parent::__construct(); $this->logger = $logger; $this->resourceMapper = $resourceMapper; @@ -100,6 +103,10 @@ protected function execute(InputInterface $input, OutputInterface $output): int return 1; } + if (method_exists($this->resourceManager, 'update')) { + $this->resourceManager->update(); + } + return 0; } } diff --git a/lib/Command/CreateRestriction.php b/lib/Command/CreateRestriction.php index 912d976..47b773b 100644 --- a/lib/Command/CreateRestriction.php +++ b/lib/Command/CreateRestriction.php @@ -6,6 +6,7 @@ * @copyright 2021 Anna Larch * * @author 2021 Anna Larch + * @author 2024 Richard Steinmetz * * @license GNU AGPL version 3 or any later version * @@ -27,6 +28,8 @@ use OCA\CalendarResourceManagement\Db\RestrictionMapper; use OCA\CalendarResourceManagement\Db\RestrictionModel; +use OCP\Calendar\Resource\IManager as IResourceManager; +use OCP\Calendar\Room\IManager as IRoomManager; use OCP\DB\Exception; use Psr\Log\LoggerInterface; use Symfony\Component\Console\Command\Command; @@ -46,7 +49,9 @@ class CreateRestriction extends Command { private $restrictionMapper; public function __construct(LoggerInterface $logger, - RestrictionMapper $restrictionMapper) { + RestrictionMapper $restrictionMapper, + private IResourceManager $resourceManager, + private IRoomManager $roomManager) { parent::__construct(); $this->logger = $logger; $this->restrictionMapper = $restrictionMapper; @@ -86,6 +91,20 @@ protected function execute(InputInterface $input, OutputInterface $output): int return 1; } + switch ($entityType) { + case "vehicle": + case "resource": + if (method_exists($this->resourceManager, 'update')) { + $this->resourceManager->update(); + } + break; + case "room": + if (method_exists($this->roomManager, 'update')) { + $this->roomManager->update(); + } + break; + } + return 0; } } diff --git a/lib/Command/CreateRoom.php b/lib/Command/CreateRoom.php index 18526f7..f351d83 100644 --- a/lib/Command/CreateRoom.php +++ b/lib/Command/CreateRoom.php @@ -6,6 +6,7 @@ * @copyright 2021 Anna Larch * * @author 2021 Anna Larch + * @author 2024 Richard Steinmetz * * @license GNU AGPL version 3 or any later version * @@ -27,6 +28,7 @@ use OCA\CalendarResourceManagement\Db\RoomMapper; use OCA\CalendarResourceManagement\Db\RoomModel; +use OCP\Calendar\Room\IManager as IRoomManager; use OCP\DB\Exception; use Psr\Log\LoggerInterface; use Symfony\Component\Console\Command\Command; @@ -57,7 +59,11 @@ class CreateRoom extends Command { /** @var RoomMapper */ private $roomMapper; - public function __construct(LoggerInterface $logger, RoomMapper $roomMapper) { + public function __construct( + LoggerInterface $logger, + RoomMapper $roomMapper, + private IRoomManager $roomManager, + ) { parent::__construct(); $this->logger = $logger; $this->roomMapper = $roomMapper; @@ -201,6 +207,10 @@ protected function execute(InputInterface $input, OutputInterface $output): int return 1; } + if (method_exists($this->roomManager, 'update')) { + $this->roomManager->update(); + } + return 0; } } diff --git a/lib/Command/CreateVehicle.php b/lib/Command/CreateVehicle.php index 5134915..e5f3153 100644 --- a/lib/Command/CreateVehicle.php +++ b/lib/Command/CreateVehicle.php @@ -6,6 +6,7 @@ * @copyright 2021 Anna Larch * * @author 2021 Anna Larch + * @author 2024 Richard Steinmetz * * @license GNU AGPL version 3 or any later version * @@ -27,6 +28,7 @@ use OCA\CalendarResourceManagement\Db\VehicleMapper; use OCA\CalendarResourceManagement\Db\VehicleModel; +use OCP\Calendar\Resource\IManager as IResourceManager; use Psr\Log\LoggerInterface; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; @@ -53,7 +55,11 @@ class CreateVehicle extends Command { /** @var VehicleMapper */ private $vehicleMapper; - public function __construct(LoggerInterface $logger, VehicleMapper $vehicleMapper) { + public function __construct( + LoggerInterface $logger, + VehicleMapper $vehicleMapper, + private IResourceManager $resourceManager, + ) { parent::__construct(); $this->logger = $logger; $this->vehicleMapper = $vehicleMapper; @@ -117,6 +123,10 @@ protected function execute(InputInterface $input, OutputInterface $output): int return 1; } + if (method_exists($this->resourceManager, 'update')) { + $this->resourceManager->update(); + } + return 0; } } diff --git a/lib/Command/DeleteResource.php b/lib/Command/DeleteResource.php index d5c98c8..064c1e9 100644 --- a/lib/Command/DeleteResource.php +++ b/lib/Command/DeleteResource.php @@ -6,6 +6,7 @@ * @copyright 2021 Anna Larch * * @author 2021 Anna Larch + * @author 2024 Richard Steinmetz * * @license GNU AGPL version 3 or any later version * @@ -28,6 +29,8 @@ use OCA\CalendarResourceManagement\Db\AMapper; use OCP\AppFramework\Db\DoesNotExistException; use OCP\AppFramework\Db\MultipleObjectsReturnedException; +use OCP\Calendar\Resource\IManager as IResourceManager; +use OCP\Calendar\Room\IManager as IRoomManager; use OCP\DB\Exception; use OCP\IDBConnection; use Psr\Log\LoggerInterface; @@ -46,7 +49,12 @@ class DeleteResource extends Command { /** @var IDBConnection */ private $connection; - public function __construct(LoggerInterface $logger, IDBConnection $connection) { + public function __construct( + LoggerInterface $logger, + IDBConnection $connection, + private IResourceManager $resourceManager, + private IRoomManager $roomManager, + ) { parent::__construct(); $this->logger = $logger; $this->connection = $connection; @@ -101,6 +109,34 @@ protected function execute(InputInterface $input, OutputInterface $output): int return 1; } + switch ($type) { + case "building": + case "story": + case "room": + $this->updateRooms(); + break; + case "vehicle": + case "resource": + $this->updateResources(); + break; + default: + $this->updateResources(); + $this->updateRooms(); + break; + } + return 0; } + + private function updateResources(): void { + if (method_exists($this->resourceManager, 'update')) { + $this->resourceManager->update(); + } + } + + private function updateRooms(): void { + if (method_exists($this->roomManager, 'update')) { + $this->roomManager->update(); + } + } }