User-Api: add getMyPorjects (#1233)

This commit is contained in:
Timo Litzbarski
2015-09-18 14:18:34 +00:00
parent 55ca46ad75
commit 1fa72295f2
5 changed files with 68 additions and 1 deletions

View File

@@ -7,7 +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 * Api changes: new getMyOverdueTasks, new getOverdueTasksByProject, allow getProjectActivity for user-api, new GetMyProjects
Breaking changes: Breaking changes:

View File

@@ -20,6 +20,7 @@ abstract class Base extends \Core\Base
'createMyPrivateProject', 'createMyPrivateProject',
'getMyProjectsList', 'getMyProjectsList',
'getMyOverdueTasks', 'getMyOverdueTasks',
'getMyProjects',
); );
private $both_allowed_procedures = array( private $both_allowed_procedures = array(

View File

@@ -57,4 +57,9 @@ class Me extends Base
{ {
return $this->taskFinder->getOverdueTasksByUser($this->userSession->getId()); return $this->taskFinder->getOverdueTasksByUser($this->userSession->getId());
} }
public function getMyProjects()
{
return $this->formatProjects($this->project->getAllByIds($this->projectPermission->getActiveMemberProjectIds($this->userSession->getId())));
}
} }

View File

@@ -172,6 +172,18 @@ class Project extends Base
{ {
return $this->db->table(self::TABLE)->asc('name')->findAll(); return $this->db->table(self::TABLE)->asc('name')->findAll();
} }
/**
* Get all projects with given Ids
*
* @access public
* @param integer[] $project_ids Projects id
* @return array
*/
public function getAllByIds($project_ids)
{
return $this->db->table(self::TABLE)->in('id', $project_ids)->asc('name')->findAll();
}
/** /**
* Get all project ids * Get all project ids

View File

@@ -69,6 +69,7 @@ If there is an authentication error, you will receive the HTTP status code `401
- getMyActivityStream - getMyActivityStream
- createMyPrivateProject - createMyPrivateProject
- getMyProjectsList - getMyProjectsList
- getMyProjects
- getTimezone - getTimezone
- getVersion - getVersion
- getDefaultTaskColor - getDefaultTaskColor
@@ -4462,3 +4463,51 @@ Response example:
] ]
} }
``` ```
### getMyProjects
- Purpose: **Get projects of connected user with full details**
- Parameters:
- **none**
- Result on success: **List of projects with details**
- Result on failure: **false**
Request example:
```json
{
"jsonrpc": "2.0",
"method": "getmyProjects",
"id": 2134420212
}
```
Response example:
```json
{
"jsonrpc": "2.0",
"id": 2134420212,
"result": [
{
"id": "1",
"name": "API test",
"is_active": "1",
"token": "",
"last_modified": "1436119570",
"is_public": "0",
"is_private": "0",
"is_everybody_allowed": "0",
"default_swimlane": "Default swimlane",
"show_default_swimlane": "1",
"description": null,
"identifier": "",
"url": {
"board": "http:\/\/127.0.0.1:8000\/?controller=board&action=show&project_id=1",
"calendar": "http:\/\/127.0.0.1:8000\/?controller=calendar&action=show&project_id=1",
"list": "http:\/\/127.0.0.1:8000\/?controller=listing&action=show&project_id=1"
}
}
]
}
```