aboutyou-sdk 0.0.29 → 0.0.30
Sign up to get free protection for your applications and to get access to all the features.
- 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
|