From 8b7a30ce4ff80a1b9b13f110fb3103e2cc68ccd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Sat, 29 Aug 2020 12:01:46 +0200 Subject: [PATCH] Expose ETag on single object get methods MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- lib/Controller/BoardApiController.php | 4 +++- lib/Controller/CardApiController.php | 4 +++- lib/Controller/StackApiController.php | 4 +++- lib/Db/Board.php | 4 ++++ lib/Db/Card.php | 4 ++++ lib/Db/Stack.php | 4 ++++ 6 files changed, 21 insertions(+), 3 deletions(-) diff --git a/lib/Controller/BoardApiController.php b/lib/Controller/BoardApiController.php index 647072353..d7afc6dcc 100644 --- a/lib/Controller/BoardApiController.php +++ b/lib/Controller/BoardApiController.php @@ -85,7 +85,9 @@ class BoardApiController extends ApiController { */ public function get() { $board = $this->boardService->find($this->request->getParam('boardId')); - return new DataResponse($board, HTTP::STATUS_OK); + $response = new DataResponse($board, HTTP::STATUS_OK); + $response->setETag($board->getEtag()); + return $response; } /** diff --git a/lib/Controller/CardApiController.php b/lib/Controller/CardApiController.php index c9f47fb93..04d0fe4c9 100644 --- a/lib/Controller/CardApiController.php +++ b/lib/Controller/CardApiController.php @@ -64,7 +64,9 @@ class CardApiController extends ApiController { */ public function get() { $card = $this->cardService->find($this->request->getParam('cardId')); - return new DataResponse($card, HTTP::STATUS_OK); + $response = new DataResponse($card, HTTP::STATUS_OK); + $response->setETag($card->getEtag()); + return $response; } /** diff --git a/lib/Controller/StackApiController.php b/lib/Controller/StackApiController.php index 61d4c6afe..d39bd7f5b 100644 --- a/lib/Controller/StackApiController.php +++ b/lib/Controller/StackApiController.php @@ -83,7 +83,9 @@ class StackApiController extends ApiController { */ public function get() { $stack = $this->stackService->find($this->request->getParam('stackId')); - return new DataResponse($stack, HTTP::STATUS_OK); + $response = new DataResponse($stack, HTTP::STATUS_OK); + $response->setETag($stack->getETag()); + return $response; } /** diff --git a/lib/Db/Board.php b/lib/Db/Board.php index eb5ec1d07..31caa5b27 100644 --- a/lib/Db/Board.php +++ b/lib/Db/Board.php @@ -81,4 +81,8 @@ class Board extends RelationalEntity { $this->acl[] = $a; } } + + public function getETag() { + return md5((string)$this->getLastModified()); + } } diff --git a/lib/Db/Card.php b/lib/Db/Card.php index 4e24719ba..fe91387ae 100644 --- a/lib/Db/Card.php +++ b/lib/Db/Card.php @@ -155,4 +155,8 @@ class Card extends RelationalEntity { public function getCalendarPrefix(): string { return 'card'; } + + public function getETag() { + return md5((string)$this->getLastModified()); + } } diff --git a/lib/Db/Stack.php b/lib/Db/Stack.php index 9790e6b7c..c414f52a8 100644 --- a/lib/Db/Stack.php +++ b/lib/Db/Stack.php @@ -65,4 +65,8 @@ class Stack extends RelationalEntity { public function getCalendarPrefix(): string { return 'stack'; } + + public function getETag() { + return md5((string)$this->getLastModified()); + } }