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");
- }
- }
-
- 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->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"));
});
+
+ $this->github->drain();
}
}
}