public function request($method, $path, array $params = [], $limit = null, $offset = null, array $options = [])
    {
        Assertion::nullOrInteger($limit);
        Assertion::nullOrInteger($offset);
        Assertion::isArray($options);

        if ($this->isLoginRequired($path)) {
            $this->login();
        }

        try {
            $requestUrl = $this->getUrl($path, $options);
            $response = $this->curlRequest($requestUrl, $method, $path, $params, $limit, $offset);

            if (null === $response) {
                throw InvalidResponseException::fromParams($method, $path, $options);
            }

            $this->retries = 0;

            return $this->prepareResponse($limit, $offset, $options, $response);
        } catch (Exception $exception) {
            return $this->handleRequestException($exception, $method, $path, $params, $limit, $offset);
        } catch (Throwable $exception) {
            return $this->handleRequestException($exception, $method, $path, $params, $limit, $offset);
        }
    }
public function request($method, $path, array $params = [], $limit = null, $offset = null, array $options = [])
    {
        Assertion::nullOrInteger($limit);
        Assertion::nullOrInteger($offset);
        Assertion::isArray($options);

        if ($this->isLoginRequired($path)) {
            $this->login();
        }

        try {
            $requestUrl = $this->getUrl($path, $options);
            $response = $this->curlRequest($requestUrl, $method, $path, $params, $limit, $offset);

            if (null === $response) {
                throw InvalidResponseException::fromParams($method, $path, $options);
            }

            $this->retries = 0;

            return $this->prepareResponse($limit, $offset, $options, $response);
        } catch (Exception $exception) {
            return $this->handleRequestException($exception, $method, $path, $params, $limit, $offset);
        } catch (Throwable $exception) {
            return $this->handleRequestException($exception, $method, $path, $params, $limit, $offset);
        }
    }
{@inheritdoc}