summaryrefslogtreecommitdiff
path: root/app/Formatter
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2017-05-22 15:33:16 -0400
committerFrederic Guillot <fred@kanboard.net>2017-05-22 15:33:16 -0400
commit54a751820f39e8891f775b8d9293349399b3e8c2 (patch)
tree777636eb37fd2dc3af959171a64eb14933641dec /app/Formatter
parentf16ac8cd66b107f04db78a70521a959eca85159a (diff)
Add task and project API formatters
Diffstat (limited to 'app/Formatter')
-rw-r--r--app/Formatter/ProjectApiApiFormatter.php39
-rw-r--r--app/Formatter/ProjectsApiFormatter.php38
-rw-r--r--app/Formatter/TaskApiFormatter.php37
-rw-r--r--app/Formatter/TasksApiFormatter.php38
-rw-r--r--app/Formatter/UserMentionFormatter.php4
5 files changed, 155 insertions, 1 deletions
diff --git a/app/Formatter/ProjectApiApiFormatter.php b/app/Formatter/ProjectApiApiFormatter.php
new file mode 100644
index 00000000..5521d57c
--- /dev/null
+++ b/app/Formatter/ProjectApiApiFormatter.php
@@ -0,0 +1,39 @@
+<?php
+
+namespace Kanboard\Formatter;
+
+use Kanboard\Core\Filter\FormatterInterface;
+
+/**
+ * Class ProjectApiFormatter
+ *
+ * @package Kanboard\Formatter
+ */
+class ProjectApiFormatter extends BaseFormatter implements FormatterInterface
+{
+ protected $project = null;
+
+ public function withProject($project)
+ {
+ $this->project = $project;
+ return $this;
+ }
+
+ /**
+ * Apply formatter
+ *
+ * @access public
+ * @return mixed
+ */
+ public function format()
+ {
+ if (! empty($this->project)) {
+ $this->project['url'] = array(
+ 'board' => $this->helper->url->to('BoardViewController', 'show', array('project_id' => $this->project['id']), '', true),
+ 'list' => $this->helper->url->to('TaskListController', 'show', array('project_id' => $this->project['id']), '', true),
+ );
+ }
+
+ return $this->project;
+ }
+}
diff --git a/app/Formatter/ProjectsApiFormatter.php b/app/Formatter/ProjectsApiFormatter.php
new file mode 100644
index 00000000..0bf97da4
--- /dev/null
+++ b/app/Formatter/ProjectsApiFormatter.php
@@ -0,0 +1,38 @@
+<?php
+
+namespace Kanboard\Formatter;
+
+use Kanboard\Core\Filter\FormatterInterface;
+
+/**
+ * Class ProjectsApiFormatter
+ *
+ * @package Kanboard\Formatter
+ */
+class ProjectsApiFormatter extends BaseFormatter implements FormatterInterface
+{
+ protected $projects = array();
+
+ public function withProjects($projects)
+ {
+ $this->projects = $projects;
+ return $this;
+ }
+
+ /**
+ * Apply formatter
+ *
+ * @access public
+ * @return mixed
+ */
+ public function format()
+ {
+ if (! empty($this->projects)) {
+ foreach ($this->projects as &$project) {
+ $project = $this->projectApiFormatter->withProject($project)->format();
+ }
+ }
+
+ return $this->projects;
+ }
+}
diff --git a/app/Formatter/TaskApiFormatter.php b/app/Formatter/TaskApiFormatter.php
new file mode 100644
index 00000000..60840beb
--- /dev/null
+++ b/app/Formatter/TaskApiFormatter.php
@@ -0,0 +1,37 @@
+<?php
+
+namespace Kanboard\Formatter;
+
+use Kanboard\Core\Filter\FormatterInterface;
+
+/**
+ * Class TaskApiFormatter
+ *
+ * @package Kanboard\Formatter
+ */
+class TaskApiFormatter extends BaseFormatter implements FormatterInterface
+{
+ protected $task = null;
+
+ public function withTask($task)
+ {
+ $this->task = $task;
+ return $this;
+ }
+
+ /**
+ * Apply formatter
+ *
+ * @access public
+ * @return mixed
+ */
+ public function format()
+ {
+ if (! empty($this->task)) {
+ $this->task['url'] = $this->helper->url->to('TaskViewController', 'show', array('task_id' => $this->task['id'], 'project_id' => $this->task['project_id']), '', true);
+ $this->task['color'] = $this->colorModel->getColorProperties($this->task['color_id']);
+ }
+
+ return $this->task;
+ }
+}
diff --git a/app/Formatter/TasksApiFormatter.php b/app/Formatter/TasksApiFormatter.php
new file mode 100644
index 00000000..95b14095
--- /dev/null
+++ b/app/Formatter/TasksApiFormatter.php
@@ -0,0 +1,38 @@
+<?php
+
+namespace Kanboard\Formatter;
+
+use Kanboard\Core\Filter\FormatterInterface;
+
+/**
+ * Class TasksApiFormatter
+ *
+ * @package Kanboard\Formatter
+ */
+class TasksApiFormatter extends BaseFormatter implements FormatterInterface
+{
+ protected $tasks = array();
+
+ public function withTasks($tasks)
+ {
+ $this->tasks = $tasks;
+ return $this;
+ }
+
+ /**
+ * Apply formatter
+ *
+ * @access public
+ * @return mixed
+ */
+ public function format()
+ {
+ if (! empty($this->tasks)) {
+ foreach ($this->tasks as &$task) {
+ $task = $this->taskApiFormatter->withTask($task)->format();
+ }
+ }
+
+ return $this->tasks;
+ }
+}
diff --git a/app/Formatter/UserMentionFormatter.php b/app/Formatter/UserMentionFormatter.php
index 395fc463..9ea76881 100644
--- a/app/Formatter/UserMentionFormatter.php
+++ b/app/Formatter/UserMentionFormatter.php
@@ -2,13 +2,15 @@
namespace Kanboard\Formatter;
+use Kanboard\Core\Filter\FormatterInterface;
+
/**
* Class UserMentionFormatter
*
* @package Kanboard\Formatter
* @author Frederic Guillot
*/
-class UserMentionFormatter extends BaseFormatter
+class UserMentionFormatter extends BaseFormatter implements FormatterInterface
{
protected $users = array();