Move API calls for task metadata to a separate class
This commit is contained in:
parent
9f2ef84cd0
commit
86c950743f
|
|
@ -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 $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);
|
||||
}
|
||||
}
|
||||
|
|
@ -6,7 +6,6 @@ use Kanboard\Api\Authorization\ProjectAuthorization;
|
|||
use Kanboard\Api\Authorization\TaskAuthorization;
|
||||
use Kanboard\Filter\TaskProjectFilter;
|
||||
use Kanboard\Model\TaskModel;
|
||||
use Kanboard\Model\TaskMetadataModel;
|
||||
|
||||
/**
|
||||
* Task API controller
|
||||
|
|
@ -16,30 +15,6 @@ use Kanboard\Model\TaskMetadataModel;
|
|||
*/
|
||||
class TaskProcedure extends BaseProcedure
|
||||
{
|
||||
public function getTaskMetadata($task_id)
|
||||
{
|
||||
TaskAuthorization::getInstance($this->container)->check($this->getClassName(), 'getTask', $task_id);
|
||||
return $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);
|
||||
}
|
||||
|
||||
public function searchTasks($project_id, $query)
|
||||
{
|
||||
ProjectAuthorization::getInstance($this->container)->check($this->getClassName(), 'searchTasks', $project_id);
|
||||
|
|
@ -117,7 +92,7 @@ class TaskProcedure extends BaseProcedure
|
|||
$recurrence_basedate = 0, $reference = '')
|
||||
{
|
||||
ProjectAuthorization::getInstance($this->container)->check($this->getClassName(), 'createTask', $project_id);
|
||||
|
||||
|
||||
if ($owner_id !== 0 && ! $this->projectPermissionModel->isAssignable($project_id, $owner_id)) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ use Kanboard\Api\Procedure\ProjectPermissionProcedure;
|
|||
use Kanboard\Api\Procedure\SubtaskProcedure;
|
||||
use Kanboard\Api\Procedure\SubtaskTimeTrackingProcedure;
|
||||
use Kanboard\Api\Procedure\SwimlaneProcedure;
|
||||
use Kanboard\Api\Procedure\TaskMetadataProcedure;
|
||||
use Kanboard\Api\Procedure\TaskProcedure;
|
||||
use Kanboard\Api\Procedure\TaskLinkProcedure;
|
||||
use Kanboard\Api\Procedure\UserProcedure;
|
||||
|
|
@ -69,6 +70,7 @@ class ApiProvider implements ServiceProviderInterface
|
|||
->withObject(new TaskProcedure($container))
|
||||
->withObject(new TaskLinkProcedure($container))
|
||||
->withObject(new TaskExternalLinkProcedure($container))
|
||||
->withObject(new TaskMetadataProcedure($container))
|
||||
->withObject(new UserProcedure($container))
|
||||
->withObject(new GroupProcedure($container))
|
||||
->withObject(new GroupMemberProcedure($container))
|
||||
|
|
|
|||
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
require_once __DIR__.'/BaseProcedureTest.php';
|
||||
|
||||
class TaskMetadataProcedureTest extends BaseProcedureTest
|
||||
{
|
||||
protected $projectName = 'My project to test tasks metadata';
|
||||
protected $metaKey = 'MyTestMetaKey';
|
||||
|
||||
public function testAll()
|
||||
{
|
||||
$this->assertCreateTeamProject();
|
||||
$this->assertCreateTask();
|
||||
$this->assertSaveTaskMetadata();
|
||||
$this->assertGetTaskMetadata();
|
||||
$this->assertGetTaskMetadataByName();
|
||||
$this->assertRemoveTaskMetadata();
|
||||
}
|
||||
|
||||
public function assertSaveTaskMetadata()
|
||||
{
|
||||
$this->assertTrue($this->app->saveTaskMetadata($this->taskId, array($this->metaKey => 'metaValue1')));
|
||||
}
|
||||
|
||||
public function assertGetTaskMetadata()
|
||||
{
|
||||
$metaData = $this->app->getTaskMetadata(($this->taskId));
|
||||
$this->assertArrayHasKey($this->metaKey, $metaData);
|
||||
$this->assertEquals('metaValue1', $metaData[$this->metaKey]);
|
||||
}
|
||||
|
||||
public function assertGetTaskMetadataByName()
|
||||
{
|
||||
$metaValue = $this->app->getTaskMetadataByName($this->taskId, $this->metaKey);
|
||||
$this->assertEquals('metaValue1', $metaValue, 'Did not return correct metadata value');
|
||||
}
|
||||
|
||||
public function assertRemoveTaskMetadata()
|
||||
{
|
||||
$result = $this->app->removeTaskMetadata($this->taskId, $this->metaKey);
|
||||
$this->assertTrue($result, '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');
|
||||
}
|
||||
}
|
||||
|
|
@ -5,7 +5,6 @@ require_once __DIR__.'/BaseProcedureTest.php';
|
|||
class TaskProcedureTest extends BaseProcedureTest
|
||||
{
|
||||
protected $projectName = 'My project to test tasks';
|
||||
protected $metaKey = 'MyTestMetaKey';
|
||||
|
||||
public function testAll()
|
||||
{
|
||||
|
|
@ -16,43 +15,6 @@ 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()
|
||||
|
|
|
|||
Loading…
Reference in New Issue