diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/Api/Base.php | 10 | ||||
-rw-r--r-- | app/Api/Me.php | 12 | ||||
-rw-r--r-- | app/Model/Project.php | 10 | ||||
-rw-r--r-- | app/Model/TaskFinder.php | 74 |
4 files changed, 41 insertions, 65 deletions
diff --git a/app/Api/Base.php b/app/Api/Base.php index c1be1878..fef36e0c 100644 --- a/app/Api/Base.php +++ b/app/Api/Base.php @@ -19,8 +19,8 @@ abstract class Base extends \Core\Base 'getMyActivityStream', 'createMyPrivateProject', 'getMyProjectsList', - 'getMyOverdueTasks', 'getMyProjects', + 'getMyOverdueTasks', ); private $both_allowed_procedures = array( @@ -70,7 +70,7 @@ abstract class Base extends \Core\Base } } - protected function formatTask($task) + protected function formatTask(array $task) { if (! empty($task)) { $task['url'] = $this->helper->url->to('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), '', true); @@ -80,7 +80,7 @@ abstract class Base extends \Core\Base return $task; } - protected function formatTasks($tasks) + protected function formatTasks(array $tasks) { if (! empty($tasks)) { foreach ($tasks as &$task) { @@ -91,7 +91,7 @@ abstract class Base extends \Core\Base return $tasks; } - protected function formatProject($project) + protected function formatProject(array $project) { if (! empty($project)) { $project['url'] = array( @@ -104,7 +104,7 @@ abstract class Base extends \Core\Base return $project; } - protected function formatProjects($projects) + protected function formatProjects(array $projects) { if (! empty($projects)) { foreach ($projects as &$project) { diff --git a/app/Api/Me.php b/app/Api/Me.php index ff317557..e7611554 100644 --- a/app/Api/Me.php +++ b/app/Api/Me.php @@ -33,7 +33,8 @@ class Me extends Base public function getMyActivityStream() { - return $this->projectActivity->getProjects($this->projectPermission->getActiveMemberProjectIds($this->userSession->getId()), 100); + $project_ids = $this->projectPermission->getActiveMemberProjectIds($this->userSession->getId()); + return $this->projectActivity->getProjects($project_ids, 100); } public function createMyPrivateProject($name, $description = null) @@ -52,14 +53,17 @@ class Me extends Base { return $this->projectPermission->getMemberProjects($this->userSession->getId()); } - + public function getMyOverdueTasks() { return $this->taskFinder->getOverdueTasksByUser($this->userSession->getId()); } - + public function getMyProjects() { - return $this->formatProjects($this->project->getAllByIds($this->projectPermission->getActiveMemberProjectIds($this->userSession->getId()))); + $project_ids = $this->projectPermission->getActiveMemberProjectIds($this->userSession->getId()); + $projects = $this->project->getAllByIds($project_ids); + + return $this->formatProjects($projects); } } diff --git a/app/Model/Project.php b/app/Model/Project.php index 6e4cfcfd..8ddcc443 100644 --- a/app/Model/Project.php +++ b/app/Model/Project.php @@ -172,16 +172,20 @@ class Project extends Base { return $this->db->table(self::TABLE)->asc('name')->findAll(); } - + /** * Get all projects with given Ids * * @access public - * @param integer[] $project_ids Projects id + * @param integer[] $project_ids * @return array */ - public function getAllByIds($project_ids) + public function getAllByIds(array $project_ids) { + if (empty($project_ids)) { + return array(); + } + return $this->db->table(self::TABLE)->in('id', $project_ids)->asc('name')->findAll(); } diff --git a/app/Model/TaskFinder.php b/app/Model/TaskFinder.php index 6cdf9146..e9735d81 100644 --- a/app/Model/TaskFinder.php +++ b/app/Model/TaskFinder.php @@ -177,14 +177,14 @@ class TaskFinder extends Base } /** - * Get a list of overdue tasks for all projects + * Get overdue tasks query * * @access public - * @return array + * @return \PicoDb\Table */ - public function getOverdueTasks() + public function getOverdueTasksQuery() { - $tasks = $this->db->table(Task::TABLE) + return $this->db->table(Task::TABLE) ->columns( Task::TABLE.'.id', Task::TABLE.'.title', @@ -201,74 +201,42 @@ class TaskFinder extends Base ->eq(Project::TABLE.'.is_active', 1) ->eq(Task::TABLE.'.is_active', 1) ->neq(Task::TABLE.'.date_due', 0) - ->lte(Task::TABLE.'.date_due', mktime(23, 59, 59)) - ->findAll(); + ->lte(Task::TABLE.'.date_due', mktime(23, 59, 59)); + } - return $tasks; + /** + * Get a list of overdue tasks for all projects + * + * @access public + * @return array + */ + public function getOverdueTasks() + { + return $this->getOverdueTasksQuery()->findAll(); } - + /** * Get a list of overdue tasks by project * * @access public + * @param integer $project_id * @return array */ public function getOverdueTasksByProject($project_id) { - $tasks = $this->db->table(Task::TABLE) - ->columns( - Task::TABLE.'.id', - Task::TABLE.'.title', - Task::TABLE.'.date_due', - Task::TABLE.'.project_id', - Task::TABLE.'.creator_id', - Task::TABLE.'.owner_id', - Project::TABLE.'.name AS project_name', - User::TABLE.'.username AS assignee_username', - User::TABLE.'.name AS assignee_name' - ) - ->join(Project::TABLE, 'id', 'project_id') - ->join(User::TABLE, 'id', 'owner_id') - ->eq(Project::TABLE.'.is_active', 1) - ->eq(Task::TABLE.'.project_id', $project_id) - ->eq(Task::TABLE.'.is_active', 1) - ->neq(Task::TABLE.'.date_due', 0) - ->lte(Task::TABLE.'.date_due', mktime(23, 59, 59)) - ->findAll(); - - return $tasks; + return $this->getOverdueTasksQuery()->eq(Task::TABLE.'.project_id', $project_id)->findAll(); } - + /** * Get a list of overdue tasks by user * * @access public + * @param integer $user_id * @return array */ public function getOverdueTasksByUser($user_id) { - $tasks = $this->db->table(Task::TABLE) - ->columns( - Task::TABLE.'.id', - Task::TABLE.'.title', - Task::TABLE.'.date_due', - Task::TABLE.'.project_id', - Task::TABLE.'.creator_id', - Task::TABLE.'.owner_id', - Project::TABLE.'.name AS project_name', - User::TABLE.'.username AS assignee_username', - User::TABLE.'.name AS assignee_name' - ) - ->join(Project::TABLE, 'id', 'project_id') - ->join(User::TABLE, 'id', 'owner_id') - ->eq(Project::TABLE.'.is_active', 1) - ->eq(Task::TABLE.'.owner_id', $user_id) - ->eq(Task::TABLE.'.is_active', 1) - ->neq(Task::TABLE.'.date_due', 0) - ->lte(Task::TABLE.'.date_due', mktime(23, 59, 59)) - ->findAll(); - - return $tasks; + return $this->getOverdueTasksQuery()->eq(Task::TABLE.'.owner_id', $user_id)->findAll(); } /** |