1: <?php
 2: 
 3: namespace SellerLabs\Snagshout\Resource;
 4: 
 5: use Joli\Jane\OpenApi\Runtime\Client\QueryParam;
 6: use Joli\Jane\OpenApi\Runtime\Client\Resource;
 7: class CampaignResource extends Resource
 8: {
 9:     10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 
33:     public function getCampaigns($parameters = array(), $fetch = self::FETCH_OBJECT)
34:     {
35:         $queryParam = new QueryParam();
36:         $queryParam->setDefault('search', NULL);
37:         $queryParam->setDefault('sort', NULL);
38:         $queryParam->setDefault('page', NULL);
39:         $queryParam->setDefault('limit', NULL);
40:         $queryParam->setDefault('embeds', NULL);
41:         $queryParam->setDefault('min', NULL);
42:         $queryParam->setDefault('max', NULL);
43:         $queryParam->setDefault('category', NULL);
44:         $queryParam->setDefault('min_quantity', NULL);
45:         $queryParam->setDefault('min_percentage', NULL);
46:         $queryParam->setDefault('max_percentage', NULL);
47:         $queryParam->setDefault('started_after', NULL);
48:         $queryParam->setDefault('upcoming', NULL);
49:         $queryParam->setDefault('is_fba', NULL);
50:         $queryParam->setDefault('type', NULL);
51:         $url = '/api/v1/campaigns';
52:         $url = $url . ('?' . $queryParam->buildQueryString($parameters));
53:         $headers = array_merge(array('Host' => 'www.snagshout.com', 'Accept' => array('application/json')), $queryParam->buildHeaders($parameters));
54:         $body = $queryParam->buildFormDataString($parameters);
55:         $request = $this->messageFactory->createRequest('GET', $url, $headers, $body);
56:         $promise = $this->httpClient->sendAsyncRequest($request);
57:         if (self::FETCH_PROMISE === $fetch) {
58:             return $promise;
59:         }
60:         $response = $promise->wait();
61:         if (self::FETCH_OBJECT == $fetch) {
62:             if ('200' == $response->getStatusCode()) {
63:                 return $this->serializer->deserialize((string) $response->getBody(), 'SellerLabs\\Snagshout\\Model\\V1GetCampaignsResponse', 'json');
64:             }
65:         }
66:         return $response;
67:     }
68: }