Class: Shydra::Request
- Inherits:
-
Typhoeus::Request
- Object
- Typhoeus::Request
- Shydra::Request
- Defined in:
- lib/shydra/request.rb
Direct Known Subclasses
Constant Summary collapse
- SHOPIFY_API_MAX_LIMIT =
250
Instance Attribute Summary collapse
-
#data_root ⇒ Object
Returns the value of attribute data_root.
-
#options ⇒ Object
Returns the value of attribute options.
-
#resource ⇒ Object
Returns the value of attribute resource.
Class Method Summary collapse
Instance Method Summary collapse
- #finish(response, bypass_memoization = nil) ⇒ Object
-
#initialize(*args) ⇒ Request
constructor
A new instance of Request.
Constructor Details
#initialize(*args) ⇒ Request
Returns a new instance of Request.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/shydra/request.rb', line 18 def initialize(*args) @options = args. @count = @options.delete(:count) if args[1] == :count @count = true end @resource = @options.delete(:resource) @resource ||= args.first @resource ||= 'shop' @resource = @resource.to_s @parent_resource = @options.delete(:parent_resource) @parent_resource, @parent_resource_id = @parent_resource.first if @parent_resource @id = @options.delete(:id) @options[:limit] ||= SHOPIFY_API_MAX_LIMIT resource_path = @resource resource_path = resource_path.pluralize unless (@resource == 'shop') resource_path = [@parent_resource.to_s.pluralize, @parent_resource_id, resource_path].join('/') if @parent_resource path = [resource_path] path.unshift('admin') unless Request.base_uri.path[-1] == '/' #handle quirk of URI.merge @data_root = nil if @count path << 'count' @options.delete(:limit) @data_root = 'count' elsif @id path << @id.to_s @data_root = @resource else @data_root = @resource.pluralize end path = path.join('/') + '.json' uri = Request.base_uri.merge(path) uri.query = @options.to_param unless @options.empty? super(uri.to_s, headers: Request.headers) end |
Instance Attribute Details
#data_root ⇒ Object
Returns the value of attribute data_root.
7 8 9 |
# File 'lib/shydra/request.rb', line 7 def data_root @data_root end |
#options ⇒ Object
Returns the value of attribute options.
8 9 10 |
# File 'lib/shydra/request.rb', line 8 def @options end |
#resource ⇒ Object
Returns the value of attribute resource.
7 8 9 |
# File 'lib/shydra/request.rb', line 7 def resource @resource end |
Class Method Details
.base_uri ⇒ Object
10 11 12 |
# File 'lib/shydra/request.rb', line 10 def self.base_uri ShopifyAPI::Base.site end |
.headers ⇒ Object
14 15 16 |
# File 'lib/shydra/request.rb', line 14 def self.headers ShopifyAPI::Base.headers end |