2nd round
[pharext/pharext.org] / app / Controller / Github / Index.php
index c0838b7912af788da3fe83c9a276804b617d0818..8b6da0328abe80908c0c2e9dd99c7117854cb553 100644 (file)
@@ -3,26 +3,22 @@
 namespace app\Controller\Github;
 
 use app\Controller\Github;
+use app\Github\API\Repos\ReposCallback;
 
 class Index extends Github
 {
        function __invoke(array $args = null) {
                if ($this->checkToken()) {
                        $this->github->listRepos(
-                               $this->app->getRequest()->getQuery("page"), 
-                               [$this, "reposCallback"]
-                       )->send();
-                       $this->app->display("github/index");
-               }
-       }
-
-       function reposCallback($repos, $links) {
-               $this->app->getView()->addData(compact("repos", "links"));
-
-               foreach ($repos as $repo) {
-                       $this->github->listHooks($repo->full_name, function($hooks) use($repo) {
-                               $repo->hooks = $hooks;
+                               $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"));
                        });
+                       
+                       $this->github->drain();
                }
        }
 }