public function signer(Request $request) { $query = $request->getQuery(); $query->merge($this->defaults); $newQuery = $query->toArray(); if (str_contains(strtolower($request->getPath()), 'orders')) { $newQuery['MarketplaceId.Id.1'] = $newQuery['MarketplaceId']; unset($newQuery['MarketplaceId']); } ksort($newQuery, SORT_NATURAL); $query->replace($newQuery); $canonicalizedString = implode("\n", [$request->getMethod(), $request->getHost(), $request->getPath(), (string) $request->getQuery()]); $signature = base64_encode(hash_hmac('sha256', $canonicalizedString, env('MWS_SECRET_KEY'), true)); $request->getQuery()->set('Signature', $signature); return $request; }
/** * @param Request $request * @param callable|null $next * @return mixed * * @throws InvalidArgumentException */ public function __invoke(Request $request, callable $next = null) { if (!$this->checkModel($next)) { throw new InvalidArgumentException('Model ' . get_class($next) . ' is not right for this method'); } $query = $request->getQuery(); $query->add('function', $this->getUriFunction()); return $next($request); }
/** * @param Request $request * @return BaseResponse * * @throws RemoteCallException */ public function __invoke(Request $request) { try { $query = $request->getQuery(); $this->addParamsToUri($query); $client = new Client(); return $this->getApiResponse($client->send($request)); } catch (\Exception $e) { throw new RemoteCallException($e->getMessage()); } }
public function testKeepSignature() { $request = new Request('GET', '/endpoint?token=originalValue'); $transaction = new Transaction(new Client(), $request); $event = new BeforeEvent($transaction); $subscriber = new UrlSignature(); $subscriber->setSignatureGenerator(function () { return ['token' => 'tokenValue']; }); $subscriber->onBefore($event); $this->assertEquals('originalValue', $request->getQuery()->get('token')); }
/** * @param BaseMethod $method * @param BaseModel $model * @return BaseResponse * @throws InvalidArgumentException */ public function makeRequest(BaseMethod $method, BaseModel $model) { try { $request = new Request('GET', $this->_apiUrl); $query = $request->getQuery(); $query->set('user', $this->_username); $query->set('pass', $this->_password); $query->set('source', $this->_source); return $method($request, $model); } catch (\InvalidArgumentException $e) { throw new InvalidArgumentException($e->getMessage()); } }
public function testGETWithQueryString() { $request = new Request('GET', 'example.local?foo=bar'); $curl = $this->curlFormatter->format($request); $this->assertEquals("curl 'http://example.local?foo=bar'", $curl); $request = new Request('GET', 'example.local'); $request->getQuery()->set('foo', 'bar'); $curl = $this->curlFormatter->format($request); $this->assertEquals("curl 'http://example.local?foo=bar'", $curl); //Guzzle internally uses PostBody, when data is added to GET request $body = new PostBody(); $body->setField('foo', 'bar'); $body->setField('hello', 'world'); $request = new Request('GET', 'example.local', [], $body); $curl = $this->curlFormatter->format($request); $this->assertEquals("curl 'http://example.local' -G -d 'foo=bar&hello=world'", $curl); }
public function testQueryCanChange() { $r = new Request('GET', 'http://www.foo.com?baz=bar'); $r->setQuery(new Query(['foo' => 'bar'])); $this->assertEquals('foo=bar', $r->getQuery()); }
/** * @param Request $request */ private function authenticateGetRequest(Request $request) { $request->getQuery()->add('key', $this->apiKey); }
/** * @param Request $request */ private function authenticateGetRequest(Request $request) { $request->addHeader('Accept', 'text/plain'); $request->addHeader('X-Mashape-Key', 'WQPyWPhhhXmshABhby8Qv8XHOOajp1TNBbzjsnvVbtyHARmpw8'); $request->getQuery()->add('app_key', $this->apiKey); }
private function expectedSuccessfulAccessTokenRequest() { $request = new Request('GET', 'https://graph.facebook.com/v2.5/oauth/access_token'); $query = $request->getQuery(); $query->set('client_id', '1234'); $query->set('redirect_uri', 'http://localhost/facebook/login'); $query->set('client_secret', 'secret'); $query->set('code', 'correct-code'); return $request; }