constructorio 2.0.8 → 2.0.9
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/lib/constructorio/client.rb +12 -4
- data/lib/constructorio/version.rb +1 -1
- data/test/constructorio_test.rb +103 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8aeef86fff7ce9f7baeb48332125b65315f63e1
|
4
|
+
data.tar.gz: e431cc58b523930af8078d70e506205790779f78
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e98301f67a9bddb1a7a668e43e1da270ded3e5387fbf5046678e1e1e5fc92360e2b7135c75f503b0a541f5677b40e63f963d15c7759a4750080daf6e0942029
|
7
|
+
data.tar.gz: eda3cc8a98784edf756c24a991b39129afdfee6c2d241805ddcb0c043771584a34e13bf9a0d74e51929554c5a7fa62723ecace4d8df4ed84f45acca2e6bc5372
|
data/lib/constructorio/client.rb
CHANGED
@@ -17,6 +17,10 @@ module ConstructorIO
|
|
17
17
|
call_api("item", "post", params)
|
18
18
|
end
|
19
19
|
|
20
|
+
def add_or_update(params)
|
21
|
+
call_api("item", "put", params, {force: 1})
|
22
|
+
end
|
23
|
+
|
20
24
|
def remove(params)
|
21
25
|
call_api("item", "delete", params)
|
22
26
|
end
|
@@ -45,21 +49,25 @@ module ConstructorIO
|
|
45
49
|
call_api("batch_items", "post", params)
|
46
50
|
end
|
47
51
|
|
52
|
+
def add_or_update_batch(params)
|
53
|
+
call_api("batch_items", "put", params, {force: 1})
|
54
|
+
end
|
55
|
+
|
48
56
|
private
|
49
57
|
|
50
|
-
def call_api(path, method, params = {})
|
58
|
+
def call_api(path, method, params = {}, additional_query_params = {})
|
51
59
|
api_token = self.local_configuration.api_token
|
52
60
|
api_url = self.local_configuration.api_url
|
53
61
|
autocomplete_key = self.local_configuration.autocomplete_key
|
54
62
|
@http_client ||= Faraday.new(url: api_url)
|
55
63
|
@http_client.basic_auth(api_token, '')
|
56
64
|
|
57
|
-
send_request(path, method, @http_client, params, autocomplete_key)
|
65
|
+
send_request(path, method, @http_client, params, autocomplete_key, additional_query_params)
|
58
66
|
end
|
59
67
|
|
60
|
-
def send_request(path, method, http_client, params, autocomplete_key)
|
68
|
+
def send_request(path, method, http_client, params, autocomplete_key, additional_query_params)
|
61
69
|
response = http_client.send(method) do |request|
|
62
|
-
request.url "/v1/#{path}?autocomplete_key=#{autocomplete_key}"
|
70
|
+
request.url "/v1/#{path}?autocomplete_key=#{autocomplete_key}#{URI.encode_www_form(additional_query_params)}"
|
63
71
|
request.headers['Content-Type'] = 'application/json'
|
64
72
|
request.body = params.to_json
|
65
73
|
end
|
data/test/constructorio_test.rb
CHANGED
@@ -19,12 +19,39 @@ class ConstructorIOTest < MiniTest::Test
|
|
19
19
|
"post",
|
20
20
|
instance_of(Faraday::Connection),
|
21
21
|
{ item_name: "power drill" },
|
22
|
-
"example_autocomplete_key"
|
22
|
+
"example_autocomplete_key",
|
23
|
+
{}
|
23
24
|
)
|
24
25
|
|
25
26
|
c.add( { item_name: "power drill" } )
|
26
27
|
end
|
27
28
|
|
29
|
+
def test_add_or_update_record_calls_post
|
30
|
+
c = ConstructorIO::Client.new
|
31
|
+
c.expects(:call_api).with(
|
32
|
+
"item",
|
33
|
+
"put",
|
34
|
+
{ item_name: "power drill" },
|
35
|
+
{ force: 1 }
|
36
|
+
)
|
37
|
+
|
38
|
+
c.add_or_update( { item_name: "power drill" } )
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_add_or_update_record_sends_request
|
42
|
+
c = ConstructorIO::Client.new
|
43
|
+
c.expects(:send_request).with(
|
44
|
+
"item",
|
45
|
+
"put",
|
46
|
+
instance_of(Faraday::Connection),
|
47
|
+
{ item_name: "power drill" },
|
48
|
+
"example_autocomplete_key",
|
49
|
+
{ force: 1 }
|
50
|
+
)
|
51
|
+
|
52
|
+
c.add_or_update( { item_name: "power drill" } )
|
53
|
+
end
|
54
|
+
|
28
55
|
def test_add_record_sends_request_with_local_config
|
29
56
|
c = ConstructorIO::Client.new(ConstructorIO::Configuration.new(
|
30
57
|
api_token: "this-api-token",
|
@@ -36,7 +63,8 @@ class ConstructorIOTest < MiniTest::Test
|
|
36
63
|
"post",
|
37
64
|
instance_of(Faraday::Connection),
|
38
65
|
{ item_name: "power drill" },
|
39
|
-
"this-autocomplete-key"
|
66
|
+
"this-autocomplete-key",
|
67
|
+
{}
|
40
68
|
)
|
41
69
|
|
42
70
|
c.add( { item_name: "power drill" } )
|
@@ -82,9 +110,81 @@ class ConstructorIOTest < MiniTest::Test
|
|
82
110
|
"get",
|
83
111
|
instance_of(Faraday::Connection),
|
84
112
|
{},
|
85
|
-
"example_autocomplete_key"
|
113
|
+
"example_autocomplete_key",
|
114
|
+
{}
|
86
115
|
)
|
87
116
|
|
88
117
|
c.verify
|
89
118
|
end
|
119
|
+
|
120
|
+
def test_add_batch_calls_post
|
121
|
+
c = ConstructorIO::Client.new
|
122
|
+
c.expects(:call_api).with(
|
123
|
+
"batch_items",
|
124
|
+
"post",
|
125
|
+
{ autocomplete_section: "Products", items: [ { item_name: "item" } ] }
|
126
|
+
)
|
127
|
+
|
128
|
+
c.add_batch(
|
129
|
+
{
|
130
|
+
autocomplete_section: "Products",
|
131
|
+
items: [ { item_name: "item" } ]
|
132
|
+
}
|
133
|
+
)
|
134
|
+
end
|
135
|
+
|
136
|
+
def test_add_batch_sends_request
|
137
|
+
c = ConstructorIO::Client.new
|
138
|
+
c.expects(:send_request).with(
|
139
|
+
"batch_items",
|
140
|
+
"post",
|
141
|
+
instance_of(Faraday::Connection),
|
142
|
+
{ autocomplete_section: "Products", items: [ { item_name: "item" } ] },
|
143
|
+
"example_autocomplete_key",
|
144
|
+
{}
|
145
|
+
)
|
146
|
+
|
147
|
+
c.add_batch(
|
148
|
+
{
|
149
|
+
autocomplete_section: "Products",
|
150
|
+
items: [ { item_name: "item" } ]
|
151
|
+
}
|
152
|
+
)
|
153
|
+
end
|
154
|
+
|
155
|
+
def test_add_or_update_batch_calls_post
|
156
|
+
c = ConstructorIO::Client.new
|
157
|
+
c.expects(:call_api).with(
|
158
|
+
"batch_items",
|
159
|
+
"put",
|
160
|
+
{ autocomplete_section: "Products", items: [ { item_name: "item" } ] },
|
161
|
+
{ force: 1 }
|
162
|
+
)
|
163
|
+
|
164
|
+
c.add_or_update_batch(
|
165
|
+
{
|
166
|
+
autocomplete_section: "Products",
|
167
|
+
items: [ { item_name: "item" } ]
|
168
|
+
}
|
169
|
+
)
|
170
|
+
end
|
171
|
+
|
172
|
+
def test_add_or_update_batch_sends_request
|
173
|
+
c = ConstructorIO::Client.new
|
174
|
+
c.expects(:send_request).with(
|
175
|
+
"batch_items",
|
176
|
+
"put",
|
177
|
+
instance_of(Faraday::Connection),
|
178
|
+
{ autocomplete_section: "Products", items: [ { item_name: "item" } ] },
|
179
|
+
"example_autocomplete_key",
|
180
|
+
{ force: 1 }
|
181
|
+
)
|
182
|
+
|
183
|
+
c.add_or_update_batch(
|
184
|
+
{
|
185
|
+
autocomplete_section: "Products",
|
186
|
+
items: [ { item_name: "item" } ]
|
187
|
+
}
|
188
|
+
)
|
189
|
+
end
|
90
190
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: constructorio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan McCormick
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|