-
Notifications
You must be signed in to change notification settings - Fork 323
Expand file tree
/
Copy pathCardController.php
More file actions
131 lines (108 loc) · 3.69 KB
/
CardController.php
File metadata and controls
131 lines (108 loc) · 3.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Deck\Controller;
use OCA\Deck\Db\Assignment;
use OCA\Deck\Db\Card;
use OCA\Deck\Model\OptionalNullableValue;
use OCA\Deck\Service\AssignmentService;
use OCA\Deck\Service\CardService;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\IRequest;
class CardController extends Controller {
public function __construct(
$appName,
IRequest $request,
private CardService $cardService,
private AssignmentService $assignmentService,
private $userId,
) {
parent::__construct($appName, $request);
}
#[NoAdminRequired]
public function read(int $cardId): Card {
return $this->cardService->find($cardId);
}
/**
* @return Card[]
*/
#[NoAdminRequired]
public function reorder(int $cardId, int $stackId, int $order): array {
return $this->cardService->reorder($cardId, $stackId, $order);
}
#[NoAdminRequired]
public function rename(int $cardId, string $title): Card {
return $this->cardService->rename($cardId, $title);
}
#[NoAdminRequired]
public function create(string $title, int $stackId, string $type = 'plain', int $order = 999, string $description = '', $duedate = null, array $labels = [], array $users = [], ?string $color = null): Card {
$card = $this->cardService->create($title, $stackId, $type, $order, $this->userId, $description, $duedate, $color);
foreach ($labels as $label) {
$this->assignLabel($card->getId(), $label);
}
foreach ($users as $user) {
$this->assignmentService->assignUser($card->getId(), $user['id'], $user['type']);
}
return $card;
}
/**
* @param $duedate
*/
#[NoAdminRequired]
public function update(int $id, string $title, int $stackId, string $type, int $order, string $description, $duedate, $deletedAt, $archived = null, ?string $color = null): Card {
$done = array_key_exists('done', $this->request->getParams())
? new OptionalNullableValue($this->request->getParam('done', null))
: null;
return $this->cardService->update($id, $title, $stackId, $type, $this->userId, $description, $order, $duedate, $deletedAt, $archived, $done, $color);
}
#[NoAdminRequired]
public function clone(int $cardId, ?int $targetStackId = null): Card {
return $this->cardService->cloneCard($cardId, $targetStackId);
}
#[NoAdminRequired]
public function delete(int $cardId): Card {
return $this->cardService->delete($cardId);
}
/**
* @return Card[]
*/
#[NoAdminRequired]
public function deleted(int $boardId): array {
return $this->cardService->fetchDeleted($boardId);
}
#[NoAdminRequired]
public function archive($cardId) {
return $this->cardService->archive($cardId);
}
#[NoAdminRequired]
public function unarchive(int $cardId): Card {
return $this->cardService->unarchive($cardId);
}
#[NoAdminRequired]
public function done(int $cardId): Card {
return $this->cardService->done($cardId);
}
#[NoAdminRequired]
public function undone(int $cardId): Card {
return $this->cardService->undone($cardId);
}
#[NoAdminRequired]
public function assignLabel(int $cardId, int $labelId): void {
$this->cardService->assignLabel($cardId, $labelId);
}
#[NoAdminRequired]
public function removeLabel(int $cardId, int $labelId): void {
$this->cardService->removeLabel($cardId, $labelId);
}
#[NoAdminRequired]
public function assignUser(int $cardId, string $userId, int $type = 0): Assignment {
return $this->assignmentService->assignUser($cardId, $userId, $type);
}
#[NoAdminRequired]
public function unassignUser(int $cardId, string $userId, int $type = 0): Assignment {
return $this->assignmentService->unassignUser($cardId, $userId, $type);
}
}