refactoring and stack undo delete early wip

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

stack soft delete done

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

stack undo delete done

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>

stack undo: code review remarks and fixes

Signed-off-by: Manuel Arno Korfmann <manu@korfmann.info>
This commit is contained in:
Manuel Arno Korfmann
2018-07-16 00:09:43 +02:00
committed by Julius Härtl
parent f2795f120b
commit ef4ce31c47
13 changed files with 164 additions and 118 deletions

View File

@@ -25,6 +25,7 @@ namespace OCA\Deck\Service;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\LabelMapper;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\Stack;
@@ -38,6 +39,7 @@ class StackService {
private $stackMapper;
private $cardMapper;
private $boardMapper;
private $labelMapper;
private $permissionService;
private $boardService;
@@ -46,6 +48,7 @@ class StackService {
public function __construct(
StackMapper $stackMapper,
BoardMapper $boardMapper,
CardMapper $cardMapper,
LabelMapper $labelMapper,
PermissionService $permissionService,
@@ -54,6 +57,7 @@ class StackService {
AttachmentService $attachmentService
) {
$this->stackMapper = $stackMapper;
$this->boardMapper = $boardMapper;
$this->cardMapper = $cardMapper;
$this->labelMapper = $labelMapper;
$this->permissionService = $permissionService;
@@ -81,6 +85,11 @@ class StackService {
return $stacks;
}
public function fetchDeleted($boardId) {
$this->permissionService->checkPermission($this->boardMapper, $boardId, Acl::PERMISSION_READ);
return $this->stackMapper->findDeleted($boardId);
}
public function findAllArchived($boardId) {
$this->permissionService->checkPermission(null, $boardId, Acl::PERMISSION_READ);
$stacks = $this->stackMapper->findAll($boardId);
@@ -115,10 +124,16 @@ class StackService {
public function delete($id) {
$this->permissionService->checkPermission($this->stackMapper, $id, Acl::PERMISSION_MANAGE);
return $this->stackMapper->delete($this->stackMapper->find($id));
$stack = $this->stackMapper->find($id);
$stack->setDeletedAt(time());
$this->stackMapper->update($stack);
return $stack;
}
public function update($id, $title, $boardId, $order) {
public function update($id, $title, $boardId, $order, $deletedAt) {
$this->permissionService->checkPermission($this->stackMapper, $id, Acl::PERMISSION_MANAGE);
if ($this->boardService->isArchived($this->stackMapper, $id)) {
throw new StatusException('Operation not allowed. This board is archived.');
@@ -127,6 +142,7 @@ class StackService {
$stack->setTitle($title);
$stack->setBoardId($boardId);
$stack->setOrder($order);
$stack->setDeletedAt($deletedAt);
return $this->stackMapper->update($stack);
}