lib/shydra/request.rb in shydra-0.0.1 vs lib/shydra/request.rb in shydra-0.1.0
- old
+ new
@@ -9,10 +9,14 @@
def self.base_uri
ShopifyAPI::Base.site
end
+ def self.headers
+ ShopifyAPI::Base.headers
+ end
+
def initialize(*args)
@options = args.extract_options!
@count = @options.delete(:count)
if args[1] == :count
@count = true
@@ -21,22 +25,28 @@
@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 = @resource
+ @data_root = nil
+
if @count
path << 'count'
@options.delete(:limit)
@data_root = 'count'
elsif @id
@@ -48,10 +58,10 @@
path = path.join('/') + '.json'
uri = Request.base_uri.merge(path)
uri.query = @options.to_param unless @options.empty?
- super(uri.to_s)
+ super(uri.to_s, headers: Request.headers)
end
def finish(response, bypass_memoization = nil)
response.extend Shydra::Response
super(response, bypass_memoization)