X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=app%2FController%2FGithub%2FRelease.php;h=32da9b5dd5f109ea29e4502701ec4fa00ef99951;hb=21ea66aa639b5c7bbd63d687d4445f821d1475ec;hp=f0dd55f840c3498c255515f14e0ea39886a4a6eb;hpb=ee3977104c9ea0984c76f75f965c528bc4b3b64e;p=pharext%2Fpharext.org diff --git a/app/Controller/Github/Release.php b/app/Controller/Github/Release.php index f0dd55f..32da9b5 100644 --- a/app/Controller/Github/Release.php +++ b/app/Controller/Github/Release.php @@ -5,34 +5,30 @@ namespace app\Controller\Github; use app\Controller\Github; use app\Github\API\Repos\RepoCallback; - class Release extends Github { function __invoke(array $args = null) { extract($args); if ($this->checkToken()) { - list($repo) = $this->github->readRepo("$owner/$name", function($repo, $links = null) { - call_user_func(new RepoCallback($this->github), $repo, $links); - - $this->github->listReleases($repo->full_name, null, function($releases) use($repo) { - $config = $this->app->getRequest()->getForm(); - foreach ($releases as $r) { - if ($r->tag_name === $config->tag) { - $this->github->uploadAssetForRelease($repo, $r, $config, function() use($repo) { - $this->app->redirect($this->app->getBaseUrl()->mod("./github/" . $repo->full_name)); - }); - return; - } + $this->github->readRepo("$owner/$name")->then( + new RepoCallback($this->github) + )->then(function($result) use(&$repo) { + list($repo,,,$releases) = $result; + $config = $this->app->getRequest()->getForm(); + + foreach ($releases as $release) { + if ($release->tag_name === $config["tag"]) { + return $this->github->uploadAssetForRelease($repo, $release, $config); } - - $this->github->createReleaseFromTag($repo, $tag, $config, function() use($repo) { - $this->app->redirect($this->app->getBaseUrl()->mod("./github/" . $repo->full_name)); - }); - }); - })->send(); + } + + return $this->github->createReleaseFromTag($repo, $config["tag"], $config); + })->done(function() use(&$repo) { + $this->app->redirect($this->app->getBaseUrl()->mod("./github/repo/" . $repo->full_name)); + }); + $this->github->drain(); $hook = $this->github->checkRepoHook($repo); - $this->app->getView()->addData(compact("owner", "name", "repo", "hook")); if (($modal = $this->app->getRequest()->getQuery("modal"))) {