def request(method, path, params = {}, &block)
      connection.send(method, path, params, &block)
    rescue Faraday::Error::ClientError => err
      raise DeskApi::Error::ClientError.new(err)
    rescue JSON::ParserError => err
      raise DeskApi::Error::ParserError.new(err)
    end
def request(method, path, params = {}, &block)
      connection.send(method, path, params, &block)
    rescue Faraday::Error::ClientError => err
      raise DeskApi::Error::ClientError.new(err)
    rescue JSON::ParserError => err
      raise DeskApi::Error::ParserError.new(err)
    end
Hands off the request to Faraday for further processing

 @param method [Symbol] the http method to call
 @param path [String] the url path to the resource
 @param params [Hash] optional additional url params
 @yield [Faraday::Response] for further request customizations.
 @return [Faraday::Response]
 @raises [DeskApi::Error::ClientError]
 @raises [DeskApi::Error::ParserError]