X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=app%2FGithub%2FAPI%2FReleases%2FListReleaseAssets.php;h=90d1a1fb7dbb4d677e28547182940a09d64798c6;hb=2198c781a021d85ee845f2f4b2f5c322f73e6bd5;hp=b365183cd77935d8e8319796916a5e08389ed7d6;hpb=07b87ac26f62bc3c069bb16983fe7500272e19b4;p=pharext%2Fpharext.org diff --git a/app/Github/API/Releases/ListReleaseAssets.php b/app/Github/API/Releases/ListReleaseAssets.php index b365183..90d1a1f 100644 --- a/app/Github/API/Releases/ListReleaseAssets.php +++ b/app/Github/API/Releases/ListReleaseAssets.php @@ -2,22 +2,30 @@ namespace app\Github\API\Releases; -class ListReleaseAssets extends \app\Github\API\Call +use app\Github\API\Call; +use app\Github\Exception\RequestException; +use app\Github\Links; +use http\Client\Request; +use http\Client\Response; + +class ListReleaseAssets extends Call { - function enqueue(callable $callback) { - $url = $this->url->mod(uri_template("./repos/{+repo}/releases{/release}/assets", $this->args)); - $request = new \http\Client\Request("GET", $url, [ + function request() { + $url = $this->url->mod(uri_template("./repos/{+repo}/releases{/id}/assets", $this->args)); + $request = new Request("GET", $url, [ "Authorization" => "token ". $this->api->getToken(), "Accept" => $this->config->api->accept, ]); - $this->api->getClient()->enqueue($request, function($response) use($callback) { - if ($response->getResponseCode() >= 400 || null === ($json = json_decode($response->getBody()))) { - throw new \app\Github\Exception\RequestException($response); - } - $links = new Links($response->getHeader("Link")); - $this->saveToCache([$json, $links]); - $callback($json, $links); - return true; - }); + return $request; + } + + function response(Response $response) { + if ($response->getResponseCode() >= 400 || null === ($json = json_decode($response->getBody()))) { + throw new RequestException($response); + } + $links = new Links($response->getHeader("Link")); + $result = [$json, $links]; + $this->saveToCache($result); + return $result; } }