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:
committed by
Julius Härtl
parent
f2795f120b
commit
ef4ce31c47
@@ -74,10 +74,11 @@ class StackController extends Controller {
|
||||
* @param $title
|
||||
* @param $boardId
|
||||
* @param $order
|
||||
* @param $deletedAt
|
||||
* @return \OCP\AppFramework\Db\Entity
|
||||
*/
|
||||
public function update($id, $title, $boardId, $order) {
|
||||
return $this->stackService->update($id, $title, $boardId, $order);
|
||||
public function update($id, $title, $boardId, $order, $deletedAt) {
|
||||
return $this->stackService->update($id, $title, $boardId, $order, $deletedAt);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -98,4 +99,14 @@ class StackController extends Controller {
|
||||
public function delete($stackId) {
|
||||
return $this->stackService->delete($stackId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @param $boardId
|
||||
* @return \OCP\AppFramework\Db\Entity
|
||||
*/
|
||||
public function deleted($boardId) {
|
||||
return $this->stackService->fetchDeleted($boardId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -27,12 +27,14 @@ class Stack extends RelationalEntity {
|
||||
|
||||
protected $title;
|
||||
protected $boardId;
|
||||
protected $deletedAt;
|
||||
protected $cards = array();
|
||||
protected $order;
|
||||
|
||||
public function __construct() {
|
||||
$this->addType('id', 'integer');
|
||||
$this->addType('boardId', 'integer');
|
||||
$this->addType('deletedAt', 'integer');
|
||||
$this->addType('order', 'integer');
|
||||
}
|
||||
|
||||
@@ -47,4 +49,4 @@ class Stack extends RelationalEntity {
|
||||
}
|
||||
return $json;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,10 +51,17 @@ class StackMapper extends DeckMapper implements IPermissionMapper {
|
||||
|
||||
|
||||
public function findAll($boardId, $limit = null, $offset = null) {
|
||||
$sql = 'SELECT * FROM `*PREFIX*deck_stacks` WHERE `board_id` = ? ORDER BY `order`';
|
||||
$sql = 'SELECT * FROM `*PREFIX*deck_stacks` WHERE `board_id` = ? AND deleted_at = 0 ORDER BY `order`';
|
||||
return $this->findEntities($sql, [$boardId], $limit, $offset);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function findDeleted($boardId, $limit = null, $offset = null) {
|
||||
$sql = 'SELECT * FROM `*PREFIX*deck_stacks` s
|
||||
WHERE `s`.`board_id` = ? AND NOT s.deleted_at = 0';
|
||||
return $this->findEntities($sql, [$boardId], $limit, $offset);
|
||||
}
|
||||
|
||||
|
||||
public function delete(Entity $entity) {
|
||||
// delete cards on stack
|
||||
@@ -73,4 +80,4 @@ class StackMapper extends DeckMapper implements IPermissionMapper {
|
||||
$entity = $this->find($stackId);
|
||||
return $entity->getBoardId();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user