Sha256: 41358b0caa07f03956386f2fffc0c6d835f52eab713a61f40c5e0abbd701efbd
Contents?: true
Size: 1.97 KB
Versions: 2
Compression:
Stored size: 1.97 KB
Contents
module ShopifyAPI module Limits def self.included(klass) klass.send(:extend, ClassMethods) end module ClassMethods # Takes form num_requests_executed/max_requests # Eg: 101/3000 CREDIT_LIMIT_HEADER_PARAM = { :global => 'http_x_shopify_api_call_limit', :shop => 'http_x_shopify_shop_api_call_limit' } ## # How many more API calls can I make? # @return {Integer} # def credit_left shop = credit_limit(:shop) - credit_used(:shop) global = credit_limit(:global) - credit_used(:global) shop < global ? shop : global end alias_method :available_calls, :credit_left ## # Have I reached my API call limit? # @return {Boolean} # def credit_maxed? credit_left <= 0 end alias_method :maxed?, :credit_maxed? ## # How many total API calls can I make? # NOTE: subtracting 1 from credit_limit because I think ShopifyAPI cuts off at 299/2999 or shop/global limits. # @param {Symbol} scope [:shop|:global] # @return {Integer} # def credit_limit(scope=:shop) @api_credit_limit ||= {} @api_credit_limit[scope] ||= api_credit_limit_param(scope).pop.to_i - 1 end alias_method :call_limit, :credit_limit ## # How many API calls have I made? # @param {Symbol} scope [:shop|:global] # @return {Integer} # def credit_used(scope=:shop) api_credit_limit_param(scope).shift.to_i end alias_method :call_count, :credit_used ## # @return {HTTPResonse} # def response Shop.current unless ShopifyAPI::Base.connection.response ShopifyAPI::Base.connection.response end private ## # @return {Array} # def api_credit_limit_param(scope) response[CREDIT_LIMIT_HEADER_PARAM[scope]].split('/') end end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
shopify_api-2.0.0 | lib/shopify_api/limits.rb |
th_shopify_api-1.2.6.pre | lib/shopify_api/limits.rb |