#1232 Api changes: new getMyOverdueTasks, new getOverdueTasksByProject, allow getProjectActivity for user-api
This commit is contained in:
@@ -7,6 +7,7 @@ New features:
|
|||||||
* Add swimlane description
|
* Add swimlane description
|
||||||
* New plugin system (alpha)
|
* New plugin system (alpha)
|
||||||
* Added Bahasa Indonesia translation
|
* Added Bahasa Indonesia translation
|
||||||
|
* Api changes: new getMyOverdueTasks, new getOverdueTasksByProject, allow getProjectActivity for user-api
|
||||||
|
|
||||||
Breaking changes:
|
Breaking changes:
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ abstract class Base extends \Core\Base
|
|||||||
'getMyActivityStream',
|
'getMyActivityStream',
|
||||||
'createMyPrivateProject',
|
'createMyPrivateProject',
|
||||||
'getMyProjectsList',
|
'getMyProjectsList',
|
||||||
|
'getMyOverdueTasks',
|
||||||
);
|
);
|
||||||
|
|
||||||
private $both_allowed_procedures = array(
|
private $both_allowed_procedures = array(
|
||||||
@@ -37,6 +38,8 @@ abstract class Base extends \Core\Base
|
|||||||
'createTask',
|
'createTask',
|
||||||
'updateTask',
|
'updateTask',
|
||||||
'getBoard',
|
'getBoard',
|
||||||
|
'getProjectActivity',
|
||||||
|
'getOverdueTasksByProject',
|
||||||
);
|
);
|
||||||
|
|
||||||
public function checkProcedurePermission($is_user, $procedure)
|
public function checkProcedurePermission($is_user, $procedure)
|
||||||
|
|||||||
@@ -52,4 +52,9 @@ class Me extends Base
|
|||||||
{
|
{
|
||||||
return $this->projectPermission->getMemberProjects($this->userSession->getId());
|
return $this->projectPermission->getMemberProjects($this->userSession->getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getMyOverdueTasks()
|
||||||
|
{
|
||||||
|
return $this->taskFinder->getOverdueTasksByUser($this->userSession->getId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ class Project extends Base
|
|||||||
|
|
||||||
public function getProjectActivity($project_id)
|
public function getProjectActivity($project_id)
|
||||||
{
|
{
|
||||||
|
$this->checkProjectPermission($project_id);
|
||||||
return $this->projectActivity->getProject($project_id);
|
return $this->projectActivity->getProject($project_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,12 @@ class Task extends Base
|
|||||||
return $this->taskFinder->getOverdueTasks();
|
return $this->taskFinder->getOverdueTasks();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getOverdueTasksByProject($project_id)
|
||||||
|
{
|
||||||
|
$this->checkProjectPermission($project_id);
|
||||||
|
return $this->taskFinder->getOverdueTasksByProject($project_id);
|
||||||
|
}
|
||||||
|
|
||||||
public function openTask($task_id)
|
public function openTask($task_id)
|
||||||
{
|
{
|
||||||
$this->checkTaskPermission($task_id);
|
$this->checkTaskPermission($task_id);
|
||||||
|
|||||||
@@ -207,6 +207,70 @@ class TaskFinder extends Base
|
|||||||
return $tasks;
|
return $tasks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a list of overdue tasks by project
|
||||||
|
*
|
||||||
|
* @access public
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getOverdueTasksByProject($project_id)
|
||||||
|
{
|
||||||
|
$tasks = $this->db->table(Task::TABLE)
|
||||||
|
->columns(
|
||||||
|
Task::TABLE.'.id',
|
||||||
|
Task::TABLE.'.title',
|
||||||
|
Task::TABLE.'.date_due',
|
||||||
|
Task::TABLE.'.project_id',
|
||||||
|
Task::TABLE.'.creator_id',
|
||||||
|
Task::TABLE.'.owner_id',
|
||||||
|
Project::TABLE.'.name AS project_name',
|
||||||
|
User::TABLE.'.username AS assignee_username',
|
||||||
|
User::TABLE.'.name AS assignee_name'
|
||||||
|
)
|
||||||
|
->join(Project::TABLE, 'id', 'project_id')
|
||||||
|
->join(User::TABLE, 'id', 'owner_id')
|
||||||
|
->eq(Project::TABLE.'.is_active', 1)
|
||||||
|
->eq(Task::TABLE.'.project_id', $project_id)
|
||||||
|
->eq(Task::TABLE.'.is_active', 1)
|
||||||
|
->neq(Task::TABLE.'.date_due', 0)
|
||||||
|
->lte(Task::TABLE.'.date_due', mktime(23, 59, 59))
|
||||||
|
->findAll();
|
||||||
|
|
||||||
|
return $tasks;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a list of overdue tasks by user
|
||||||
|
*
|
||||||
|
* @access public
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getOverdueTasksByUser($user_id)
|
||||||
|
{
|
||||||
|
$tasks = $this->db->table(Task::TABLE)
|
||||||
|
->columns(
|
||||||
|
Task::TABLE.'.id',
|
||||||
|
Task::TABLE.'.title',
|
||||||
|
Task::TABLE.'.date_due',
|
||||||
|
Task::TABLE.'.project_id',
|
||||||
|
Task::TABLE.'.creator_id',
|
||||||
|
Task::TABLE.'.owner_id',
|
||||||
|
Project::TABLE.'.name AS project_name',
|
||||||
|
User::TABLE.'.username AS assignee_username',
|
||||||
|
User::TABLE.'.name AS assignee_name'
|
||||||
|
)
|
||||||
|
->join(Project::TABLE, 'id', 'project_id')
|
||||||
|
->join(User::TABLE, 'id', 'owner_id')
|
||||||
|
->eq(Project::TABLE.'.is_active', 1)
|
||||||
|
->eq(Task::TABLE.'.owner_id', $user_id)
|
||||||
|
->eq(Task::TABLE.'.is_active', 1)
|
||||||
|
->neq(Task::TABLE.'.date_due', 0)
|
||||||
|
->lte(Task::TABLE.'.date_due', mktime(23, 59, 59))
|
||||||
|
->findAll();
|
||||||
|
|
||||||
|
return $tasks;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get project id for a given task
|
* Get project id for a given task
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -84,6 +84,8 @@ If there is an authentication error, you will receive the HTTP status code `401
|
|||||||
- createTask
|
- createTask
|
||||||
- updateTask
|
- updateTask
|
||||||
- getBoard
|
- getBoard
|
||||||
|
- getProjectActivity
|
||||||
|
- getMyOverdueTasks
|
||||||
|
|
||||||
### Custom HTTP header
|
### Custom HTTP header
|
||||||
|
|
||||||
@@ -2448,6 +2450,55 @@ Response example:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### getOverdueTasksByProject
|
||||||
|
|
||||||
|
- Purpose: **Get all overdue tasks for a special project**
|
||||||
|
- Result on success: **List of tasks**
|
||||||
|
- Result on failure: **false**
|
||||||
|
|
||||||
|
Request example to fetch all tasks on the board:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"jsonrpc": "2.0",
|
||||||
|
"method": "getOverdueTasksByProject",
|
||||||
|
"id": 133280317,
|
||||||
|
"params": {
|
||||||
|
"project_id": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Response example:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"jsonrpc": "2.0",
|
||||||
|
"id": 133280317,
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"title": "Task #1",
|
||||||
|
"date_due": "1409961789",
|
||||||
|
"project_id": "1",
|
||||||
|
"project_name": "Test",
|
||||||
|
"assignee_username":"admin",
|
||||||
|
"assignee_name": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "2",
|
||||||
|
"title": "Test",
|
||||||
|
"date_due": "1409962115",
|
||||||
|
"project_id": "1",
|
||||||
|
"project_name": "Test",
|
||||||
|
"assignee_username":"admin",
|
||||||
|
"assignee_name": null
|
||||||
|
},
|
||||||
|
...
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### updateTask
|
### updateTask
|
||||||
|
|
||||||
- Purpose: **Update a task**
|
- Purpose: **Update a task**
|
||||||
@@ -4366,3 +4417,48 @@ Response example:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
### getMyOverdueTasks
|
||||||
|
|
||||||
|
- Purpose: **Get my overdue tasks**
|
||||||
|
- Result on success: **List of tasks**
|
||||||
|
- Result on failure: **false**
|
||||||
|
|
||||||
|
Request example to fetch all tasks on the board:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"jsonrpc": "2.0",
|
||||||
|
"method": "getMyOverdueTasks",
|
||||||
|
"id": 133280317
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Response example:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"jsonrpc": "2.0",
|
||||||
|
"id": 133280317,
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"title": "Task #1",
|
||||||
|
"date_due": "1409961789",
|
||||||
|
"project_id": "1",
|
||||||
|
"project_name": "Test",
|
||||||
|
"assignee_username":"admin",
|
||||||
|
"assignee_name": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "2",
|
||||||
|
"title": "Test",
|
||||||
|
"date_due": "1409962115",
|
||||||
|
"project_id": "1",
|
||||||
|
"project_name": "Test",
|
||||||
|
"assignee_username":"admin",
|
||||||
|
"assignee_name": null
|
||||||
|
},
|
||||||
|
...
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user