3 namespace app\Github\API\Repos
;
5 use app\Github\API\Call
;
6 use app\Github\Exception\RequestException
;
7 use http\Client\Request
;
8 use http\Client\Response
;
10 class ReadRepo
extends Call
13 $url = $this->url
->mod(uri_template("./repos/{+repo}", $this->args
));
14 return $this->requestUrl($url);
17 function requestUrl($url) {
18 $request = new Request("GET", $url, [
19 "Authorization" => "token " . $this->api
->getToken(),
20 "Accept" => $this->config
->api
->accept
,
25 function response(Response
$response) {
26 if ($response->getResponseCode() >= 400 ||
null === ($json = json_decode($response->getBody()))) {
27 throw new RequestException($response);
29 if ($response->getResponseCode() >= 300 && $response->getResponseCode() < 400) {
30 $this->api
->getClient()->enqueue(
31 $this->requestUrl($json->url
),
34 $this->deferred
->resolve($this->response($response));
35 } catch (\Exception
$e) {
36 $this->deferred
->reject($e);
41 return $this->deferred
->promise();
44 $this->saveToCache($result);