Skip to content

Commit

Permalink
Merge pull request #126 from nextcloud/feat/update-resources-rooms-in…
Browse files Browse the repository at this point in the history
…stantly

feat: update resources and rooms instantly
  • Loading branch information
st3iny committed Jun 25, 2024
2 parents bdff0a9 + 6c0e2c4 commit d2e29c5
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 5 deletions.
9 changes: 8 additions & 1 deletion lib/Command/CreateResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
* @copyright 2021 Anna Larch <anna.larch@nextcloud.com>
*
* @author 2021 Anna Larch <anna.larch@nextcloud.com>
* @author 2024 Richard Steinmetz <richard@steinmetz.cloud>
*
* @license GNU AGPL version 3 or any later version
*
Expand All @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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;
}
}
21 changes: 20 additions & 1 deletion lib/Command/CreateRestriction.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
* @copyright 2021 Anna Larch <anna.larch@nextcloud.com>
*
* @author 2021 Anna Larch <anna.larch@nextcloud.com>
* @author 2024 Richard Steinmetz <richard@steinmetz.cloud>
*
* @license GNU AGPL version 3 or any later version
*
Expand All @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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;
}
}
12 changes: 11 additions & 1 deletion lib/Command/CreateRoom.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
* @copyright 2021 Anna Larch <anna.larch@nextcloud.com>
*
* @author 2021 Anna Larch <anna.larch@nextcloud.com>
* @author 2024 Richard Steinmetz <richard@steinmetz.cloud>
*
* @license GNU AGPL version 3 or any later version
*
Expand All @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
}
}
12 changes: 11 additions & 1 deletion lib/Command/CreateVehicle.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
* @copyright 2021 Anna Larch <anna.larch@nextcloud.com>
*
* @author 2021 Anna Larch <anna.larch@nextcloud.com>
* @author 2024 Richard Steinmetz <richard@steinmetz.cloud>
*
* @license GNU AGPL version 3 or any later version
*
Expand All @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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;
}
}
38 changes: 37 additions & 1 deletion lib/Command/DeleteResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
* @copyright 2021 Anna Larch <anna.larch@nextcloud.com>
*
* @author 2021 Anna Larch <anna.larch@nextcloud.com>
* @author 2024 Richard Steinmetz <richard@steinmetz.cloud>
*
* @license GNU AGPL version 3 or any later version
*
Expand All @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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();
}
}
}

0 comments on commit d2e29c5

Please sign in to comment.