X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=app%2FController%2FGithub%2FIndex.php;h=343c16f7e922b15be2942e3838ade6a726b29ec8;hb=303950054385d4c55cfef9a8828ee79420b7366e;hp=f55eb0c2e4cdece8ebbc739199bd5f83705a2937;hpb=ebc0d017c8a24bd16ca1f4347b39b07ba4349135;p=pharext%2Fpharext.org diff --git a/app/Controller/Github/Index.php b/app/Controller/Github/Index.php index f55eb0c..343c16f 100644 --- a/app/Controller/Github/Index.php +++ b/app/Controller/Github/Index.php @@ -3,33 +3,23 @@ namespace app\Controller\Github; use app\Controller\Github; - -use http\QueryString; +use app\Github\API\Repos\ReposCallback; class Index extends Github { function __invoke(array $args = null) { - if ($this->checkToken()) { - try { - $this->github->fetchRepos( - $this->app->getRequest()->getQuery("page"), - [$this, "reposCallback"] - )->send(); - } catch (\app\Github\Exception $exception) { - $this->view->addData(compact("exception")); - } - $this->app->display("github/index"); + if (!$this->checkToken()) { + return; } - } + $this->github->listRepos( + $this->app->getRequest()->getQuery("page") + )->then( + new ReposCallback($this->github) + )->done(function($results) { + list(list($repos, $links)) = $results; + $this->app->display("github/index", compact("repos", "links")); + }); - function reposCallback($repos, $links) { - $this->app->getView()->addData(compact("repos")); - $this->app->getView()->registerFunction("link", $this->createLinkGenerator($links)); - - foreach ($repos as $repo) { - $this->github->fetchHooks($repo->full_name, function($hooks) use($repo) { - $repo->hooks = $hooks; - }); - } + $this->github->drain(); } }