diff options
Diffstat (limited to 'app/Api/Procedure')
-rw-r--r-- | app/Api/Procedure/ActionProcedure.php | 6 | ||||
-rw-r--r-- | app/Api/Procedure/BoardProcedure.php | 3 | ||||
-rw-r--r-- | app/Api/Procedure/MeProcedure.php | 2 | ||||
-rw-r--r-- | app/Api/Procedure/ProjectPermissionProcedure.php | 4 | ||||
-rw-r--r-- | app/Api/Procedure/TagProcedure.php | 44 | ||||
-rw-r--r-- | app/Api/Procedure/TaskMetadataProcedure.php | 38 | ||||
-rw-r--r-- | app/Api/Procedure/TaskProcedure.php | 16 | ||||
-rw-r--r-- | app/Api/Procedure/TaskTagProcedure.php | 26 |
8 files changed, 124 insertions, 15 deletions
diff --git a/app/Api/Procedure/ActionProcedure.php b/app/Api/Procedure/ActionProcedure.php index 4043dbb9..72fb9bbe 100644 --- a/app/Api/Procedure/ActionProcedure.php +++ b/app/Api/Procedure/ActionProcedure.php @@ -15,17 +15,17 @@ class ActionProcedure extends BaseProcedure { public function getAvailableActions() { - return $this->actionManager->getAvailableActions(); + return (object) $this->actionManager->getAvailableActions(); } public function getAvailableActionEvents() { - return $this->eventManager->getAll(); + return (object) $this->eventManager->getAll(); } public function getCompatibleActionEvents($action_name) { - return $this->actionManager->getCompatibleEvents($action_name); + return (object) $this->actionManager->getCompatibleEvents($action_name); } public function removeAction($action_id) diff --git a/app/Api/Procedure/BoardProcedure.php b/app/Api/Procedure/BoardProcedure.php index 674b5466..69daaf09 100644 --- a/app/Api/Procedure/BoardProcedure.php +++ b/app/Api/Procedure/BoardProcedure.php @@ -3,7 +3,6 @@ namespace Kanboard\Api\Procedure; use Kanboard\Api\Authorization\ProjectAuthorization; -use Kanboard\Formatter\BoardFormatter; /** * Board API controller @@ -17,7 +16,7 @@ class BoardProcedure extends BaseProcedure { ProjectAuthorization::getInstance($this->container)->check($this->getClassName(), 'getBoard', $project_id); - return BoardFormatter::getInstance($this->container) + return $this->boardFormatter ->withProjectId($project_id) ->withQuery($this->taskFinderModel->getExtendedQuery()) ->format(); diff --git a/app/Api/Procedure/MeProcedure.php b/app/Api/Procedure/MeProcedure.php index e59e6522..71d5555b 100644 --- a/app/Api/Procedure/MeProcedure.php +++ b/app/Api/Procedure/MeProcedure.php @@ -54,7 +54,7 @@ class MeProcedure extends BaseProcedure public function getMyProjectsList() { - return $this->projectUserRoleModel->getProjectsByUser($this->userSession->getId()); + return (object) $this->projectUserRoleModel->getProjectsByUser($this->userSession->getId()); } public function getMyOverdueTasks() diff --git a/app/Api/Procedure/ProjectPermissionProcedure.php b/app/Api/Procedure/ProjectPermissionProcedure.php index e22e1d62..1938a067 100644 --- a/app/Api/Procedure/ProjectPermissionProcedure.php +++ b/app/Api/Procedure/ProjectPermissionProcedure.php @@ -16,13 +16,13 @@ class ProjectPermissionProcedure extends BaseProcedure public function getProjectUsers($project_id) { ProjectAuthorization::getInstance($this->container)->check($this->getClassName(), 'getProjectUsers', $project_id); - return $this->projectUserRoleModel->getAllUsers($project_id); + return (object) $this->projectUserRoleModel->getAllUsers($project_id); } public function getAssignableUsers($project_id, $prepend_unassigned = false) { ProjectAuthorization::getInstance($this->container)->check($this->getClassName(), 'getAssignableUsers', $project_id); - return $this->projectUserRoleModel->getAssignableUsersList($project_id, $prepend_unassigned); + return (object) $this->projectUserRoleModel->getAssignableUsersList($project_id, $prepend_unassigned); } public function addProjectUser($project_id, $user_id, $role = Role::PROJECT_MEMBER) diff --git a/app/Api/Procedure/TagProcedure.php b/app/Api/Procedure/TagProcedure.php new file mode 100644 index 00000000..f1c06d01 --- /dev/null +++ b/app/Api/Procedure/TagProcedure.php @@ -0,0 +1,44 @@ +<?php + +namespace Kanboard\Api\Procedure; + +use Kanboard\Api\Authorization\ProjectAuthorization; +use Kanboard\Api\Authorization\TagAuthorization; + +/** + * Class TagProcedure + * + * @package Kanboard\Api\Procedure + * @author Frederic Guillot + */ +class TagProcedure extends BaseProcedure +{ + public function getAllTags() + { + return $this->tagModel->getAll(); + } + + public function getTagsByProject($project_id) + { + ProjectAuthorization::getInstance($this->container)->check($this->getClassName(), 'getTagsByProject', $project_id); + return $this->tagModel->getAllByProject($project_id); + } + + public function createTag($project_id, $tag) + { + ProjectAuthorization::getInstance($this->container)->check($this->getClassName(), 'createTag', $project_id); + return $this->tagModel->findOrCreateTag($project_id, $tag); + } + + public function updateTag($tag_id, $tag) + { + TagAuthorization::getInstance($this->container)->check($this->getClassName(), 'updateTag', $tag_id); + return $this->tagModel->update($tag_id, $tag); + } + + public function removeTag($tag_id) + { + TagAuthorization::getInstance($this->container)->check($this->getClassName(), 'removeTag', $tag_id); + return $this->tagModel->remove($tag_id); + } +} diff --git a/app/Api/Procedure/TaskMetadataProcedure.php b/app/Api/Procedure/TaskMetadataProcedure.php new file mode 100644 index 00000000..ab6c32d0 --- /dev/null +++ b/app/Api/Procedure/TaskMetadataProcedure.php @@ -0,0 +1,38 @@ +<?php + +namespace Kanboard\Api\Procedure; + +use Kanboard\Api\Authorization\TaskAuthorization; + +/** + * Class TaskMetadataProcedure + * + * @package Kanboard\Api\Procedure + * @author Frederic Guillot + */ +class TaskMetadataProcedure extends BaseProcedure +{ + public function getTaskMetadata($task_id) + { + TaskAuthorization::getInstance($this->container)->check($this->getClassName(), 'getTask', $task_id); + return (object) $this->taskMetadataModel->getAll($task_id); + } + + public function getTaskMetadataByName($task_id, $name) + { + TaskAuthorization::getInstance($this->container)->check($this->getClassName(), 'getTask', $task_id); + return $this->taskMetadataModel->get($task_id, $name); + } + + public function saveTaskMetadata($task_id, array $values) + { + TaskAuthorization::getInstance($this->container)->check($this->getClassName(), 'updateTask', $task_id); + return $this->taskMetadataModel->save($task_id, $values); + } + + public function removeTaskMetadata($task_id, $name) + { + TaskAuthorization::getInstance($this->container)->check($this->getClassName(), 'updateTask', $task_id); + return $this->taskMetadataModel->remove($task_id, $name); + } +} diff --git a/app/Api/Procedure/TaskProcedure.php b/app/Api/Procedure/TaskProcedure.php index 8661deef..af67f3de 100644 --- a/app/Api/Procedure/TaskProcedure.php +++ b/app/Api/Procedure/TaskProcedure.php @@ -87,12 +87,12 @@ class TaskProcedure extends BaseProcedure } public function createTask($title, $project_id, $color_id = '', $column_id = 0, $owner_id = 0, $creator_id = 0, - $date_due = '', $description = '', $category_id = 0, $score = 0, $swimlane_id = 0, $priority = 0, - $recurrence_status = 0, $recurrence_trigger = 0, $recurrence_factor = 0, $recurrence_timeframe = 0, - $recurrence_basedate = 0, $reference = '') + $date_due = '', $description = '', $category_id = 0, $score = 0, $swimlane_id = 0, $priority = 0, + $recurrence_status = 0, $recurrence_trigger = 0, $recurrence_factor = 0, $recurrence_timeframe = 0, + $recurrence_basedate = 0, $reference = '', array $tags = array()) { ProjectAuthorization::getInstance($this->container)->check($this->getClassName(), 'createTask', $project_id); - + if ($owner_id !== 0 && ! $this->projectPermissionModel->isAssignable($project_id, $owner_id)) { return false; } @@ -120,6 +120,7 @@ class TaskProcedure extends BaseProcedure 'recurrence_basedate' => $recurrence_basedate, 'reference' => $reference, 'priority' => $priority, + 'tags' => $tags, ); list($valid, ) = $this->taskValidator->validateCreation($values); @@ -128,9 +129,9 @@ class TaskProcedure extends BaseProcedure } public function updateTask($id, $title = null, $color_id = null, $owner_id = null, - $date_due = null, $description = null, $category_id = null, $score = null, $priority = null, - $recurrence_status = null, $recurrence_trigger = null, $recurrence_factor = null, - $recurrence_timeframe = null, $recurrence_basedate = null, $reference = null) + $date_due = null, $description = null, $category_id = null, $score = null, $priority = null, + $recurrence_status = null, $recurrence_trigger = null, $recurrence_factor = null, + $recurrence_timeframe = null, $recurrence_basedate = null, $reference = null, $tags = null) { TaskAuthorization::getInstance($this->container)->check($this->getClassName(), 'updateTask', $id); $project_id = $this->taskFinderModel->getProjectId($id); @@ -159,6 +160,7 @@ class TaskProcedure extends BaseProcedure 'recurrence_basedate' => $recurrence_basedate, 'reference' => $reference, 'priority' => $priority, + 'tags' => $tags, )); list($valid) = $this->taskValidator->validateApiModification($values); diff --git a/app/Api/Procedure/TaskTagProcedure.php b/app/Api/Procedure/TaskTagProcedure.php new file mode 100644 index 00000000..55dac8d4 --- /dev/null +++ b/app/Api/Procedure/TaskTagProcedure.php @@ -0,0 +1,26 @@ +<?php + +namespace Kanboard\Api\Procedure; + +use Kanboard\Api\Authorization\TaskAuthorization; + +/** + * Class TaskTagProcedure + * + * @package Kanboard\Api\Procedure + * @author Frederic Guillot + */ +class TaskTagProcedure extends BaseProcedure +{ + public function setTaskTags($project_id, $task_id, array $tags) + { + TaskAuthorization::getInstance($this->container)->check($this->getClassName(), 'setTaskTags', $task_id); + return $this->taskTagModel->save($project_id, $task_id, $tags); + } + + public function getTaskTags($task_id) + { + TaskAuthorization::getInstance($this->container)->check($this->getClassName(), 'getTaskTags', $task_id); + return (object) $this->taskTagModel->getList($task_id); + } +} |