From b5cf3709c2a2f83a0444f590451f851356cb520f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Sat, 1 Sep 2018 14:26:10 +0200 Subject: [PATCH] Emit activity events in StackService MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- lib/Service/StackService.php | 48 ++++++++++++------------------------ 1 file changed, 16 insertions(+), 32 deletions(-) diff --git a/lib/Service/StackService.php b/lib/Service/StackService.php index 4f8e4be24..44d08c805 100644 --- a/lib/Service/StackService.php +++ b/lib/Service/StackService.php @@ -23,6 +23,8 @@ namespace OCA\Deck\Service; +use OCA\Deck\Activity\ActivityManager; +use OCA\Deck\Activity\ChangeSet; use OCA\Deck\Db\Acl; use OCA\Deck\Db\CardMapper; use OCA\Deck\Db\BoardMapper; @@ -32,7 +34,6 @@ use OCA\Deck\Db\Stack; use OCA\Deck\Db\StackMapper; use OCA\Deck\StatusException; use OCA\Deck\BadRequestException; -use OCP\Activity\IManager; class StackService { @@ -58,7 +59,7 @@ class StackService { CardService $cardService, AssignedUsersMapper $assignedUsersMapper, AttachmentService $attachmentService, - IManager $activityManager + ActivityManager $activityManager ) { $this->stackMapper = $stackMapper; $this->boardMapper = $boardMapper; @@ -199,33 +200,10 @@ class StackService { $stack->setTitle($title); $stack->setBoardId($boardId); $stack->setOrder($order); - $result = $this->stackMapper->insert($stack); - - $board = $this->boardMapper->find($boardId); - $event = $this->activityManager->generateEvent(); - $event->setApp('deck') - ->setType('deck_own_boards') - ->setAffectedUser($board->getOwner()) - ->setAuthor($board->getOwner()) - ->setObject('stack', $result->getId()) - ->setSubject('foo') - ->setTimestamp(time()); - /*->setSubject('{actor} created a new stack {stack} on {board}', - [ - 'actor' => $event->getAuthor(), - 'stack' => [ - 'id' => (int) $result->getId(), - //'uri' => $calendarData['uri'], - 'name' => $stack->getTitle(), - ], - 'board' => [ - 'id' => (int) $boardId, - 'name' => $board->getTitle(), - ], - ]);*/ - - $this->activityManager->publish($event); - return $result; + $stack = $this->stackMapper->insert($stack); + $event = $this->activityManager->createEvent(ActivityManager::DECK_OBJECT_BOARD, $stack, ActivityManager::SUBJECT_STACK_CREATE); + $this->activityManager->sendToUsers($event); + return $stack; } /** @@ -246,10 +224,12 @@ class StackService { $stack = $this->stackMapper->find($id); $stack->setDeletedAt(time()); - $this->stackMapper->update($stack); + $stack = $this->stackMapper->update($stack); + + $event = $this->activityManager->createEvent(ActivityManager::DECK_OBJECT_BOARD, $stack, ActivityManager::SUBJECT_STACK_DELETE); + $this->activityManager->sendToUsers($event); $this->enrichStackWithCards($stack); - return $stack; } @@ -289,11 +269,15 @@ class StackService { throw new StatusException('Operation not allowed. This board is archived.'); } $stack = $this->stackMapper->find($id); + $changes = new ChangeSet($stack); $stack->setTitle($title); $stack->setBoardId($boardId); $stack->setOrder($order); $stack->setDeletedAt($deletedAt); - return $this->stackMapper->update($stack); + $changes->setAfter($stack); + $stack = $this->stackMapper->update($stack); + $this->activityManager->triggerUpdateEvents(ActivityManager::DECK_OBJECT_BOARD, $changes->getAfter(), ActivityManager::SUBJECT_STACK_UPDATE, $changes->getBefore()); + return $stack; } /**