magentwo 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 692e463d7482eb7a4badc478f415deccc4085bb5b19a7d3d84bcc0a671108a8e
4
- data.tar.gz: 9d4615302038000aa1c322190484d139e34e1fc6a122ef6c68ceae9e7296f617
3
+ metadata.gz: 1f59f2c1b33cb0312fc53612b912df7a33e0497963daab678d4d9483e64cbd70
4
+ data.tar.gz: 4fdd910bc6d19c011eacc347a23102ba0a04a4a67179137f88a3a1d18ee32c73
5
5
  SHA512:
6
- metadata.gz: c2cbcd9f5ee6814e5fba49f3422c9df1d18f9fb86fef3608945201c307c28e3e53c479ed8361373a1ff20b52ab61d961ee34e69dce33618df8be588c946c5d4f
7
- data.tar.gz: 5add378c0c94715979a40d9d53c6d9d0c704e11f9daa2891627d7cb82b44fb59dea62af33aafb532cb4fcd28b303b640ac30790528be861cd1da65211dd8e34c
6
+ metadata.gz: 4ed9e751d283d7ceeee972b61edbfe19338e1c86fb8c2db312104f75346de47c6592c5ff885a3a3c593c4c2cbad6b7230efd60f533600875a290ef72b6b45872
7
+ data.tar.gz: 1f32e42bca87fda93e87f0bad9b42092b67a3c885679c42784321ebfc460eb27adb102de34fe85d1211a67c91cb8263a76cb8b8355b21ccc8f4cbf22db0a8ad7
data/README.md CHANGED
@@ -90,7 +90,7 @@ end
90
90
  To update Models back to Magento 2 use the `save` method
91
91
  This switches the first and last name of the Customer Foo Bar
