From 4b6816914221193d4812eafb75d329d230bbd08e Mon Sep 17 00:00:00 2001 From: Paul Tirk Date: Tue, 12 Apr 2022 17:23:07 +0200 Subject: also allow starring/unstarring multiple items by id Signed-off-by: Paul Tirk --- lib/Controller/ItemApiController.php | 52 ++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'lib/Controller/ItemApiController.php') diff --git a/lib/Controller/ItemApiController.php b/lib/Controller/ItemApiController.php index 9b8090ef7..baf12adc2 100644 --- a/lib/Controller/ItemApiController.php +++ b/lib/Controller/ItemApiController.php @@ -401,6 +401,28 @@ class ItemApiController extends ApiController } + /** + * @param array $itemIds + * @param bool $isStarred + * + * @return void + */ + private function setMultipleStarredByItemIds(array $itemIds, bool $isStarred): void + { + foreach ($itemIds as $itemId) { + try { + $this->itemService->star( + $this->getUserId(), + $itemId, + $isStarred + ); + } catch (ServiceNotFoundException | ServiceConflictException $ex) { + continue; + } + } + } + + /** * @NoAdminRequired * @@ -433,4 +455,34 @@ class ItemApiController extends ApiController { $this->setMultipleStarred($items, false); } + + + /** + * @NoAdminRequired + * @NoCSRFRequired + * @CORS + * + * @param int[] $items item ids + * + * @return void + */ + public function starMultipleByItemIds(array $itemIds): void + { + $this->setMultipleStarredByItemIds($itemIds, true); + } + + + /** + * @NoAdminRequired + * @NoCSRFRequired + * @CORS + * + * @param array $items item ids + * + * @return void + */ + public function unstarMultipleByItemIds(array $itemIds): void + { + $this->setMultipleStarredByItemIds($itemIds, false); + } } -- cgit v1.2.3