diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-07-17 18:47:06 -0400 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-07-17 18:47:06 -0400 |
commit | cbe52e57200a66522d88dfc5d5f46de8eb87ffb2 (patch) | |
tree | 5a8b37d64c0ce4142d19c50a716f1ffb9c47ee7d /app/EventBuilder | |
parent | ec0ecc5b0387924f061865f4ec12dbfc5b7018fe (diff) |
File events refactoring
Diffstat (limited to 'app/EventBuilder')
-rw-r--r-- | app/EventBuilder/ProjectFileEventBuilder.php | 50 | ||||
-rw-r--r-- | app/EventBuilder/TaskFileEventBuilder.php | 50 |
2 files changed, 100 insertions, 0 deletions
diff --git a/app/EventBuilder/ProjectFileEventBuilder.php b/app/EventBuilder/ProjectFileEventBuilder.php new file mode 100644 index 00000000..70514a99 --- /dev/null +++ b/app/EventBuilder/ProjectFileEventBuilder.php @@ -0,0 +1,50 @@ +<?php + +namespace Kanboard\EventBuilder; + +use Kanboard\Event\ProjectFileEvent; +use Kanboard\Event\GenericEvent; + +/** + * Class ProjectFileEventBuilder + * + * @package Kanboard\EventBuilder + * @author Frederic Guillot + */ +class ProjectFileEventBuilder extends BaseEventBuilder +{ + protected $fileId = 0; + + /** + * Set fileId + * + * @param int $fileId + * @return $this + */ + public function withFileId($fileId) + { + $this->fileId = $fileId; + return $this; + } + + /** + * Build event data + * + * @access public + * @return GenericEvent|null + */ + public function build() + { + $file = $this->projectFileModel->getById($this->fileId); + + if (empty($file)) { + $this->logger->debug(__METHOD__.': File not found'); + return null; + } + + return new ProjectFileEvent(array( + 'file' => $file, + 'project' => $this->projectModel->getById($file['project_id']), + )); + } +} diff --git a/app/EventBuilder/TaskFileEventBuilder.php b/app/EventBuilder/TaskFileEventBuilder.php new file mode 100644 index 00000000..7f1ce3b3 --- /dev/null +++ b/app/EventBuilder/TaskFileEventBuilder.php @@ -0,0 +1,50 @@ +<?php + +namespace Kanboard\EventBuilder; + +use Kanboard\Event\TaskFileEvent; +use Kanboard\Event\GenericEvent; + +/** + * Class TaskFileEventBuilder + * + * @package Kanboard\EventBuilder + * @author Frederic Guillot + */ +class TaskFileEventBuilder extends BaseEventBuilder +{ + protected $fileId = 0; + + /** + * Set fileId + * + * @param int $fileId + * @return $this + */ + public function withFileId($fileId) + { + $this->fileId = $fileId; + return $this; + } + + /** + * Build event data + * + * @access public + * @return GenericEvent|null + */ + public function build() + { + $file = $this->taskFileModel->getById($this->fileId); + + if (empty($file)) { + $this->logger->debug(__METHOD__.': File not found'); + return null; + } + + return new TaskFileEvent(array( + 'file' => $file, + 'task' => $this->taskFinderModel->getDetails($file['task_id']), + )); + } +} |