epages-rest 1.0.6 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE.txt +22 -0
- data/epages-rest.gemspec +5 -5
- data/lib/epages/cart.rb +2 -1
- data/lib/epages/category.rb +4 -4
- data/lib/epages/customers_response.rb +19 -0
- data/lib/epages/delivery_weight_quantity.rb +15 -0
- data/lib/epages/error.rb +7 -1
- data/lib/epages/line_item_container.rb +2 -1
- data/lib/epages/minimum_cart.rb +16 -0
- data/lib/epages/order.rb +2 -1
- data/lib/epages/orders_response.rb +19 -0
- data/lib/epages/payment_data.rb +1 -1
- data/lib/epages/product.rb +2 -1
- data/lib/epages/product_line_item.rb +1 -1
- data/lib/epages/products_response.rb +19 -0
- data/lib/epages/quantity.rb +15 -0
- data/lib/epages/rest/api.rb +4 -0
- data/lib/epages/rest/carts.rb +19 -6
- data/lib/epages/rest/categories.rb +37 -0
- data/lib/epages/rest/customers.rb +1 -1
- data/lib/epages/rest/miscellaneous.rb +11 -6
- data/lib/epages/rest/orders.rb +1 -1
- data/lib/epages/rest/products.rb +13 -11
- data/lib/epages/rest/request.rb +20 -2
- data/lib/epages/rest/sales.rb +2 -2
- data/lib/epages/rest/tax_classes.rb +21 -0
- data/lib/epages/rest/utils.rb +11 -5
- data/lib/epages/rest/webhooks.rb +35 -0
- data/lib/epages/{sale.rb → sales.rb} +2 -2
- data/lib/epages/sales_summary.rb +19 -0
- data/lib/epages/tax_class.rb +16 -0
- data/lib/epages/tax_class_info.rb +15 -0
- data/lib/epages/variation_identifier.rb +15 -0
- data/lib/epages/version.rb +1 -1
- data/lib/epages/webhook.rb +18 -0
- data/lib/epages/webhook_response.rb +19 -0
- data/lib/epages/webhook_response_pagination.rb +15 -0
- data/lib/epages-rest.rb +16 -1
- metadata +27 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f20938ab374f8dde725505ea8e7f3c0f3e11c04
|
4
|
+
data.tar.gz: a3de9053ace6cbd2e5727fbafd86b340278e5e65
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2e31b161df9e2e93ebc7f4c81e6d633962457024ed243354e2acd87f96eeeca77164c526254e4ae6c11891210cd8598fd9c7e05b60c6e9c4a7bff755bd5fc68f
|
7
|
+
data.tar.gz: b06515dd6208c6605df38a47f33891c76360b9d71ca67ba65388022c16d14ac089673e9e7186784c454a01736ca23643d5d54fd5afc75a249fa7ffb1f1f0cffa
|
data/LICENSE.txt
CHANGED
@@ -19,3 +19,25 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
21
|
THE SOFTWARE.
|
22
|
+
|
23
|
+
The MIT License (MIT)
|
24
|
+
|
25
|
+
Copyright (c) 2017 Unai Martinez
|
26
|
+
|
27
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
28
|
+
of this software and associated documentation files (the "Software"), to deal
|
29
|
+
in the Software without restriction, including without limitation the rights
|
30
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
31
|
+
copies of the Software, and to permit persons to whom the Software is
|
32
|
+
furnished to do so, subject to the following conditions:
|
33
|
+
|
34
|
+
The above copyright notice and this permission notice shall be included in
|
35
|
+
all copies or substantial portions of the Software.
|
36
|
+
|
37
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
38
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
39
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
40
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
41
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
42
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
43
|
+
THE SOFTWARE.
|
data/epages-rest.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'epages/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.version = Epages::VERSION
|
8
8
|
spec.name = 'epages-rest'
|
9
|
-
spec.authors = ['Domingo Cividanes']
|
10
|
-
spec.email = ['
|
9
|
+
spec.authors = ['Domingo Cividanes', 'Unai Martinez']
|
10
|
+
spec.email = ['u.martinez@epages.com']
|
11
11
|
spec.description = 'A Ruby interface that allows to integrate any Epages Shop with any ruby framework via Epages Rest API.'
|
12
12
|
spec.summary = 'A Ruby interface to the Epages Rest API.'
|
13
13
|
spec.homepage = 'https://github.com/ePages-de/epages-rest-ruby'
|
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.require_paths = %w(lib)
|
17
17
|
spec.files = %w(LICENSE.txt README.md epages-rest.gemspec) + Dir['lib/**/*.rb']
|
18
18
|
|
19
|
-
spec.add_development_dependency 'bundler', '~> 1.
|
20
|
-
spec.add_dependency 'http', '~>
|
21
|
-
spec.add_dependency 'activesupport', '~>
|
19
|
+
spec.add_development_dependency 'bundler', '~> 1.13'
|
20
|
+
spec.add_dependency 'http', '~> 2.1'
|
21
|
+
spec.add_dependency 'activesupport', '~> 5.0'
|
22
22
|
end
|
data/lib/epages/cart.rb
CHANGED
@@ -4,7 +4,7 @@ module Epages
|
|
4
4
|
class Cart
|
5
5
|
include Epages::Utils
|
6
6
|
|
7
|
-
KEYS = %w(cart_id billing_address shipping_address line_item_container
|
7
|
+
KEYS = %w(cart_id billing_address shipping_address line_item_container minimum_cart checkout_url tax_class_id).collect(&:to_sym).freeze
|
8
8
|
|
9
9
|
attr_reader *KEYS
|
10
10
|
|
@@ -12,6 +12,7 @@ module Epages
|
|
12
12
|
parse_attribute_as(:billing_address, data.delete(:billingAddress), Epages::Address)
|
13
13
|
parse_attribute_as(:shipping_address, data.delete(:shippingAddress), Epages::Address)
|
14
14
|
parse_attribute_as(:line_item_container, data.delete(:lineItemContainer), Epages::LineItemContainer)
|
15
|
+
parse_attribute_as(:minimum_cart, data.delete(:minimumCart), Epages::MinimumCart)
|
15
16
|
parse_attributes(data)
|
16
17
|
end
|
17
18
|
|
data/lib/epages/category.rb
CHANGED
@@ -5,14 +5,14 @@ module Epages
|
|
5
5
|
class Category
|
6
6
|
include Epages::Utils
|
7
7
|
|
8
|
-
KEYS = %w(category_id name page_title description special_offer images parent sub_categories sf_url links).collect(&:to_sym).freeze
|
8
|
+
KEYS = %w(category_id name page_title description special_offer images parent sub_categories sf_url links visible).collect(&:to_sym).freeze
|
9
9
|
|
10
10
|
attr_reader *KEYS
|
11
11
|
|
12
12
|
def initialize(data)
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
parse_attribute_as_array_of('images', data.delete(:images), Epages::Image)
|
14
|
+
parse_attribute_as_array_of('links', data.delete(:links), Epages::Link)
|
15
|
+
parse_attribute_as_array_of('sub_categories', data.delete(:subCategories), Epages::Link)
|
16
16
|
@parent = Epages::Link.new(data.delete(:parent)) if data[:parent]
|
17
17
|
parse_attributes(data)
|
18
18
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'epages/utils'
|
2
|
+
require 'epages/error'
|
3
|
+
|
4
|
+
module Epages
|
5
|
+
class CustomersResponse
|
6
|
+
include Epages::Utils
|
7
|
+
|
8
|
+
KEYS = %w(results page results_per_page items).collect(&:to_sym).freeze
|
9
|
+
|
10
|
+
attr_reader *KEYS
|
11
|
+
|
12
|
+
def initialize(data)
|
13
|
+
parse_attribute_as_array_of(:items, data.delete(:items), Epages::Customer)
|
14
|
+
parse_attributes(data)
|
15
|
+
end
|
16
|
+
|
17
|
+
alias_method :customers, :items
|
18
|
+
end
|
19
|
+
end
|
data/lib/epages/error.rb
CHANGED
@@ -5,12 +5,15 @@ module Epages
|
|
5
5
|
# Raised when a 4xx HTTP status code is returned
|
6
6
|
ClientError = Class.new(self)
|
7
7
|
|
8
|
-
# HTTP status code 400, 401, 403, 404, 406, 422, 429 respectively
|
8
|
+
# HTTP status code 400, 401, 403, 404, 405, 406, 409, 410, 422, 429 respectively
|
9
9
|
BadRequest = Class.new(ClientError)
|
10
10
|
Unauthorized = Class.new(ClientError)
|
11
11
|
Forbidden = Class.new(ClientError)
|
12
12
|
NotFound = Class.new(ClientError)
|
13
|
+
MethodNotAllowed = Class.new(ClientError)
|
13
14
|
NotAcceptable = Class.new(ClientError)
|
15
|
+
Conflict = Class.new(ClientError)
|
16
|
+
Gone = Class.new(ClientError)
|
14
17
|
UnprocessableEntity = Class.new(ClientError)
|
15
18
|
TooManyRequests = Class.new(ClientError)
|
16
19
|
|
@@ -28,7 +31,10 @@ module Epages
|
|
28
31
|
401 => Epages::Error::Unauthorized,
|
29
32
|
403 => Epages::Error::Forbidden,
|
30
33
|
404 => Epages::Error::NotFound,
|
34
|
+
405 => Epages::Error::MethodNotAllowed,
|
31
35
|
406 => Epages::Error::NotAcceptable,
|
36
|
+
409 => Epages::Error::Conflict,
|
37
|
+
410 => Epages::Error::Gone,
|
32
38
|
422 => Epages::Error::UnprocessableEntity,
|
33
39
|
429 => Epages::Error::TooManyRequests,
|
34
40
|
500 => Epages::Error::InternalServerError,
|
@@ -4,7 +4,8 @@ module Epages
|
|
4
4
|
class LineItemContainer
|
5
5
|
include Epages::Utils
|
6
6
|
|
7
|
-
KEYS = %w(grand_total total_before_tax total_tax line_items_sub_total product_line_items shipping_price
|
7
|
+
KEYS = %w(grand_total total_before_tax total_tax line_items_sub_total product_line_items shipping_price
|
8
|
+
coupon_line_item deposits eco_participations shipping_options basket_discount).collect(&:to_sym).freeze
|
8
9
|
|
9
10
|
attr_reader *KEYS
|
10
11
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'epages/utils'
|
2
|
+
|
3
|
+
module Epages
|
4
|
+
class MinimumCart
|
5
|
+
include Epages::Utils
|
6
|
+
|
7
|
+
KEYS = %w(status code amount).collect(&:to_sym).freeze
|
8
|
+
|
9
|
+
attr_reader *KEYS
|
10
|
+
|
11
|
+
def initialize(data)
|
12
|
+
parse_attribute_as(:amount, data.delete(:amount), Epages::Price)
|
13
|
+
parse_attributes(data)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/epages/order.rb
CHANGED
@@ -6,7 +6,8 @@ module Epages
|
|
6
6
|
include Epages::Utils
|
7
7
|
|
8
8
|
DATE_ATTRS = %w(creation_date invoiced_on delivered_on pending_on archived_on dispatched_on viewed_on
|
9
|
-
rejected_on closed_on paid_on returned_on
|
9
|
+
rejected_on closed_on paid_on returned_on partially_dispatched_on partially_paid_on
|
10
|
+
partially_invoiced_on)
|
10
11
|
|
11
12
|
ATTRS = %w(order_id order_number billing_address shipping_address customer_id locale currency_id tax_model
|
12
13
|
grand_total total_before_tax line_item_container product_line_items shipping_price links internal_note
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'epages/utils'
|
2
|
+
require 'epages/error'
|
3
|
+
|
4
|
+
module Epages
|
5
|
+
class OrdersResponse
|
6
|
+
include Epages::Utils
|
7
|
+
|
8
|
+
KEYS = %w(results page results_per_page items).collect(&:to_sym).freeze
|
9
|
+
|
10
|
+
attr_reader *KEYS
|
11
|
+
|
12
|
+
def initialize(data)
|
13
|
+
parse_attribute_as_array_of(:items, data.delete(:items), Epages::Order)
|
14
|
+
parse_attributes(data)
|
15
|
+
end
|
16
|
+
|
17
|
+
alias_method :orders, :items
|
18
|
+
end
|
19
|
+
end
|
data/lib/epages/payment_data.rb
CHANGED
data/lib/epages/product.rb
CHANGED
@@ -9,7 +9,8 @@ module Epages
|
|
9
9
|
KEYS = %w(product_id name short_description description product_image images price_info for_sale special_offer delivery_weight
|
10
10
|
shipping_methods_restricted_to availability_text availability energy_labels_string energy_label_source_file
|
11
11
|
product_data_sheet sf_url product_number manufacturer upc ean essential_features search_keywords links tax_class
|
12
|
-
stocklevel watchers
|
12
|
+
stocklevel watchers delivery_period visible manufacturer_product_number min_stock_level product_length
|
13
|
+
product_height product_width product_variation_type product_variation_selection).collect(&:to_sym).freeze
|
13
14
|
|
14
15
|
attr_reader *KEYS
|
15
16
|
|
@@ -4,7 +4,7 @@ module Epages
|
|
4
4
|
class ProductLineItem
|
5
5
|
include Epages::Utils
|
6
6
|
|
7
|
-
KEYS = %w(line_item_id sku name product_id quantity line_item_price single_item_price images links).collect(&:to_sym).freeze
|
7
|
+
KEYS = %w(line_item_id sku name product_id quantity line_item_price single_item_price images links delivery_weight).collect(&:to_sym).freeze
|
8
8
|
|
9
9
|
attr_reader *KEYS
|
10
10
|
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'epages/utils'
|
2
|
+
require 'epages/error'
|
3
|
+
|
4
|
+
module Epages
|
5
|
+
class ProductsResponse
|
6
|
+
include Epages::Utils
|
7
|
+
|
8
|
+
KEYS = %w(results page results_per_page items).collect(&:to_sym).freeze
|
9
|
+
|
10
|
+
attr_reader *KEYS
|
11
|
+
|
12
|
+
def initialize(data)
|
13
|
+
parse_attribute_as_array_of(:items, data.delete(:items), Epages::Product)
|
14
|
+
parse_attributes(data)
|
15
|
+
end
|
16
|
+
|
17
|
+
alias_method :products, :items
|
18
|
+
end
|
19
|
+
end
|
data/lib/epages/rest/api.rb
CHANGED
@@ -8,6 +8,8 @@ require 'epages/rest/orders'
|
|
8
8
|
require 'epages/rest/products'
|
9
9
|
require 'epages/rest/sales'
|
10
10
|
require 'epages/rest/shipping_methods'
|
11
|
+
require 'epages/rest/tax_classes'
|
12
|
+
require 'epages/rest/webhooks'
|
11
13
|
|
12
14
|
module Epages
|
13
15
|
module REST
|
@@ -22,6 +24,8 @@ module Epages
|
|
22
24
|
include REST::Products
|
23
25
|
include REST::Sales
|
24
26
|
include REST::ShippingMethods
|
27
|
+
include REST::TaxClasses
|
28
|
+
include REST::Webhooks
|
25
29
|
end
|
26
30
|
end
|
27
31
|
end
|
data/lib/epages/rest/carts.rb
CHANGED
@@ -19,6 +19,25 @@ module Epages
|
|
19
19
|
perform_get_with_object("/carts/#{id}", {}, Epages::Cart)
|
20
20
|
end
|
21
21
|
|
22
|
+
# implements the call https://developer.epages.com/apps/api-reference/post-shops-shopid-carts-cartid-coupon.html
|
23
|
+
def apply_coupon(cart, data = {})
|
24
|
+
id = epages_id(cart)
|
25
|
+
perform_post_with_object("/carts/#{id}/coupon", data, Epages::Cart)
|
26
|
+
end
|
27
|
+
|
28
|
+
# implements the call https://developer.epages.com/apps/api-reference/delete-shops-shopid-carts-cartid-coupon-couponlineitemid.html
|
29
|
+
# It needs the couponLineItemId to be able to delete it
|
30
|
+
def delete_coupon(cart, coupon_line_item_id)
|
31
|
+
id = epages_id(cart)
|
32
|
+
perform_delete_with_object("/carts/#{id}/coupon/#{coupon_line_item_id}", {}, Epages::Cart)
|
33
|
+
end
|
34
|
+
|
35
|
+
# implements the call https://developer.epages.com/apps/api-reference/post-shops-shopid-carts-cartid-order.html
|
36
|
+
def order_cart(cart)
|
37
|
+
id = epages_id(cart)
|
38
|
+
perform_post_with_object("/carts/#{id}/order", {}, Epages::Order)
|
39
|
+
end
|
40
|
+
|
22
41
|
# implements the call https://developer.epages.com/apps/api-reference/post-shops-shopid-carts-cartid-line-items.html
|
23
42
|
def cart_line_item(cart, product, quantity = 1)
|
24
43
|
id = epages_id(cart)
|
@@ -66,12 +85,6 @@ module Epages
|
|
66
85
|
id = epages_id(cart)
|
67
86
|
perform_delete_with_object("/carts/#{id}/shipping-address", {}, Epages::Cart)
|
68
87
|
end
|
69
|
-
|
70
|
-
# implements the call https://developer.epages.com/apps/api-reference/post-shops-shopid-carts-cartid-order.html
|
71
|
-
def order_cart(cart)
|
72
|
-
id = epages_id(cart)
|
73
|
-
perform_post_with_object("/carts/#{id}/order", {}, Epages::Order)
|
74
|
-
end
|
75
88
|
end
|
76
89
|
end
|
77
90
|
end
|
@@ -17,12 +17,49 @@ module Epages
|
|
17
17
|
perform_get_with_object("/categories/#{id}", options, Epages::Category)
|
18
18
|
end
|
19
19
|
|
20
|
+
# implements the call https://developer.epages.com/apps/api-reference/post-shops-shopid-categories-categoryid.html
|
21
|
+
# The id can be from the root category or to create a subcategory
|
22
|
+
def create_category(object, options = {})
|
23
|
+
id = epages_id(object)
|
24
|
+
perform_post_with_object("/categories/#{id}", options, Epages::Category)
|
25
|
+
end
|
26
|
+
|
20
27
|
# implements the calls in https://developer.epages.com/apps/api-reference/put-shops-shopid-categories-categoryid.html
|
21
28
|
def update_category(object, options)
|
22
29
|
id = epages_id(object)
|
23
30
|
options[:categoryId] = id
|
24
31
|
perform_put_with_object("/categories/#{id}", options, Epages::Category)
|
25
32
|
end
|
33
|
+
|
34
|
+
# implements the call https://developer.epages.com/apps/api-reference/delete-shops-shopid-categories-categoryid.html
|
35
|
+
def delete_category(category)
|
36
|
+
id = epages_id(category)
|
37
|
+
perform_delete_request("/categories/#{id}")
|
38
|
+
end
|
39
|
+
|
40
|
+
# implements the call https://developer.epages.com/apps/api-reference/get-shops-shopid-categories-categoryid-sequence.html
|
41
|
+
def subcategories(object)
|
42
|
+
id = epages_id(object)
|
43
|
+
perform_get_request("/categories/#{id}/sequence")
|
44
|
+
end
|
45
|
+
|
46
|
+
# implements the call https://developer.epages.com/apps/api-reference/put-shops-shopid-categories-categoryid-sequence.html
|
47
|
+
def reorder_subcategories(object, data)
|
48
|
+
id = epages_id(object)
|
49
|
+
perform_put_request("/categories/#{id}/sequence", data)
|
50
|
+
end
|
51
|
+
|
52
|
+
# implements the call https://developer.epages.com/apps/api-reference/post-shops-shopid-product-category-assignments.html
|
53
|
+
# Same as Epages::REST::Products#`assign_categories`
|
54
|
+
def assign_products(options = {})
|
55
|
+
perform_post_request('/product-category-assignments', options)
|
56
|
+
end
|
57
|
+
|
58
|
+
# implements the call https://developer.epages.com/apps/api-reference/delete-shops-shopid-product-category-assignments.html
|
59
|
+
# Same as Epages::REST::Products#`delete_from_categories`
|
60
|
+
def delete_products(options = {})
|
61
|
+
perform_delete_request('/product-category-assignments', options)
|
62
|
+
end
|
26
63
|
end
|
27
64
|
end
|
28
65
|
end
|
@@ -11,7 +11,7 @@ module Epages
|
|
11
11
|
#
|
12
12
|
# @param options [Hash]
|
13
13
|
def customers(options = {})
|
14
|
-
|
14
|
+
perform_get_with_object('/customers', options, Epages::CustomersResponse)
|
15
15
|
end
|
16
16
|
|
17
17
|
# call the API to creates a customer. If customer_number is not provided in the request, it will be generated automatically.
|
@@ -7,27 +7,32 @@ module Epages
|
|
7
7
|
module Miscellaneous
|
8
8
|
include Epages::Utils
|
9
9
|
|
10
|
-
# implements the
|
10
|
+
# implements the call https://developer.epages.com/apps/api-reference/get-shops-shopid.html
|
11
11
|
def info(options = {})
|
12
12
|
response = perform_get_request('/', options)
|
13
13
|
underscorize_keys(response)
|
14
14
|
end
|
15
15
|
|
16
|
-
# implements the call https://developer.epages.com/apps/api-reference/get-shops-shopid-locales.html
|
17
|
-
def locales
|
18
|
-
perform_get_request('/locales', {})
|
19
|
-
end
|
20
|
-
|
21
16
|
# implements the call https://developer.epages.com/apps/api-reference/get-shops-shopid-currencies.html
|
22
17
|
def currencies
|
23
18
|
perform_get_request('/currencies', {})
|
24
19
|
end
|
25
20
|
|
21
|
+
# implements the call https://developer.epages.com/apps/api-reference/get-shops-shopid-locales.html
|
22
|
+
def locales
|
23
|
+
perform_get_request('/locales', {})
|
24
|
+
end
|
25
|
+
|
26
26
|
# implements the call https://developer.epages.com/apps/api-reference/get-shops-shopid-search-product-suggest.html
|
27
27
|
def product_suggestions_for(query, options = {})
|
28
28
|
response = perform_get_request('/search/product-suggest', options.merge(query: query))
|
29
29
|
parse_suggestions_to_products(response)
|
30
30
|
end
|
31
|
+
|
32
|
+
# implements the call https://developer.epages.com/apps/api-reference/get-shops-shopid-watched-products
|
33
|
+
def watched_products(options = {})
|
34
|
+
perform_get_request('/watched-products', {})
|
35
|
+
end
|
31
36
|
end
|
32
37
|
end
|
33
38
|
end
|
data/lib/epages/rest/orders.rb
CHANGED
@@ -8,7 +8,7 @@ module Epages
|
|
8
8
|
|
9
9
|
# implements the calls in https://developer.epages.com/apps/api-reference/get-shops-shopid-orders.html
|
10
10
|
def orders(options = {})
|
11
|
-
|
11
|
+
perform_get_with_object('/orders', options, Epages::OrdersResponse)
|
12
12
|
end
|
13
13
|
|
14
14
|
# implements the calls in https://developer.epages.com/apps/api-reference/get-shops-shopid-orders-orderid.html
|
data/lib/epages/rest/products.rb
CHANGED
@@ -11,7 +11,7 @@ module Epages
|
|
11
11
|
#
|
12
12
|
# @param options [Hash]
|
13
13
|
def products(options = {})
|
14
|
-
|
14
|
+
perform_get_with_object('/products', options, Epages::ProductsResponse)
|
15
15
|
end
|
16
16
|
|
17
17
|
# call the API and return a Epages::Product
|
@@ -123,16 +123,6 @@ module Epages
|
|
123
123
|
parse_product_lowest_price(response)
|
124
124
|
end
|
125
125
|
|
126
|
-
# call the API and return an array of Epages::Link pointing to the categories of the product
|
127
|
-
# implements the call https://developer.epages.com/apps/api-reference/get-shops-shopid-products-productid-categories.html
|
128
|
-
#
|
129
|
-
# @param product [String], [Epages::Product]
|
130
|
-
# @param options [Hash]
|
131
|
-
def product_categories(product, options = {})
|
132
|
-
id = epages_id(product)
|
133
|
-
perform_get_with_key_and_objects("/products/#{id}/categories", options, :links, Epages::Link)
|
134
|
-
end
|
135
|
-
|
136
126
|
# call the API and return an array of Epages::Product with updated attribute
|
137
127
|
# implements the call https://developer.epages.com/apps/api-reference/get-shops-shopid-products-updated-productproperty.html
|
138
128
|
#
|
@@ -158,6 +148,18 @@ module Epages
|
|
158
148
|
def watched_products(options = {})
|
159
149
|
perform_get_with_key_and_objects('/watched-products', options, :items, Epages::Product)
|
160
150
|
end
|
151
|
+
|
152
|
+
# implements the call https://developer.epages.com/apps/api-reference/post-shops-shopid-product-category-assignments.html
|
153
|
+
# Same as Epages::REST::Categories#`assign_products`
|
154
|
+
def assign_categories(options = {})
|
155
|
+
perform_post_request('/product-category-assignments', options)
|
156
|
+
end
|
157
|
+
|
158
|
+
# implements the call https://developer.epages.com/apps/api-reference/delete-shops-shopid-product-category-assignments.html
|
159
|
+
# Same as Epages::REST::Categories#`delete_products`
|
160
|
+
def delete_from_categories(options = {})
|
161
|
+
perform_delete_request('/product-category-assignments', options)
|
162
|
+
end
|
161
163
|
end
|
162
164
|
end
|
163
165
|
end
|
data/lib/epages/rest/request.rb
CHANGED
@@ -17,6 +17,8 @@ module Epages
|
|
17
17
|
|
18
18
|
def set_request_options(method, options)
|
19
19
|
@request_method = method
|
20
|
+
@is_a_new_webhook = new_webhook?(path)
|
21
|
+
@status_webhook = edit_webhook?(path)
|
20
22
|
@headers = request_headers
|
21
23
|
@options = format_options(options)
|
22
24
|
end
|
@@ -27,7 +29,10 @@ module Epages
|
|
27
29
|
|
28
30
|
# @return [Array, Hash]
|
29
31
|
def perform
|
30
|
-
response = HTTP.
|
32
|
+
response = HTTP.headers(accept: @headers['Accept'],
|
33
|
+
authorization: @headers['Authorization'],
|
34
|
+
content_type: @headers['Content-Type'],
|
35
|
+
user_agent: @headers['User-Agent']).public_send(@request_method, @uri.to_s, options_passed_by => @options)
|
31
36
|
fail_or_return_response_body(response)
|
32
37
|
end
|
33
38
|
|
@@ -36,11 +41,14 @@ module Epages
|
|
36
41
|
headers['Content-Type'] = content_type_options unless @request_method == :multipart_post
|
37
42
|
headers['Accept'] = '*/*'
|
38
43
|
headers['Authorization'] = auth_token if @shop.token?
|
44
|
+
headers['User-Agent'] = 'ruby gem'
|
39
45
|
headers
|
40
46
|
end
|
41
47
|
|
42
48
|
def options_passed_by
|
43
|
-
return :
|
49
|
+
return :body if @is_a_new_webhook
|
50
|
+
return :form if @status_webhook
|
51
|
+
return :form if (@request_method == :post && @options.key?(:image))
|
44
52
|
case @request_method
|
45
53
|
when :get then :params
|
46
54
|
when :patch then :body
|
@@ -49,10 +57,12 @@ module Epages
|
|
49
57
|
end
|
50
58
|
|
51
59
|
def content_type_options
|
60
|
+
return 'application/x-www-form-urlencoded' if @status_webhook
|
52
61
|
@request_method == :patch ? 'application/json-patch+json' : 'application/json'
|
53
62
|
end
|
54
63
|
|
55
64
|
def format_options(options)
|
65
|
+
# return options if @status_webhook
|
56
66
|
case @request_method
|
57
67
|
when :multipart_post then options_to_multipart_request(options)
|
58
68
|
when :patch then options_to_patch_request(options).to_json
|
@@ -77,6 +87,14 @@ module Epages
|
|
77
87
|
fail Epages::Error::ERRORS[response.code], response.body.to_s
|
78
88
|
end
|
79
89
|
end
|
90
|
+
|
91
|
+
def new_webhook?(path)
|
92
|
+
(path.to_s == "/webhooks") && (@request_method == :post)
|
93
|
+
end
|
94
|
+
|
95
|
+
def edit_webhook?(path)
|
96
|
+
(path.to_s.include? "/webhooks/") && (@request_method == :post)
|
97
|
+
end
|
80
98
|
end
|
81
99
|
end
|
82
100
|
end
|
data/lib/epages/rest/sales.rb
CHANGED
@@ -6,13 +6,13 @@ module Epages
|
|
6
6
|
module Sales
|
7
7
|
include REST::Utils
|
8
8
|
|
9
|
-
# call the API and return an
|
9
|
+
# call the API and return an object of SalesSummary
|
10
10
|
# implements the call https://developer.epages.com/apps/api-reference/get-shops-shopid-sales.html
|
11
11
|
#
|
12
12
|
# @param options [Hash]
|
13
13
|
def sales(options = {})
|
14
14
|
options[:product_id] = epages_id(options[:product_id]) if options[:product_id]
|
15
|
-
|
15
|
+
perform_get_with_object('/sales', format_dates_options(options), Epages::SalesSummary)
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'epages/rest/utils'
|
2
|
+
|
3
|
+
module Epages
|
4
|
+
module REST
|
5
|
+
# implements the calls in https://developer.epages.com/apps/api-reference/resource-tax-classes
|
6
|
+
module TaxClasses
|
7
|
+
include REST::Utils
|
8
|
+
|
9
|
+
# implements the call https://developer.epages.com/apps/api-reference/get-shops-shopid-tax-classes-taxclassid.html
|
10
|
+
def tax_class(tax, options = {})
|
11
|
+
id = epages_id(tax)
|
12
|
+
perform_get_with_object("/tax-classes/#{id}", options, Epages::TaxClass)
|
13
|
+
end
|
14
|
+
|
15
|
+
# implements the call https://developer.epages.com/apps/api-reference/get-shops-shopid-tax-classes.html
|
16
|
+
def tax_classes(options = {})
|
17
|
+
perform_get_with_key_and_objects("/tax-classes/", options, :items, Epages::TaxClass)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/epages/rest/utils.rb
CHANGED
@@ -116,6 +116,12 @@ module Epages
|
|
116
116
|
perform_request(:get, path, options)
|
117
117
|
end
|
118
118
|
|
119
|
+
# @param path [String]
|
120
|
+
# @param options [Hash]
|
121
|
+
def perform_post_request(path, options = {})
|
122
|
+
perform_request(:post, path, options)
|
123
|
+
end
|
124
|
+
|
119
125
|
# @param path [String]
|
120
126
|
# @param options [Hash]
|
121
127
|
def perform_put_request(path, options = {})
|
@@ -150,11 +156,11 @@ module Epages
|
|
150
156
|
|
151
157
|
def parse_legal_info(data)
|
152
158
|
{
|
153
|
-
contact_info: Epages::ContentPageSummary.new(data[:contactInformation]),
|
154
|
-
privacy_policy: Epages::ContentPageSummary.new(data[:privacyPolicy]),
|
155
|
-
terms_and_conditions: Epages::ContentPageSummary.new(data[:termsAndConditions]),
|
156
|
-
rights_of_withdrawal: Epages::ContentPageSummary.new(data[:rightsOfWithdrawal]),
|
157
|
-
shipping_info: Epages::ContentPageSummary.new(data[:shippingInformation]),
|
159
|
+
contact_info: Epages::ContentPageSummary.new(data[:contactInformation].nil? ? {'':''} : data[:contactInformation]),
|
160
|
+
privacy_policy: Epages::ContentPageSummary.new(data[:privacyPolicy].nil? ? {'':''} : data[:privacyPolicy]),
|
161
|
+
terms_and_conditions: Epages::ContentPageSummary.new(data[:termsAndConditions].nil? ? {'':''} : data[:termsAndConditions]),
|
162
|
+
rights_of_withdrawal: Epages::ContentPageSummary.new(data[:rightsOfWithdrawal].nil? ? {'':''} : data[:rightsOfWithdrawal]),
|
163
|
+
shipping_info: Epages::ContentPageSummary.new(data[:shippingInformation].nil? ? {'':''} : data[:shippingInformation]),
|
158
164
|
links: parse_links(data[:links]),
|
159
165
|
}
|
160
166
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'epages/utils'
|
2
|
+
require 'epages/rest/utils'
|
3
|
+
|
4
|
+
module Epages
|
5
|
+
module REST
|
6
|
+
module Webhooks
|
7
|
+
include REST::Utils
|
8
|
+
|
9
|
+
def webhook(webhook_id, options = {})
|
10
|
+
perform_get_with_object("/webhooks/#{webhook_id}", options, Epages::Webhook)
|
11
|
+
end
|
12
|
+
|
13
|
+
def create_webhook(callback_url, event_type)
|
14
|
+
available_events = ["PRODUCT_CREATE", "PRODUCT_UPDATE", "PRODUCT_DELETE", "ORDER_CREATE", "ORDER_UPDATE", "ORDER_DELETE", "APP_UNINSTALL"]
|
15
|
+
# return 'Invalid event' unless (available_events.include? event_type)
|
16
|
+
perform_post_with_object("/webhooks",
|
17
|
+
{ 'callbackUrl': callback_url, 'eventType': event_type },
|
18
|
+
Epages::Webhook)
|
19
|
+
end
|
20
|
+
|
21
|
+
def activate_webhook(webhook_id)
|
22
|
+
perform_post_with_object("/webhooks/#{webhook_id}", { 'active': 'true' }, Epages::Webhook)
|
23
|
+
end
|
24
|
+
|
25
|
+
def deactivate_webhook(webhook_id)
|
26
|
+
perform_post_with_object("/webhooks/#{webhook_id}", { 'active': 'false' }, Epages::Webhook)
|
27
|
+
end
|
28
|
+
|
29
|
+
def delete_webhook(webhook_id, options = {})
|
30
|
+
answer = perform_delete_request("/webhooks/#{webhook_id}", options)
|
31
|
+
return answer.nil? ? 'Deleted' : 'Error'
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -2,10 +2,10 @@ require 'epages/utils'
|
|
2
2
|
require 'epages/rest/sales'
|
3
3
|
|
4
4
|
module Epages
|
5
|
-
class
|
5
|
+
class Sales
|
6
6
|
include Epages::Utils
|
7
7
|
|
8
|
-
KEYS = %w(currency total_gross_revenue total_net_revenue
|
8
|
+
KEYS = %w(currency total_gross_revenue total_net_revenue units_sold total_orders).collect(&:to_sym).freeze
|
9
9
|
|
10
10
|
attr_reader *KEYS
|
11
11
|
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'epages/utils'
|
2
|
+
require 'epages/rest/sales'
|
3
|
+
|
4
|
+
module Epages
|
5
|
+
class SalesSummary
|
6
|
+
include Epages::Utils
|
7
|
+
|
8
|
+
KEYS = %w(created_after created_before sales_per_currency).collect(&:to_sym).freeze
|
9
|
+
|
10
|
+
attr_reader *KEYS
|
11
|
+
|
12
|
+
def initialize(data)
|
13
|
+
parse_attribute_as_array_of(:salesPerCurrency, data.delete(:salesPerCurrency), Epages::Sales)
|
14
|
+
parse_attributes(data)
|
15
|
+
end
|
16
|
+
|
17
|
+
alias_method :sales, :sales_per_currency
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'epages/utils'
|
2
|
+
|
3
|
+
module Epages
|
4
|
+
class TaxClass
|
5
|
+
include Epages::Utils
|
6
|
+
|
7
|
+
KEYS = %w(tax_class_id name links).collect(&:to_sym).freeze
|
8
|
+
|
9
|
+
attr_reader *KEYS
|
10
|
+
|
11
|
+
def initialize(data)
|
12
|
+
@links = data.delete(:links).collect { |i| Epages::Link.new(i) } if data[:links]
|
13
|
+
parse_attributes(data)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/epages/version.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'epages/utils'
|
2
|
+
|
3
|
+
module Epages
|
4
|
+
class Webhook
|
5
|
+
include Epages::Utils
|
6
|
+
|
7
|
+
KEYS = %w(webhook_id active event_type callback_url created_on updated_on links).collect(&:to_sym).freeze
|
8
|
+
|
9
|
+
attr_reader *KEYS
|
10
|
+
|
11
|
+
def initialize(data)
|
12
|
+
parse_attribute_as_array_of(:links, data.delete(:links), Epages::Link)
|
13
|
+
parse_attributes(data)
|
14
|
+
end
|
15
|
+
|
16
|
+
alias_method :id, :webhook_id
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'epages/utils'
|
2
|
+
|
3
|
+
module Epages
|
4
|
+
class WebhookResponse
|
5
|
+
include Epages::Utils
|
6
|
+
|
7
|
+
KEYS = %w(links content page).collect(&:to_sym).freeze
|
8
|
+
|
9
|
+
attr_reader *KEYS
|
10
|
+
|
11
|
+
def initialize(data)
|
12
|
+
parse_attribute_as_array_of(:links, data.delete(:links), Epages::Link)
|
13
|
+
parse_attribute_as_array_of(:content, data.delete(:content), Epages::Webhook)
|
14
|
+
parse_attribute_as(:page, data.delete(:page), Epages::WebhookResponsePagination)
|
15
|
+
end
|
16
|
+
|
17
|
+
alias_method :webhooks, :content
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'epages/utils'
|
2
|
+
|
3
|
+
module Epages
|
4
|
+
class WebhookResponsePagination
|
5
|
+
include Epages::Utils
|
6
|
+
|
7
|
+
KEYS = %w(size total_elements total_pages number).collect(&:to_sym).freeze
|
8
|
+
|
9
|
+
attr_reader *KEYS
|
10
|
+
|
11
|
+
def initialize(data)
|
12
|
+
parse_attributes(data)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/epages-rest.rb
CHANGED
@@ -4,30 +4,43 @@ require 'epages/cart'
|
|
4
4
|
require 'epages/category'
|
5
5
|
require 'epages/content_page_summary'
|
6
6
|
require 'epages/customer'
|
7
|
+
require 'epages/customers_response'
|
7
8
|
require 'epages/custom_attribute'
|
9
|
+
require 'epages/delivery_weight_quantity'
|
8
10
|
require 'epages/error'
|
9
11
|
require 'epages/image'
|
10
12
|
require 'epages/image_size'
|
11
13
|
require 'epages/line_item_container'
|
12
14
|
require 'epages/link'
|
13
15
|
require 'epages/newsletter'
|
16
|
+
require 'epages/minimum_cart'
|
14
17
|
require 'epages/order'
|
18
|
+
require 'epages/orders_response'
|
15
19
|
require 'epages/payment_data'
|
16
20
|
require 'epages/payment_method_info'
|
17
21
|
require 'epages/price'
|
18
22
|
require 'epages/price_info'
|
19
23
|
require 'epages/product'
|
24
|
+
require 'epages/products_response'
|
20
25
|
require 'epages/product_line_item'
|
21
|
-
require 'epages/
|
26
|
+
require 'epages/quantity'
|
27
|
+
require 'epages/sales'
|
28
|
+
require 'epages/sales_summary'
|
22
29
|
require 'epages/shipping_data'
|
23
30
|
require 'epages/shipping_method'
|
24
31
|
require 'epages/shipping_method_info'
|
25
32
|
require 'epages/shop'
|
26
33
|
require 'epages/subscriber'
|
34
|
+
require 'epages/tax_class'
|
35
|
+
require 'epages/tax_class_info'
|
27
36
|
require 'epages/utils'
|
28
37
|
require 'epages/variation'
|
29
38
|
require 'epages/variation_attribute'
|
39
|
+
require 'epages/variation_identifier'
|
30
40
|
require 'epages/version'
|
41
|
+
require 'epages/webhook_response_pagination'
|
42
|
+
require 'epages/webhook_response'
|
43
|
+
require 'epages/webhook'
|
31
44
|
|
32
45
|
require 'epages/rest/api'
|
33
46
|
require 'epages/rest/carts'
|
@@ -41,4 +54,6 @@ require 'epages/rest/request'
|
|
41
54
|
require 'epages/rest/sales'
|
42
55
|
require 'epages/rest/shipping_methods'
|
43
56
|
require 'epages/rest/shop'
|
57
|
+
require 'epages/rest/tax_classes'
|
44
58
|
require 'epages/rest/utils'
|
59
|
+
require 'epages/rest/webhooks'
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epages-rest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Domingo Cividanes
|
8
|
+
- Unai Martinez
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2017-05-23 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: bundler
|
@@ -16,47 +17,46 @@ dependencies:
|
|
16
17
|
requirements:
|
17
18
|
- - "~>"
|
18
19
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
20
|
+
version: '1.13'
|
20
21
|
type: :development
|
21
22
|
prerelease: false
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
23
24
|
requirements:
|
24
25
|
- - "~>"
|
25
26
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
27
|
+
version: '1.13'
|
27
28
|
- !ruby/object:Gem::Dependency
|
28
29
|
name: http
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
30
31
|
requirements:
|
31
32
|
- - "~>"
|
32
33
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
34
|
+
version: '2.1'
|
34
35
|
type: :runtime
|
35
36
|
prerelease: false
|
36
37
|
version_requirements: !ruby/object:Gem::Requirement
|
37
38
|
requirements:
|
38
39
|
- - "~>"
|
39
40
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
41
|
+
version: '2.1'
|
41
42
|
- !ruby/object:Gem::Dependency
|
42
43
|
name: activesupport
|
43
44
|
requirement: !ruby/object:Gem::Requirement
|
44
45
|
requirements:
|
45
46
|
- - "~>"
|
46
47
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
48
|
+
version: '5.0'
|
48
49
|
type: :runtime
|
49
50
|
prerelease: false
|
50
51
|
version_requirements: !ruby/object:Gem::Requirement
|
51
52
|
requirements:
|
52
53
|
- - "~>"
|
53
54
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
55
|
+
version: '5.0'
|
55
56
|
description: A Ruby interface that allows to integrate any Epages Shop with any ruby
|
56
57
|
framework via Epages Rest API.
|
57
58
|
email:
|
58
|
-
-
|
59
|
-
- dcividanes@epages.com
|
59
|
+
- u.martinez@epages.com
|
60
60
|
executables: []
|
61
61
|
extensions: []
|
62
62
|
extra_rdoc_files: []
|
@@ -72,19 +72,25 @@ files:
|
|
72
72
|
- lib/epages/content_page_summary.rb
|
73
73
|
- lib/epages/custom_attribute.rb
|
74
74
|
- lib/epages/customer.rb
|
75
|
+
- lib/epages/customers_response.rb
|
76
|
+
- lib/epages/delivery_weight_quantity.rb
|
75
77
|
- lib/epages/error.rb
|
76
78
|
- lib/epages/image.rb
|
77
79
|
- lib/epages/image_size.rb
|
78
80
|
- lib/epages/line_item_container.rb
|
79
81
|
- lib/epages/link.rb
|
82
|
+
- lib/epages/minimum_cart.rb
|
80
83
|
- lib/epages/newsletter.rb
|
81
84
|
- lib/epages/order.rb
|
85
|
+
- lib/epages/orders_response.rb
|
82
86
|
- lib/epages/payment_data.rb
|
83
87
|
- lib/epages/payment_method_info.rb
|
84
88
|
- lib/epages/price.rb
|
85
89
|
- lib/epages/price_info.rb
|
86
90
|
- lib/epages/product.rb
|
87
91
|
- lib/epages/product_line_item.rb
|
92
|
+
- lib/epages/products_response.rb
|
93
|
+
- lib/epages/quantity.rb
|
88
94
|
- lib/epages/rest/api.rb
|
89
95
|
- lib/epages/rest/carts.rb
|
90
96
|
- lib/epages/rest/categories.rb
|
@@ -98,17 +104,26 @@ files:
|
|
98
104
|
- lib/epages/rest/sales.rb
|
99
105
|
- lib/epages/rest/shipping_methods.rb
|
100
106
|
- lib/epages/rest/shop.rb
|
107
|
+
- lib/epages/rest/tax_classes.rb
|
101
108
|
- lib/epages/rest/utils.rb
|
102
|
-
- lib/epages/
|
109
|
+
- lib/epages/rest/webhooks.rb
|
110
|
+
- lib/epages/sales.rb
|
111
|
+
- lib/epages/sales_summary.rb
|
103
112
|
- lib/epages/shipping_data.rb
|
104
113
|
- lib/epages/shipping_method.rb
|
105
114
|
- lib/epages/shipping_method_info.rb
|
106
115
|
- lib/epages/shop.rb
|
107
116
|
- lib/epages/subscriber.rb
|
117
|
+
- lib/epages/tax_class.rb
|
118
|
+
- lib/epages/tax_class_info.rb
|
108
119
|
- lib/epages/utils.rb
|
109
120
|
- lib/epages/variation.rb
|
110
121
|
- lib/epages/variation_attribute.rb
|
122
|
+
- lib/epages/variation_identifier.rb
|
111
123
|
- lib/epages/version.rb
|
124
|
+
- lib/epages/webhook.rb
|
125
|
+
- lib/epages/webhook_response.rb
|
126
|
+
- lib/epages/webhook_response_pagination.rb
|
112
127
|
homepage: https://github.com/ePages-de/epages-rest-ruby
|
113
128
|
licenses:
|
114
129
|
- MIT
|
@@ -129,9 +144,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
129
144
|
version: '0'
|
130
145
|
requirements: []
|
131
146
|
rubyforge_project:
|
132
|
-
rubygems_version: 2.
|
147
|
+
rubygems_version: 2.6.11
|
133
148
|
signing_key:
|
134
149
|
specification_version: 4
|
135
150
|
summary: A Ruby interface to the Epages Rest API.
|
136
151
|
test_files: []
|
137
|
-
has_rdoc:
|