From 172a80fa5d943f53b8c5f99a4ad69b67e2cc9b01 Mon Sep 17 00:00:00 2001 From: Ryan Fletcher Date: Sat, 21 Jul 2018 12:17:28 -0400 Subject: [PATCH] Added additional endpoints for cards / stacks Signed-off-by: Ryan Fletcher --- appinfo/routes.php | 6 ++++++ lib/Controller/StackApiController.php | 12 ++++++++++++ lib/Service/StackService.php | 6 ++++++ 3 files changed, 24 insertions(+) diff --git a/appinfo/routes.php b/appinfo/routes.php index 26a2a4460..ba9ef9cdf 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -86,6 +86,7 @@ return [ ['name' => 'board_api#undo_delete', 'url' => '/api/v1.0/boards/{boardId}/undo_delete', 'verb' => 'POST'], ['name' => 'stack_api#index', 'url' => '/api/v1.0/boards/{boardId}/stacks', 'verb' => 'GET'], + ['name' => 'stack_api#getArchived', 'url' => '/api/v1.0/boards/{boardId}/stacks/archived', 'verb' => 'GET'], ['name' => 'stack_api#get', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}', 'verb' => 'GET'], ['name' => 'stack_api#create', 'url' => '/api/v1.0/boards/{boardId}/stacks', 'verb' => 'POST'], ['name' => 'stack_api#update', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}', 'verb' => 'PUT'], @@ -94,6 +95,11 @@ return [ ['name' => 'card_api#get', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}', 'verb' => 'GET'], ['name' => 'card_api#create', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards', 'verb' => 'POST'], ['name' => 'card_api#update', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}', 'verb' => 'PUT'], + ['name' => 'card_api#assignLabel', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/assignLabel', 'verb' => 'PUT'], + ['name' => 'card_api#removeLabel', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/removeLabel', 'verb' => 'PUT'], + ['name' => 'card_api#assignUser', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/assignUser', 'verb' => 'PUT'], + ['name' => 'card_api#unassignUser', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/unassignUser', 'verb' => 'PUT'], + ['name' => 'card_api#reorder', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}/reorder', 'verb' => 'PUT'], ['name' => 'card_api#delete', 'url' => '/api/v1.0/boards/{boardId}/stacks/{stackId}/cards/{cardId}', 'verb' => 'DELETE'], ['name' => 'label_api#get', 'url' => '/api/v1.0/boards/{boardId}/labels/{labelId}', 'verb' => 'GET'], diff --git a/lib/Controller/StackApiController.php b/lib/Controller/StackApiController.php index f5565633a..025843f18 100644 --- a/lib/Controller/StackApiController.php +++ b/lib/Controller/StackApiController.php @@ -119,4 +119,16 @@ class StackApiController extends ApiController { $stack = $this->stackService->delete($this->request->getParam('stackId')); return new DataResponse($stack, HTTP::STATUS_OK); } + + /** + * @NoAdminRequired + * @CORS + * @NoCSRFRequired + * + * get the stacks that have been archived. + */ + public function getArchived() { + $stacks = $this->stackService->findAllArchived($this->request->getParam('boardId')); + return new DataResponse($stacks, HTTP::STATUS_OK); + } } diff --git a/lib/Service/StackService.php b/lib/Service/StackService.php index 152c28258..e8bcacaf3 100644 --- a/lib/Service/StackService.php +++ b/lib/Service/StackService.php @@ -141,8 +141,14 @@ class StackService { * @param $boardId * @return array * @throws \OCA\Deck\NoPermissionException + * @throws BadRequestException */ public function findAllArchived($boardId) { + + if (is_numeric($boardId) === false) { + throw new BadRequestException('board id must be a number'); + } + $this->permissionService->checkPermission(null, $boardId, Acl::PERMISSION_READ); $stacks = $this->stackMapper->findAll($boardId); $labels = $this->labelMapper->getAssignedLabelsForBoard($boardId);