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