Code Duplication    Length = 24-26 lines in 3 locations

src/Api/Checkout.php 3 locations

@@ 126-149 (lines=24) @@
123
     *
124
     * @return ResponseInterface|void
125
     */
126
    public function complete(int $cartId)
127
    {
128
        if (empty($cartId)) {
129
            throw new InvalidArgumentException('Cart id cannot be empty');
130
        }
131
132
        $response = $this->httpPut("/api/v1/checkouts/complete/{$cartId}");
133
        if (!$this->hydrator) {
134
            return $response;
135
        }
136
137
        // Use any valid status code here
138
        if (204 !== $response->getStatusCode()) {
139
            switch ($response->getStatusCode()) {
140
                case 400:
141
                    throw new DomainExceptions\ValidationException();
142
                    break;
143
                default:
144
                    $this->handleErrors($response);
145
146
                    break;
147
            }
148
        }
149
    }
150
151
    /**
152
     * @throws Exception
@@ 156-181 (lines=26) @@
153
     *
154
     * @return ResponseInterface|ShipmentCollection
155
     */
156
    public function getShippingMethods(int $cartId)
157
    {
158
        if (empty($cartId)) {
159
            throw new InvalidArgumentException('Cart id cannot be empty');
160
        }
161
162
        $response = $this->httpGet("/api/v1/checkouts/select-shipping/{$cartId}");
163
        if (!$this->hydrator) {
164
            return $response;
165
        }
166
167
        // Use any valid status code here
168
        if (200 !== $response->getStatusCode()) {
169
            switch ($response->getStatusCode()) {
170
                case 400:
171
                    throw new DomainExceptions\ValidationException();
172
                    break;
173
                default:
174
                    $this->handleErrors($response);
175
176
                    break;
177
            }
178
        }
179
180
        return $this->hydrator->hydrate($response, ShipmentCollection::class);
181
    }
182
183
    /**
184
     * @throws Exception
@@ 188-213 (lines=26) @@
185
     *
186
     * @return PaymentCollection|ResponseInterface
187
     */
188
    public function getPaymentMethods(int $cartId)
189
    {
190
        if (empty($cartId)) {
191
            throw new InvalidArgumentException('Cart id cannot be empty');
192
        }
193
194
        $response = $this->httpGet("/api/v1/checkouts/select-payment/{$cartId}");
195
        if (!$this->hydrator) {
196
            return $response;
197
        }
198
199
        // Use any valid status code here
200
        if (200 !== $response->getStatusCode()) {
201
            switch ($response->getStatusCode()) {
202
                case 400:
203
                    throw new DomainExceptions\ValidationException();
204
                    break;
205
                default:
206
                    $this->handleErrors($response);
207
208
                    break;
209
            }
210
        }
211
212
        return $this->hydrator->hydrate($response, PaymentCollection::class);
213
    }
214
}
215