Code Duplication    Length = 20-22 lines in 2 locations

src/Rate.php 1 location

@@ 88-107 (lines=20) @@
85
     *
86
     * @return RateResponse
87
     */
88
    protected function sendRequest(RateRequest $rateRequest)
89
    {
90
        $request = $this->createRequest($rateRequest);
91
92
        $this->response = $this->getRequest()->request($this->createAccess(), $request, $this->compileEndpointUrl(self::ENDPOINT));
93
        $response = $this->response->getResponse();
94
95
        if (null === $response) {
96
            throw new Exception('Failure (0): Unknown error', 0);
97
        }
98
99
        if ($response->Response->ResponseStatusCode == 0) {
100
            throw new Exception(
101
                "Failure ({$response->Response->Error->ErrorSeverity}): {$response->Response->Error->ErrorDescription}",
102
                (int)$response->Response->Error->ErrorCode
103
            );
104
        } else {
105
            return $this->formatResponse($response);
106
        }
107
    }
108
109
    /**
110
     * Create the Rate request.

src/Tracking.php 1 location

@@ 161-182 (lines=22) @@
158
     * @return stdClass
159
     * @throws Exception
160
     */
161
    private function getFormattedResponse()
162
    {
163
        $this->response = $this->getRequest()->request(
164
            $this->createAccess(),
165
            $this->createRequest(),
166
            $this->compileEndpointUrl(self::ENDPOINT)
167
        );
168
        $response = $this->response->getResponse();
169
170
        if (null === $response) {
171
            throw new Exception('Failure (0): Unknown error', 0);
172
        }
173
174
        if ($response instanceof SimpleXMLElement && $response->Response->ResponseStatusCode == 0) {
175
            throw new Exception(
176
                "Failure ({$response->Response->Error->ErrorSeverity}): {$response->Response->Error->ErrorDescription}",
177
                (int)$response->Response->Error->ErrorCode
178
            );
179
        }
180
181
        return $this->formatResponse($response);
182
    }
183
184
    /**
185
     * Check if tracking number is for mail innovations.