92
92
  ```
93
- customer = Magentwo::Customer.filter(:first_name => "Foo").filter(:last_name => "Bar").first
93
+ customer = Magentwo::Customer.filter(:first_name => "Foo", :last_name => "Bar").first
94
94
  customer.firstname = "Bar"
95
95
  customer.lastname = "Foo"
96
96
  customer.save
@@ -10,14 +10,13 @@ module Magentwo
10
10
  end
11
11
 
12
12
  response = self.send(http_method, path, params)
13
- Magentwo.logger.debug response.body
14
-
13
+ Magentwo.logger.debug "Response body: #{response.body}"
15
14
  parsed_response = case method
16
15
  when :get_with_meta_data, :put, :post, :delete then transform( parse( response))
17
16
  when :get
18
17
  parsed = parse(response)
19
- if parsed.is_a?(Hash) && parsed[:items]
20
- parsed[:items].map do |item|
18
+ if parsed.is_a?(Hash) && (parsed.has_key? :items)
19
+ (parsed[:items] || []).map do |item|
21
20
  transform item
22
21
  end
23
22
  else
@@ -40,6 +40,22 @@ module Magentwo
40
40
  filter args, invert:true
41
41
  end
42
42
 
43
+ def gt args
44
+ Dataset.new self.model, self.opts.merge(:filters => self.opts[:filters] + [Filter::Gt.new(args.keys.first, args.values.first)])
45
+ end
46
+
47
+ def lt args
48
+ Dataset.new self.model, self.opts.merge(:filters => self.opts[:filters] + [Filter::Lt.new(args.keys.first, args.values.first)])
49
+ end
50
+
51
+ def gteq args
52
+ Dataset.new self.model, self.opts.merge(:filters => self.opts[:filters] + [Filter::Gteq.new(args.keys.first, args.values.first)])
53
+ end
54
+
55
+ def lteq args
56
+ Dataset.new self.model, self.opts.merge(:filters => self.opts[:filters] + [Filter::Lteq.new(args.keys.first, args.values.first)])
57
+ end
58
+
43
59
  def select *fields
44
60
  Dataset.new self.model, self.opts.merge(:fields => Filter::Fields.new(fields))
45
61
  end
@@ -20,7 +20,7 @@ module Magentwo
20
20
  def to_query idx
21
21
  [
22
22
  "searchCriteria[filter_groups][#{idx}][filters][0][field]=#{self.field}",
23
- "searchCriteria[filter_groups][#{idx}][filters][0][value]=#{URI::encode(self.value.join(",").map(&:to_s))}",
23
+ "searchCriteria[filter_groups][#{idx}][filters][0][value]=#{URI::encode(self.value.map(&:to_s).join(","))}",
24
24
  "searchCriteria[filter_groups][#{idx}][filters][0][condition_type]=#{self.class.name.split("::").last.downcase}"]
25
25
  .join("&")
26
26
  end
@@ -67,6 +67,18 @@ module Magentwo
67
67
  class Like < Magentwo::Filter::Compare
68
68
  end
69
69
 
70
+ class Gt < Magentwo::Filter::Compare
71
+ end
72
+
73
+ class Lt < Magentwo::Filter::Compare
74
+ end
75
+
76
+ class Gteq < Magentwo::Filter::Compare
77
+ end
78
+
79
+ class Lteq < Magentwo::Filter::Compare
80
+ end
81
+
70
82
  class PageSize < Magentwo::Filter::Simple
71
83
  def initialize value
72
84
  super(:page_size, value)
@@ -4,7 +4,7 @@ require 'json'
4
4
  require 'logger'
5
5
 
6
6
  module Magentwo
7
- Models = %w(base product customer order coupon sales_rule category)
7
+ Models = %w(base product customer order coupon sales_rule category cart)
8
8
  def self.connect host=nil, user_name=nil, password=nil
9
9
  raise ArgumentError, "no host specified" unless host
10
10
  raise ArgumentError, "no user_name specified" unless user_name
@@ -17,7 +17,7 @@ module Magentwo
17
17
  end
18
18
 
19
19
  def self.logger
20
- @@logger ||= Logger.new STDOUT, {:level => Logger::INFO}
20
+ @@logger ||= Logger.new STDOUT, {:level => Logger::DEBUG}
21
21
  end
22
22
 
23
23
  def self.default_page_size
@@ -1,6 +1,6 @@
1
1
  module Magentwo
2
2
  class Base
3
- DatasetMethods = %i(filter exclude select fields count fields info page order_by like)
3
+ DatasetMethods = %i(filter exclude select fields count fields info page order_by like gt lt gteq lteq)
4
4
 
5
5
  def initialize args
6
6
  args.each do |key, value|
@@ -0,0 +1,12 @@
1
+ module Magentwo
2
+ class Cart < Base
3
+ Attributes = %i(id created_at updated_at is_active is_virtual items_count items_qty customer billing_address reserved_order_id orig_order_id currency customer_is_guest customer_note_notify customer_tax_class_id store_id)
4
+ Attributes.each do |attr| attr_accessor attr end
5
+
6
+ class << self
7
+ def get_path
8
+ "#{self.base_path}/search"
9
+ end
10
+ end
11
+ end
12
+ end
@@ -1,5 +1,24 @@
1
1
  module Magentwo
2
2
  class Order < Base
3
+ Attributes = %i(base_currency_code base_discount_amount base_discount_invoiced base_grand_total base_discount_tax_compensation_amount base_discount_tax_compensation_invoiced base_shipping_amount base_shipping_discount_amount base_shipping_discount_tax_compensation_amnt base_shipping_incl_tax base_shipping_invoiced base_shipping_tax_amount base_subtotal base_subtotal_incl_tax base_subtotal_invoiced base_tax_amount base_tax_invoiced base_total_due base_total_invoiced base_total_invoiced_cost base_total_paid base_to_global_rate base_to_order_rate billing_address_id created_at customer_dob customer_email customer_firstname customer_gender customer_group_id customer_id customer_is_guest customer_lastname customer_note_notify discount_amount discount_invoiced entity_id global_currency_code grand_total discount_tax_compensation_amount discount_tax_compensation_invoiced increment_id is_virtual order_currency_code protect_code quote_id shipping_amount shipping_description shipping_discount_amount shipping_discount_tax_compensation_amount shipping_incl_tax shipping_invoiced shipping_tax_amount state status store_currency_code store_id store_name store_to_base_rate store_to_order_rate subtotal subtotal_incl_tax subtotal_invoiced tax_amount tax_invoiced total_due total_invoiced total_item_count total_paid total_qty_ordered updated_at weight items billing_address payment status_histories extension_attributes amount_refunded base_amount_refunded base_discount_amount base_discount_invoiced base_discount_tax_compensation_amount base_discount_tax_compensation_invoiced base_original_price base_price base_price_incl_tax base_row_invoiced base_row_total base_row_total_incl_tax base_tax_amount base_tax_invoiced created_at discount_amount discount_invoiced discount_percent free_shipping discount_tax_compensation_amount discount_tax_compensation_invoiced is_qty_decimal item_id name no_discount order_id original_price price price_incl_tax product_id product_type qty_canceled qty_invoiced qty_ordered qty_refunded qty_shipped row_invoiced row_total row_total_incl_tax row_weight sku store_id tax_amount tax_invoiced tax_percent updated_at weight)
4
+ Attributes.each do |attr| attr_accessor attr end
3
5
 
6
+ def products
7
+ product_skus = self.items.map do |item|
8
+ item[:sku]
9
+ end
10
+ Magentwo::Product.filter(:sku => product_skus).all
11
+ end
12
+
13
+ def customer
14
+ Magentwo::Customer[self.customer_id]
15
+ end
16
+
17
+ class << self
18
+ #this is necessary as the return type of magento2 is not consistent
19
+ def [] unique_identifier
20
+ self.filter(:entity_id => unique_identifier).first
21
+ end
22
+ end
4
23
  end
5
24
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'magentwo'
3
- s.version = '0.1.5'
3
+ s.version = '0.1.6'
4
4
  s.date = '2019-01-17'
5
5
  s.summary = "Magento 2 API Wrapper"
6
6
  s.description = "Provides a simple Ruby Interface to interact with the Magento 2 API"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magentwo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - André Mueß
@@ -27,6 +27,7 @@ files:
27
27
  - lib/filter.rb
28
28
  - lib/magentwo.rb
29
29
  - lib/model/base.rb
30
+ - lib/model/cart.rb
30
31
  - lib/model/category.rb
31
32
  - lib/model/coupon.rb
32
33
  - lib/model/customer.rb