class ShopifyApiConnector

Public Class Methods

new(config) click to toggle source
# File lib/shopify_api_connector.rb, line 7
def initialize(config)
        raise ArgumentError.new("Required class type 'Config' - recieved #{config.class}") unless config.kind_of? Config
        @config = config 
end

Public Instance Methods

get_num_orders() click to toggle source
# File lib/shopify_api_connector.rb, line 31
def get_num_orders
        uri = URI("https://#{@config.host}/admin/orders/count.json?access_token=#{@config.access_token}")
        Net::HTTP.start(uri.host, uri.port,
                :use_ssl => uri.scheme == 'https') do |http|
                request = Net::HTTP::Get.new uri

                response = http.request request # Net::HTTPResponse object
                return JSON.parse(response.body)["count"]
        end
        return nil
end
get_orders() click to toggle source
# File lib/shopify_api_connector.rb, line 12
def get_orders
        num_orders = get_num_orders
        orders = nil
        page_num = 1
        while orders.nil? or orders.count < num_orders
                uri = URI("https://#{@config.host}/admin/orders.json?page=#{page_num}&access_token=#{@config.access_token}")
                Net::HTTP.start(uri.host, uri.port,
                        :use_ssl => uri.scheme == 'https') do |http|
                        request = Net::HTTP::Get.new uri

                        response = http.request request # Net::HTTPResponse object
                        response_json = JSON.parse(response.body)
                        orders.nil? ? orders = response_json["orders"] : orders = orders + response_json["orders"]
                end
                page_num += 1
        end
        return orders
end