diff --git a/PHPCI/BuildFactory.php b/PHPCI/BuildFactory.php index 0dd53058..82ebc221 100644 --- a/PHPCI/BuildFactory.php +++ b/PHPCI/BuildFactory.php @@ -9,10 +9,8 @@ namespace PHPCI; +use b8\Store\Factory; use PHPCI\Model\Build; -use PHPCI\Model\Build\LocalBuild; -use PHPCI\Model\Build\GithubBuild; -use PHPCI\Model\Build\BitbucketBuild; /** * PHPCI Build Factory - Takes in a generic "Build" and returns a type-specific build model. @@ -20,9 +18,21 @@ use PHPCI\Model\Build\BitbucketBuild; */ class BuildFactory { + /** + * @param $buildId + * @return Build + */ + public static function getBuildById($buildId) + { + $build = Factory::getStore('Build')->getById($buildId); + + return self::getBuild($build); + } + /** * Takes a generic build and returns a type-specific build model. - * @return \PHPCI\Model\Build\LocalBuild|\PHPCI\Model\Build\GithubBuild|\PHPCI\Model\Build\BitbucketBuild + * @param Build $base The build from which to get a more specific build type. + * @return Build */ public static function getBuild(Build $base) { diff --git a/PHPCI/Controller/BuildController.php b/PHPCI/Controller/BuildController.php index c80cb7c8..ddcbc4ee 100644 --- a/PHPCI/Controller/BuildController.php +++ b/PHPCI/Controller/BuildController.php @@ -10,6 +10,7 @@ namespace PHPCI\Controller; use b8; +use PHPCI\BuildFactory; use PHPCI\Model\Build; /** @@ -35,7 +36,7 @@ class BuildController extends \PHPCI\Controller */ public function view($buildId) { - $build = $this->buildStore->getById($buildId); + $build = BuildFactory::getBuildById($buildId); $this->view->plugins = $this->getUiPlugins(); $this->view->build = $build; $this->view->data = $this->getBuildData($build); @@ -63,7 +64,7 @@ class BuildController extends \PHPCI\Controller */ public function data($buildId) { - die($this->getBuildData($this->buildStore->getById($buildId))); + die($this->getBuildData(BuildFactory::getBuildById($buildId))); } /** @@ -71,7 +72,7 @@ class BuildController extends \PHPCI\Controller */ public function meta($buildId) { - $build = $this->buildStore->getById($buildId); + $build = BuildFactory::getBuildById($buildId); $key = $this->getParam('key', null); $numBuilds = $this->getParam('num_builds', 1); $data = null; @@ -104,7 +105,7 @@ class BuildController extends \PHPCI\Controller */ public function rebuild($buildId) { - $copy = $this->buildStore->getById($buildId); + $copy = BuildFactory::getBuildById($buildId); $build = new Build(); $build->setProjectId($copy->getProjectId()); @@ -128,7 +129,7 @@ class BuildController extends \PHPCI\Controller throw new \Exception('You do not have permission to do that.'); } - $build = $this->buildStore->getById($buildId); + $build = BuildFactory::getBuildById($buildId); if (!$build) { $this->response->setResponseCode(404); diff --git a/PHPCI/Controller/HomeController.php b/PHPCI/Controller/HomeController.php index 586f46f1..95676efc 100644 --- a/PHPCI/Controller/HomeController.php +++ b/PHPCI/Controller/HomeController.php @@ -10,6 +10,7 @@ namespace PHPCI\Controller; use b8; +use PHPCI\BuildFactory; /** * Home Controller - Displays the PHPCI Dashboard. @@ -73,6 +74,11 @@ class HomeController extends \PHPCI\Controller { $builds = $this->buildStore->getWhere(array(), 5, 0, array(), array('id' => 'DESC')); $view = new b8\View('BuildsTable'); + + foreach ($builds['items'] as &$build) { + $build = BuildFactory::getBuild($build); + } + $view->builds = $builds['items']; return $view->render(); diff --git a/PHPCI/Controller/ProjectController.php b/PHPCI/Controller/ProjectController.php index 7c0b75e7..19fb3149 100644 --- a/PHPCI/Controller/ProjectController.php +++ b/PHPCI/Controller/ProjectController.php @@ -9,6 +9,7 @@ namespace PHPCI\Controller; +use PHPCI\BuildFactory; use PHPCI\Model\Build; use PHPCI\Model\Project; use b8; @@ -113,6 +114,11 @@ class ProjectController extends \PHPCI\Controller $order = array('id' => 'DESC'); $builds = $this->buildStore->getWhere($criteria, 10, $start, array(), $order); $view = new b8\View('BuildsTable'); + + foreach ($builds['items'] as &$build) { + $build = BuildFactory::getBuild($build); + } + $view->builds = $builds['items']; return array($view->render(), $builds['count']); diff --git a/PHPCI/View/Build/view.phtml b/PHPCI/View/Build/view.phtml index 26cc9618..1af884be 100644 --- a/PHPCI/View/Build/view.phtml +++ b/PHPCI/View/Build/view.phtml @@ -1,5 +1,5 @@