Merge pull-request #2535

This commit is contained in:
Frederic Guillot 2016-07-31 14:45:06 -04:00
commit dc5accae30
No known key found for this signature in database
GPG Key ID: 92D77191BA7FBC99
2 changed files with 176 additions and 0 deletions

View File

@ -695,3 +695,141 @@ Response example:
]
}
```
## getTaskMetadata
- Purpose: **Get all metadata related to a task by task unique id**
- Parameters:
- **task_id** (integer, required)
- Result on success: **list of metadata**
- Result on failure: **empty array**
Request example to fetch all the metada of a task:
```json
{
"jsonrpc": "2.0",
"method": "getTaskMetadata",
"id": 133280317,
"params": [
1
]
}
```
Response example:
```json
{
"jsonrpc": "2.0",
"id": 133280317,
"result": [
{
"metaKey1": "metaValue1",
"metaKey2": "metaValue2",
...
}
]
}
```
## getTaskMetadataByName
- Purpose: **Get metadata related to a task by task unique id and metakey (name)**
- Parameters:
- **task_id** (integer, required)
- **name** (string, required)
- Result on success: **metadata value**
- Result on failure: **empty string**
Request example to fetch metada of a task by name:
```json
{
"jsonrpc": "2.0",
"method": "getTaskMetadataByName",
"id": 133280317,
"params": [
1,
"metaKey1"
]
}
```
Response example:
```json
{
"jsonrpc": "2.0",
"id": 133280317,
"result": "metaValue1"
}
```
## saveTaskMetadata
- Purpose: **Save/update task metadata**
- Parameters:
- **task_id** (integer, required)
- **array("name" => "value")** (array, required)
- Result on success: **true**
- Result on failure: **false**
Request example to add/update metada of a task:
```json
{
"jsonrpc": "2.0",
"method": "saveTaskMetadata",
"id": 133280317,
"params": [
1,
{
"metaName" : "metaValue"
}
]
}
```
Response example:
```json
{
"jsonrpc": "2.0",
"id": 133280317,
"result": true
}
```
## removeTaskMetadata
- Purpose: **Remove task metadata by name**
- Parameters:
- **task_id** (integer, required)
- **name** (string, required)
- Result on success: **true**
- Result on failure: **false**
Request example to remove metada of a task by name:
```json
{
"jsonrpc": "2.0",
"method": "removeTaskMetadata",
"id": 133280317,
"params": [
1,
"metaKey1"
]
}
```
Response example:
```json
{
"jsonrpc": "2.0",
"id": 133280317,
"result": true
}
```

View File

@ -5,6 +5,7 @@ require_once __DIR__.'/BaseProcedureTest.php';
class TaskProcedureTest extends BaseProcedureTest
{
protected $projectName = 'My project to test tasks';
protected $metaKey = 'MyTestMetaKey';
public function testAll()
{
@ -15,8 +16,45 @@ class TaskProcedureTest extends BaseProcedureTest
$this->assertGetTaskByReference();
$this->assertGetAllTasks();
$this->assertOpenCloseTask();
$this->assertSaveTaskMetadata();
$this->assertGetTaskMetadata();
$this->assertGetTaskMetadataByName();
$this->assertRemoveTaskMetadata():
}
public function assertSaveTaskMetadata()
{
$createMetaKey = $this->app->saveTaskMetadata($this->taskId,array($this->metaKey => 'metaValue1'));
$this->assertTrue($createMetaKey);
}
public function assertGetTaskMetadata()
{
$createMetaKey = $this->app->saveTaskMetadata($this->taskId,array($this->metaKey => 'metaValue1'));
$this->assertTrue($createMetaKey,'Did not create metakey with success');
$metaData = $this->app->getTaskMetadata(($this->taskId);
$this->assertArrayHasKey($this->metaKey, $metaData);
$this->assertEquals('metaValue1', $metaData[$this->metaKey]);
}
public function assertGetTaskMetadataByName()
{
$createMetaKey = $this->app->saveTaskMetadata($this->taskId,array($this->metaKey => 'metaValue1'));
$this->assertTrue($createMetaKey,'Did not create metakey with success');
$metaValue = $this->app->getTaskMetadataByName($this->taskId,$this->metaKey);
$this->assertEquals('metaValue1', $metaValue, 'Did not return correct metadata value');
}
public function assertRemoveTaskMetadata()
{
$createMetaKey = $this->app->saveTaskMetadata($this->taskId,array($this->metaKey => 'metaValue1'));
$this->assertTrue($createMetaKey,'Did not create metakey with success');
$metaValue = $this->app->removeTaskMetadata($this->taskId,$this->metaKey);
$this->assertTrue($metaValue,'Did not remove metakey with success');
$metaValue = $this->app->getTaskMetadataByName($this->taskId,$this->metaKey);
$this->assertEquals('',$metaValue,'Did not return an empty string due to metadata being deleted');
}
public function assertUpdateTask()
{
$this->assertTrue($this->app->updateTask(array('id' => $this->taskId, 'color_id' => 'red')));