diff options
author | Paul Tirk <paultirk@paultirk.com> | 2022-04-11 10:11:33 +0200 |
---|---|---|
committer | Benjamin Brahmer <info@b-brahmer.de> | 2022-04-30 20:04:30 +0200 |
commit | 98028e4422fe6f2c1af297271d0c5bcd01af70d4 (patch) | |
tree | cdc1c2200255a0e5cdf573a7fda3470f348a61ee /lib/Controller | |
parent | 397eba14d92144f463ee3b879b43a790d62a2bc8 (diff) |
add routes for starring/unstarring items by id
Signed-off-by: Paul Tirk <paultirk@paultirk.com>
Diffstat (limited to 'lib/Controller')
-rw-r--r-- | lib/Controller/ApiController.php | 2 | ||||
-rw-r--r-- | lib/Controller/ItemApiController.php | 51 |
2 files changed, 52 insertions, 1 deletions
diff --git a/lib/Controller/ApiController.php b/lib/Controller/ApiController.php index 35924c261..c965dead5 100644 --- a/lib/Controller/ApiController.php +++ b/lib/Controller/ApiController.php @@ -82,7 +82,7 @@ class ApiController extends BaseApiController public function index(): array { return [ - 'apiLevels' => ['v1-2', 'v2'] + 'apiLevels' => ['v1-2', 'v1-3', 'v2'] ]; } } diff --git a/lib/Controller/ItemApiController.php b/lib/Controller/ItemApiController.php index 2e59d5b3a..dec04bbe6 100644 --- a/lib/Controller/ItemApiController.php +++ b/lib/Controller/ItemApiController.php @@ -222,6 +222,25 @@ class ItemApiController extends ApiController /** + * @param int $itemId + * @param bool $isStarred + * + * @return array|JSONResponse + * @throws ServiceConflictException + */ + private function setStarredByItemId(int $itemId, bool $isStarred) + { + try { + $this->itemService->starByItemId($this->getUserId(), $itemId, $isStarred); + } catch (ServiceNotFoundException $ex) { + return $this->error($ex, Http::STATUS_NOT_FOUND); + } + + return []; + } + + + /** * @NoAdminRequired * @NoCSRFRequired * @CORS @@ -257,6 +276,38 @@ class ItemApiController extends ApiController /** * @NoAdminRequired + * @NoCSRFRequired + * @CORS + * + * @param int $itemId + * + * @return array|JSONResponse + * @throws ServiceConflictException + */ + public function starByItemId(int $itemId) + { + return $this->setStarredByItemId($itemId, true); + } + + + /** + * @NoAdminRequired + * @NoCSRFRequired + * @CORS + * + * @param int $itemId + * + * @return array|JSONResponse + * @throws ServiceConflictException + */ + public function unstarByItemId(int $itemId) + { + return $this->setStarredByItemId($itemId, false); + } + + + /** + * @NoAdminRequired * * @NoCSRFRequired * |