aboutyou-sdk 0.0.29 → 0.0.30
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 +8 -8
- data/lib/AboutYou/CacheProvider/dalli.rb +3 -0
- data/lib/AboutYou/Criteria/product_fields.rb +3 -0
- data/lib/AboutYou/Criteria/product_search_criteria.rb +8 -8
- data/lib/AboutYou/Factory/default_model_factory.rb +15 -2
- data/lib/AboutYou/Model/Basket/abstract_basket_item.rb +25 -20
- data/lib/AboutYou/Model/Basket/basket_item.rb +27 -27
- data/lib/AboutYou/Model/Basket/basket_set.rb +60 -62
- data/lib/AboutYou/Model/Basket/basket_set_item.rb +8 -9
- data/lib/AboutYou/Model/Basket/basket_variant_item.rb +55 -21
- data/lib/AboutYou/Model/ProductSearchResult/facet_count.rb +0 -2
- data/lib/AboutYou/Model/ProductSearchResult/price_range.rb +2 -2
- data/lib/AboutYou/Model/abstract_model.rb +5 -3
- data/lib/AboutYou/Model/app.rb +0 -2
- data/lib/AboutYou/Model/autocomplete.rb +0 -2
- data/lib/AboutYou/Model/basket.rb +91 -19
- data/lib/AboutYou/Model/brand.rb +8 -4
- data/lib/AboutYou/Model/categories_result.rb +13 -2
- data/lib/AboutYou/Model/category.rb +45 -19
- data/lib/AboutYou/Model/category_tree.rb +21 -7
- data/lib/AboutYou/Model/facet.rb +44 -22
- data/lib/AboutYou/Model/facet_group.rb +55 -21
- data/lib/AboutYou/Model/facet_group_set.rb +106 -23
- data/lib/AboutYou/Model/image.rb +36 -25
- data/lib/AboutYou/Model/image_size.rb +8 -5
- data/lib/AboutYou/Model/initiate_order.rb +26 -7
- data/lib/AboutYou/Model/order.rb +12 -2
- data/lib/AboutYou/Model/product.rb +261 -5
- data/lib/AboutYou/Model/product_search_result.rb +40 -10
- data/lib/AboutYou/Model/{products_ean_result.rb → products_eans_result.rb} +11 -5
- data/lib/AboutYou/Model/products_result.rb +13 -14
- data/lib/AboutYou/Model/result_error.rb +18 -2
- data/lib/AboutYou/Model/variant.rb +87 -26
- data/lib/AboutYou/Model/variants_result.rb +31 -15
- data/lib/AboutYou/client.rb +7 -0
- data/lib/AboutYou/query.rb +7 -2
- data/lib/AboutYou/query_builder.rb +22 -3
- data/lib/aboutyou-sdk.rb +7 -0
- metadata +3 -3
data/lib/AboutYou/Model/brand.rb
CHANGED
@@ -3,17 +3,21 @@ module AboutYou
|
|
3
3
|
module Model
|
4
4
|
###
|
5
5
|
# This Class represents a brand model
|
6
|
-
#
|
7
|
-
# author:: Collins GmbH & Co KG
|
8
6
|
###
|
9
7
|
class Brand
|
8
|
+
# the id of the brand
|
10
9
|
attr_accessor :id
|
10
|
+
# the name of the brand
|
11
11
|
attr_accessor :name
|
12
12
|
|
13
13
|
###
|
14
|
-
#
|
14
|
+
# This method is used for creating an instance of this class by a json_object.
|
15
15
|
#
|
16
|
-
#
|
16
|
+
# * *Args* :
|
17
|
+
# - +json_object+ -> the json_object received from the api
|
18
|
+
#
|
19
|
+
# * *Returns* :
|
20
|
+
# - Instance of AboutYou::SDK::Model::Brand
|
17
21
|
###
|
18
22
|
def self.create_from_json(json_object)
|
19
23
|
brand = new
|
@@ -2,15 +2,26 @@ module AboutYou
|
|
2
2
|
module SDK
|
3
3
|
module Model
|
4
4
|
###
|
5
|
-
#
|
6
5
|
# This class is used as a model for a categories result
|
7
|
-
#
|
8
6
|
###
|
9
7
|
class CategoriesResult
|
8
|
+
# Array containing instances of AboutYou::SDK::Model::Category
|
10
9
|
attr_accessor :categories
|
10
|
+
# Array containing the categories which are not found
|
11
11
|
attr_accessor :categories_not_found
|
12
|
+
# the ids of the categories in this result
|
12
13
|
attr_accessor :ids
|
13
14
|
|
15
|
+
###
|
16
|
+
# Constructor for the AboutYou::SDK::Model::CategoriesResult class
|
17
|
+
#
|
18
|
+
# * *Args* :
|
19
|
+
# - +category_manager+ -> instance of AboutYou::SDK::Model::CategoryManager::DefaultCategoryManager
|
20
|
+
# - +ids+ -> the ids of the categories in this result
|
21
|
+
#
|
22
|
+
# * *Returns* :
|
23
|
+
# - an instance of AboutYou::SDK::Model::CategoriesResult
|
24
|
+
###
|
14
25
|
def initialize(category_manager, ids)
|
15
26
|
self.ids = ids
|
16
27
|
self.categories = category_manager.categories(
|
@@ -2,43 +2,55 @@ module AboutYou
|
|
2
2
|
module SDK
|
3
3
|
module Model
|
4
4
|
###
|
5
|
-
#
|
6
5
|
# This class represents a category model
|
7
|
-
#
|
8
6
|
###
|
9
7
|
class Category
|
8
|
+
# all categories
|
10
9
|
ALL = false
|
10
|
+
# only active categories
|
11
11
|
ACTIVE_ONLY = true
|
12
12
|
|
13
|
-
#
|
13
|
+
# id of the category
|
14
14
|
attr_accessor :id
|
15
|
-
#
|
15
|
+
# name of the category
|
16
16
|
attr_accessor :name
|
17
|
-
#
|
17
|
+
# boolean determining whether the category is active
|
18
18
|
attr_accessor :is_active
|
19
|
-
#
|
19
|
+
# position of the category
|
20
20
|
attr_accessor :position
|
21
|
-
#
|
21
|
+
# id of the parent category
|
22
22
|
attr_accessor :parent_id
|
23
|
-
#
|
23
|
+
# Array containing all subcategories
|
24
24
|
attr_accessor :all_subcategories
|
25
|
-
#
|
25
|
+
# Array containing all active subcategories
|
26
26
|
attr_accessor :active_subcategories
|
27
|
-
#
|
27
|
+
# count of products in category
|
28
28
|
attr_accessor :product_count
|
29
|
+
# instance of AboutYou::SDK::Model::CategoryManager::DefaultCategoryManager
|
29
30
|
attr_accessor :category_manager
|
30
31
|
|
32
|
+
###
|
33
|
+
# Constructor for the AboutYou::SDK::Model::Category class
|
34
|
+
#
|
35
|
+
# * *Returns* :
|
36
|
+
# - an instance of AboutYou::SDK::Model::Category
|
37
|
+
###
|
31
38
|
def initialize
|
32
39
|
self.all_subcategories = []
|
33
40
|
self.active_subcategories = []
|
41
|
+
|
42
|
+
self
|
34
43
|
end
|
35
44
|
|
36
45
|
###
|
37
|
-
#
|
38
|
-
#
|
39
|
-
#
|
46
|
+
# This method is used for creating an instance of this class by a json_object.
|
47
|
+
#
|
48
|
+
# * *Args* :
|
49
|
+
# - +json_object+ -> the json_object received from the api
|
50
|
+
# - +cat_manager+ -> instance of AboutYou::SDK::Model::CategoryManager::DefaultCategoryManager
|
40
51
|
#
|
41
|
-
#
|
52
|
+
# * *Returns* :
|
53
|
+
# - Instance of AboutYou::SDK::Model::Category
|
42
54
|
###
|
43
55
|
def self.create_from_json(json_object, cat_manager)
|
44
56
|
category = new
|
@@ -54,14 +66,21 @@ module AboutYou
|
|
54
66
|
end
|
55
67
|
|
56
68
|
###
|
57
|
-
#
|
69
|
+
# This method checks if the complete category path up to this category is
|
70
|
+
# active
|
71
|
+
#
|
72
|
+
# * *Returns* :
|
73
|
+
# - Boolean determining whether the complete path up to this category is active or not
|
58
74
|
###
|
59
75
|
def path_active?
|
60
76
|
is_active && (parent.nil? || parent.path_active?)
|
61
77
|
end
|
62
78
|
|
63
79
|
###
|
64
|
-
#
|
80
|
+
# This method returns the parent category
|
81
|
+
#
|
82
|
+
# * *Returns* :
|
83
|
+
# - Either instance of AboutYou::SDK::Model::Category or nil if no parent category is set
|
65
84
|
###
|
66
85
|
def parent
|
67
86
|
return nil unless parent_id
|
@@ -70,9 +89,13 @@ module AboutYou
|
|
70
89
|
end
|
71
90
|
|
72
91
|
###
|
73
|
-
#
|
92
|
+
# This method is used for getting all subcategories
|
74
93
|
#
|
75
|
-
#
|
94
|
+
# * *Args* :
|
95
|
+
# - +active_only+ -> boolean controlling whether the result should only contain active categories or not
|
96
|
+
#
|
97
|
+
# * *Returns* :
|
98
|
+
# - Hash containing pairs of category_id => instance of AboutYou::SDK::Model::Category
|
76
99
|
###
|
77
100
|
def subcategories(active_only = ACTIVE_ONLY)
|
78
101
|
subcategories = category_manager.subcategories(id, active_only)
|
@@ -88,7 +111,10 @@ module AboutYou
|
|
88
111
|
end
|
89
112
|
|
90
113
|
###
|
91
|
-
#
|
114
|
+
# This method is used for getting the breadcrumb up to this category
|
115
|
+
#
|
116
|
+
# * *Returns* :
|
117
|
+
# - Array containing instances of AboutYou::SDK::Model::Category
|
92
118
|
###
|
93
119
|
def breadcrumb
|
94
120
|
breadcrumb = parent ? parent.breadcrumb : []
|
@@ -2,31 +2,45 @@ module AboutYou
|
|
2
2
|
module SDK
|
3
3
|
module Model
|
4
4
|
###
|
5
|
-
#
|
6
5
|
# This class represents a category tree model
|
7
|
-
#
|
8
6
|
###
|
9
7
|
class CategoryTree
|
10
|
-
#
|
8
|
+
# instance of AboutYou::SDK::Model::CategoryManager::DefaultCategoryManager
|
11
9
|
attr_accessor :category_manager
|
12
10
|
|
11
|
+
###
|
12
|
+
# Constructor for the AboutYou::SDK::Model::CategoryTree class
|
13
|
+
#
|
14
|
+
# * *Args* :
|
15
|
+
# - +cat_manager+ -> The category manager
|
16
|
+
#
|
17
|
+
# * *Returns* :
|
18
|
+
# - an instance of AboutYou::SDK::Model::CategoryTree
|
19
|
+
###
|
13
20
|
def initialize(cat_manager)
|
14
21
|
self.category_manager = cat_manager
|
22
|
+
|
23
|
+
self
|
15
24
|
end
|
16
25
|
|
17
26
|
###
|
18
|
-
#
|
27
|
+
# This method is used for getting the root categories of the tree
|
28
|
+
#
|
29
|
+
# * *Args* :
|
30
|
+
# - +act_only+ -> boolean controlling whether the result should only contain active categories or not
|
19
31
|
#
|
20
|
-
#
|
32
|
+
# * *Returns* :
|
33
|
+
# - a Hash containing pairs of category_id => instance of AboutYou::SDK::Model::Category
|
21
34
|
###
|
22
35
|
def categories(act_only = AboutYou::SDK::Model::Category::ACTIVE_ONLY)
|
23
36
|
category_manager.category_tree(act_only)
|
24
37
|
end
|
25
38
|
|
26
39
|
###
|
27
|
-
#
|
40
|
+
# This method counts all active root categories
|
28
41
|
#
|
29
|
-
#
|
42
|
+
# * *Returns* :
|
43
|
+
# - Integer count of active root categories
|
30
44
|
###
|
31
45
|
def count
|
32
46
|
categories(true).count
|
data/lib/AboutYou/Model/facet.rb
CHANGED
@@ -2,9 +2,7 @@ module AboutYou
|
|
2
2
|
module SDK
|
3
3
|
module Model
|
4
4
|
###
|
5
|
-
#
|
6
5
|
# This class represents a Facet model
|
7
|
-
#
|
8
6
|
###
|
9
7
|
class Facet
|
10
8
|
# Group Id for Brands
|
@@ -53,28 +51,39 @@ module AboutYou
|
|
53
51
|
FACET_QUANTITY_PER_PACK = 263
|
54
52
|
# Group Id for Season Code
|
55
53
|
FACET_SEASON_CODE = 289
|
56
|
-
|
54
|
+
# api-call name for requiring all facets
|
55
|
+
FACETS_ALL = '_all'
|
56
|
+
# api-call-value for requiring unlimited facets
|
57
|
+
FACETS_UNLIMITED = -1
|
58
|
+
|
59
|
+
# json_object with which this instance was created
|
57
60
|
attr_accessor :json_object
|
58
|
-
#
|
61
|
+
# id of the facet
|
59
62
|
attr_accessor :id
|
60
|
-
#
|
63
|
+
# name of the facet
|
61
64
|
attr_accessor :name
|
62
|
-
#
|
65
|
+
# value of the facet
|
63
66
|
attr_accessor :value
|
64
|
-
#
|
67
|
+
# id of the group of the facet
|
65
68
|
attr_accessor :group_id
|
66
|
-
#
|
69
|
+
# name of the group of the facet
|
67
70
|
attr_accessor :group_name
|
68
|
-
#
|
71
|
+
# options of the facet
|
69
72
|
attr_accessor :options
|
70
73
|
|
71
74
|
###
|
72
|
-
#
|
73
|
-
#
|
74
|
-
#
|
75
|
-
#
|
76
|
-
#
|
77
|
-
#
|
75
|
+
# Constructor for the AboutYou::SDK::Model::Facet class
|
76
|
+
#
|
77
|
+
# * *Args* :
|
78
|
+
# - +id+ -> the id of the facet
|
79
|
+
# - +name+ -> the name of the facet
|
80
|
+
# - +value+ -> the value of the facet
|
81
|
+
# - +group_id+ -> id of the group of the facet
|
82
|
+
# - +group_name+ -> name of the group of the facet
|
83
|
+
# - +options+ -> options of the facet
|
84
|
+
#
|
85
|
+
# * *Returns* :
|
86
|
+
# - an instance of AboutYou::SDK::Model::Facet
|
78
87
|
###
|
79
88
|
def initialize(id, name, value, group_id, group_name, options = nil)
|
80
89
|
self.id = id
|
@@ -83,12 +92,18 @@ module AboutYou
|
|
83
92
|
self.group_id = group_id
|
84
93
|
self.group_name = group_name
|
85
94
|
self.options = options
|
95
|
+
|
96
|
+
self
|
86
97
|
end
|
87
98
|
|
88
99
|
###
|
89
|
-
#
|
100
|
+
# This method is used for creating an instance of this class by a json_object.
|
101
|
+
#
|
102
|
+
# * *Args* :
|
103
|
+
# - +json_object+ -> the json_object received from the api
|
90
104
|
#
|
91
|
-
#
|
105
|
+
# * *Returns* :
|
106
|
+
# - Instance of AboutYou::SDK::Model::Facet
|
92
107
|
###
|
93
108
|
def self.create_from_json(json_object)
|
94
109
|
new(
|
@@ -102,9 +117,14 @@ module AboutYou
|
|
102
117
|
end
|
103
118
|
|
104
119
|
###
|
105
|
-
#
|
120
|
+
# This method is used for creating a unique key for a facet
|
121
|
+
#
|
122
|
+
# * *Args* :
|
123
|
+
# - +group_id+ -> id of the group of a facet
|
124
|
+
# - +facet_id+ -> id of a facet
|
106
125
|
#
|
107
|
-
#
|
126
|
+
# * *Returns* :
|
127
|
+
# - a String containing a unique key for a facet
|
108
128
|
###
|
109
129
|
def unique_key(group_id = nil, facet_id = nil)
|
110
130
|
return String(group_id) + ':' + String(facet_id) unless
|
@@ -115,11 +135,13 @@ module AboutYou
|
|
115
135
|
end
|
116
136
|
|
117
137
|
###
|
118
|
-
#
|
138
|
+
# Getter for options
|
119
139
|
#
|
120
|
-
#
|
140
|
+
# * *Args* :
|
141
|
+
# - +key+ -> The key for which options should be returned
|
121
142
|
#
|
122
|
-
#
|
143
|
+
# * *Returns* :
|
144
|
+
# - either null if no options are set or a String containing an option
|
123
145
|
###
|
124
146
|
def option(key)
|
125
147
|
return unless options
|
@@ -2,38 +2,51 @@ module AboutYou
|
|
2
2
|
module SDK
|
3
3
|
module Model
|
4
4
|
###
|
5
|
-
#
|
6
5
|
# This class represents a facet group model
|
7
|
-
#
|
8
6
|
###
|
9
7
|
class FacetGroup
|
10
|
-
#
|
8
|
+
# Array of instances of AboutYou::SDK::Model::Facet
|
11
9
|
attr_accessor :facets
|
12
|
-
#
|
10
|
+
# id of this facet group
|
13
11
|
attr_accessor :id
|
14
|
-
#
|
12
|
+
# name of the facet group
|
15
13
|
attr_accessor :name
|
14
|
+
# id of the group of this facet group
|
16
15
|
attr_accessor :group_id
|
17
16
|
|
18
17
|
###
|
19
|
-
#
|
20
|
-
#
|
18
|
+
# Constructor for the AboutYou::SDK::Model::FacetGroup class
|
19
|
+
#
|
20
|
+
# * *Args* :
|
21
|
+
# - +id+ -> the id of the facet group
|
22
|
+
# - +name+ -> the name of the facet group
|
23
|
+
#
|
24
|
+
# * *Returns* :
|
25
|
+
# - an instance of AboutYou::SDK::Model::FacetGroup
|
21
26
|
###
|
22
27
|
def initialize(id, name)
|
23
28
|
self.id = id
|
24
29
|
self.name = name
|
25
30
|
self.facets = {}
|
31
|
+
|
32
|
+
self
|
26
33
|
end
|
27
34
|
|
28
35
|
###
|
29
|
-
#
|
36
|
+
# this method adds a facet to the facet group
|
37
|
+
#
|
38
|
+
# * *Args* :
|
39
|
+
# - +facet+ -> instance of AboutYou::SDK::Model::Facet which should be added
|
30
40
|
###
|
31
41
|
def add_facet(facet)
|
32
42
|
facets[facet.id] = facet
|
33
43
|
end
|
34
44
|
|
35
45
|
###
|
36
|
-
#
|
46
|
+
# this method adds facets to the facet group
|
47
|
+
#
|
48
|
+
# * *Args* :
|
49
|
+
# - +facets+ -> Array containing instances of AboutYou::SDK::Model::Facet which should be added
|
37
50
|
###
|
38
51
|
def add_facets(facets)
|
39
52
|
facets.each do |facet|
|
@@ -42,28 +55,33 @@ module AboutYou
|
|
42
55
|
end
|
43
56
|
|
44
57
|
###
|
45
|
-
#
|
46
|
-
# eg. for size with to size facets "36" and "37" -> "36/37"
|
47
|
-
#
|
48
|
-
# @param string $separator
|
58
|
+
# this method is used for getting all of the facet names of this facet group
|
49
59
|
#
|
50
|
-
#
|
60
|
+
# * *Args* :
|
61
|
+
# - +separator+ -> String controlling how the facet names should be seperated
|
62
|
+
#
|
63
|
+
# * *Returns* :
|
64
|
+
# - Array of Strings
|
51
65
|
###
|
52
66
|
def facet_names(separator = '/')
|
53
67
|
names = []
|
54
68
|
facets.each do |facet|
|
55
69
|
names.push(facet.name)
|
56
70
|
end
|
57
|
-
|
58
71
|
names.join(separator)
|
72
|
+
|
73
|
+
names
|
59
74
|
end
|
60
75
|
|
61
76
|
###
|
62
|
-
#
|
77
|
+
# This method is used for checking whether a given facet group is equal
|
78
|
+
# to this facet group
|
63
79
|
#
|
64
|
-
#
|
65
|
-
#
|
66
|
-
#
|
80
|
+
# * *Args* :
|
81
|
+
# - +facet_group+ -> instance of AboutYou::SDK::Model::FacetGroup used for checking
|
82
|
+
#
|
83
|
+
# * *Returns* :
|
84
|
+
# -Boolean determining whether the facet groups are equal
|
67
85
|
###
|
68
86
|
def equal?(facet_group)
|
69
87
|
return false unless id == facet_group.id
|
@@ -72,9 +90,10 @@ module AboutYou
|
|
72
90
|
end
|
73
91
|
|
74
92
|
###
|
75
|
-
#
|
93
|
+
# This method is used for creating a unique key for this facet group
|
76
94
|
#
|
77
|
-
#
|
95
|
+
# * *Returns* :
|
96
|
+
# - a String containing a unique key for this facet group
|
78
97
|
###
|
79
98
|
def unique_key
|
80
99
|
facet_ids = facets.keys
|
@@ -83,10 +102,25 @@ module AboutYou
|
|
83
102
|
String(id) + ':' + String(facet_ids.join(','))
|
84
103
|
end
|
85
104
|
|
105
|
+
###
|
106
|
+
# Gett for the ids
|
107
|
+
#
|
108
|
+
# * *Returns* :
|
109
|
+
# - Hash containing a pair of facet_group_id => Array of facet_ids
|
110
|
+
###
|
86
111
|
def ids
|
87
112
|
{ id => facets.keys }
|
88
113
|
end
|
89
114
|
|
115
|
+
###
|
116
|
+
# This method checks if this facet group contains a facet
|
117
|
+
#
|
118
|
+
# * *Args* :
|
119
|
+
# - +facet+ -> instance of AboutYou::SDK::Model::Facet
|
120
|
+
#
|
121
|
+
# * *Returns* :
|
122
|
+
# - Boolean determining whether this facet group contains the facet or not
|
123
|
+
###
|
90
124
|
def contains(facet)
|
91
125
|
facets.key?(facet.id)
|
92
126
|
end
|