Added new arguments to project API calls and update composer.json

This commit is contained in:
Frederic Guillot
2016-06-26 11:57:28 -04:00
parent 4a230d331e
commit b48c0cecbb
10 changed files with 168 additions and 271 deletions

View File

@@ -2,7 +2,6 @@
namespace Kanboard\Api\Procedure;
use JsonRPC\Exception\AccessDeniedException;
use Kanboard\Api\Authorization\ProcedureAuthorization;
use Kanboard\Api\Authorization\UserAuthorization;
use Kanboard\Core\Base;

View File

@@ -78,17 +78,17 @@ class ProjectProcedure extends BaseProcedure
public function createProject($name, $description = null, $owner_id = 0, $identifier = null)
{
$values = array(
$values = $this->filterValues(array(
'name' => $name,
'description' => $description,
'identifier' => $identifier,
);
));
list($valid, ) = $this->projectValidator->validateCreation($values);
return $valid ? $this->projectModel->create($values, $owner_id, $this->userSession->isLogged()) : false;
}
public function updateProject($project_id, $name, $description = null, $owner_id = null, $identifier = null)
public function updateProject($project_id, $name = null, $description = null, $owner_id = null, $identifier = null)
{
ProjectAuthorization::getInstance($this->container)->check($this->getClassName(), 'updateProject', $project_id);

View File

@@ -28,7 +28,7 @@ class ProjectValidator extends BaseValidator
new Validators\Integer('priority_start', t('This value must be an integer')),
new Validators\Integer('priority_end', t('This value must be an integer')),
new Validators\Integer('is_active', t('This value must be an integer')),
new Validators\Required('name', t('The project name is required')),
new Validators\NotEmpty('name', t('This field cannot be empty')),
new Validators\MaxLength('name', t('The maximum length is %d characters', 50), 50),
new Validators\MaxLength('identifier', t('The maximum length is %d characters', 50), 50),
new Validators\MaxLength('start_date', t('The maximum length is %d characters', 10), 10),
@@ -47,11 +47,15 @@ class ProjectValidator extends BaseValidator
*/
public function validateCreation(array $values)
{
$rules = array(
new Validators\Required('name', t('The project name is required')),
);
if (! empty($values['identifier'])) {
$values['identifier'] = strtoupper($values['identifier']);
}
$v = new Validator($values, $this->commonValidationRules());
$v = new Validator($values, array_merge($this->commonValidationRules(), $rules));
return array(
$v->execute(),