Ejemplo n.º 1
0
 public function request(Query $query, $params = [])
 {
     $params['format'] = 'json';
     $params['q'] = $query->getQuery();
     $queryString = $this->buildHttpQueryString($params);
     $response = $this->client->request('GET', $this->buildBaseUrl() . '?' . $queryString);
     $rawContents = GuzzleHttp\json_decode($response->getBody()->getContents());
     return $rawContents->query;
 }
Ejemplo n.º 2
0
 /**
  * @param Route $route
  * @return Promise|PromiseInterface
  * @throws \LogicException
  * @throws \InvalidArgumentException
  */
 public function request(Route $route)
 {
     $request = $this->prepareRequest($this->gitter->token, $route);
     $this->logRequest($request);
     $responsePromise = $this->client->sendAsync($request, $this->options);
     $promise = new Promise(function ($unwrap = true) use($responsePromise) {
         $responsePromise->wait($unwrap);
     });
     $responsePromise->then(function (ResponseInterface $response) use($promise) {
         $this->logResponse($response);
         $promise->resolve(json((string) $response->getBody(), true));
     });
     return $promise;
 }
Ejemplo n.º 3
0
 /**
  * @param $url
  * @return Message[]
  * @throws RuntimeException
  */
 public function validateUrl($url)
 {
     $response = $this->client->get('', ['query' => ['doc' => $url, 'parser' => $this->parser, 'out' => 'json']]);
     if ($response->getStatusCode() !== 200) {
         throw new RuntimeException('Server responded with HTTP status ' . $response->getStatusCode());
     }
     if (strpos($response->getHeaderLine('Content-Type'), 'application/json') === false) {
         throw new RuntimeException('Server did not respond with the expected content-type (application/json)');
     }
     $messages = [];
     $result = json_decode($response->getBody(), true);
     if (!isset($result['messages'])) {
         return $messages;
     }
     foreach ($result['messages'] as $messageAttributes) {
         $messages[] = new Message($messageAttributes);
     }
     return $messages;
 }
Ejemplo n.º 4
0
 /**
  * @param $url
  * @return Message[]
  * @throws RuntimeException
  */
 public function validateUrl($url)
 {
     $response = $this->client->get('', ['query' => ['uri' => $url, 'profile' => $this->profile, 'warning' => $this->warningLevel, 'output' => 'json']]);
     if ($response->getStatusCode() !== 200) {
         throw new RuntimeException('Server responded with HTTP status ' . $response->getStatusCode());
     }
     if (strpos($response->getHeaderLine('Content-Type'), 'application/json') === false) {
         throw new RuntimeException('Server did not respond with the expected content-type (application/json)');
     }
     $messages = [];
     $result = json_decode($response->getBody(), true);
     if (isset($result['cssvalidation']['errors'])) {
         foreach ($result['cssvalidation']['errors'] as $messageAttributes) {
             $messages[] = new Message('error', $messageAttributes);
         }
     }
     if (isset($result['cssvalidation']['warnings'])) {
         foreach ($result['cssvalidation']['warnings'] as $messageAttributes) {
             $warnings[] = new Message('warning', $messageAttributes);
         }
     }
     return $messages;
 }
Ejemplo n.º 5
0
 public function post($path, $parameters = [], $data = '', $autoresolveDeferred = true, string $contentType = null)
 {
     if ($contentType) {
         switch ($contentType) {
             case 'xml':
             case 'json':
                 break;
             default:
                 throw new InvalidArgumentException("contentType '{$contentType}' is invalid");
         }
     } else {
         $contentType = 'xml';
     }
     $response = parent::post($path, $parameters, $data, $autoresolveDeferred);
     switch ($contentType) {
         case 'xml':
             return (string) $response->getBody();
         case 'json':
             return json_decode((string) $response->getBody(), true);
     }
 }