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()); + } }