class ShopifyAPI::Clients::HttpResponse

def initialize(code:, headers:, body:)

def initialize(code:, headers:, body:)
  @code = code
  @headers = headers
  @body = body
  @prev_page_info = T.let(nil, T.nilable(String))
  @next_page_info = T.let(nil, T.nilable(String))
  @prev_page_info, @next_page_info = parse_link_header
end

def ok?

def ok?
  code >= 200 && code <= 299
end

def parse_link_header

def parse_link_header
  return [nil, nil] if @headers["link"].nil?
  page_info = {}
  T.must(T.must(@headers["link"])[0]).split(",").each do |link|
    rel = T.must(link.match(/rel="(.*?)"/))[1]
    url = T.must(T.must(link.match(/<(.*?)>/))[1])
    T.must(URI.parse(url).query).split("&").each do |param|
      if param.split("=")[0] == "page_info"
        page_info[rel] = param.split("=")[1]
        break
      end
    end
  end
  [page_info["previous"], page_info["next"]]
end