trustedsearch 1.0.8 → 1.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 +8 -8
- data/README.md +302 -23
- data/lib/tasks/v2.rake +146 -0
- data/lib/trustedsearch/api.rb +6 -0
- data/lib/trustedsearch/api_resource.rb +27 -6
- data/lib/trustedsearch/api_response.rb +27 -1
- data/lib/trustedsearch/v2/hook_subscriptions.rb +45 -0
- data/lib/trustedsearch/v2/hooks.rb +25 -0
- data/lib/trustedsearch/v2/v2.rb +17 -0
- data/lib/trustedsearch.rb +3 -0
- metadata +10 -6
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MzBjOTczNWRmODNjN2UzZDVhM2Q3ZjIwNDZkZmVmNTIwYTMxZjY4MQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
N2RhMDNhMDQ4ZGQ1ZDQ5NTI3NWM0NjYzODgwMzNiYzU1MGQzM2NlNg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MWQzMWE4ZTU1ZDEyZjEwNDU1NTc4NzFiNDczNDY0ZGIyMDFhMzE0ZDcyMTlj
|
10
|
+
ZWIyYTdhMmJmODI5OTg1MWQzNmYzMTUyYWQ0YjdmODYyZjBmYjk5MTZkMzY3
|
11
|
+
ZjQ4OGE3NDUwMGFmZGNiMzY5YmVkOWY0OTZjNjBjM2M0YTc2ZjU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZWRjMDAyMWExMDYzMTA5OGQ5OGVkMzdlZTZjOTNlNGVlM2NhZWUzYzM2NWY2
|
14
|
+
ZjEzYTdkNGY5YThmN2Q0MGNiNzQxZDdhZjQzNmRjYjQ1N2ExMTNiNDQyYTFh
|
15
|
+
MGQ4ZDE3NDliZmNkOWNjZTc5MWM0OTczZmYxNzA5YTM4ZTc4YmM=
|
data/README.md
CHANGED
@@ -35,7 +35,7 @@ The gem is designed to support all existing and future [TRUSTEDSearch API's](htt
|
|
35
35
|
To start using the gem, you need to be given your sandbox and production public & private keys.
|
36
36
|
|
37
37
|
|
38
|
-
|
38
|
+
## API V1 Examples
|
39
39
|
|
40
40
|
Include the required libs & set your public and private keys
|
41
41
|
|
@@ -57,6 +57,12 @@ See the [API documentation](http://developers.trustedsearch.org/#/get-business-u
|
|
57
57
|
api = TrustedSearch::V1.new
|
58
58
|
puts api.getBusinessUpdate().data.to_s
|
59
59
|
```
|
60
|
+
##### Rake
|
61
|
+
|
62
|
+
```ruby
|
63
|
+
rake v1:updates[YourPublicKey,YourPrivateKey]
|
64
|
+
```
|
65
|
+
|
60
66
|
|
61
67
|
#### Get Business Updates for single location
|
62
68
|
See the [API documentation](http://developers.trustedsearch.org/#/get-business-updates) for a list of parameters for each API resource.
|
@@ -66,6 +72,14 @@ api = TrustedSearch::V1.new
|
|
66
72
|
puts api.getBusinessUpdate(534f95e8-1de1-558f-885c-3962f22c9a28).data.to_s
|
67
73
|
```
|
68
74
|
|
75
|
+
##### Rake
|
76
|
+
Get update for location 534f95e8-1de1-558f-885c-3962f22c9a28
|
77
|
+
|
78
|
+
```ruby
|
79
|
+
rake v1:updates[YourPublicKey,YourPrivateKey,534f95e8-1de1-558f-885c-3962f22c9a28]
|
80
|
+
```
|
81
|
+
|
82
|
+
|
69
83
|
#### Get Business Updates since epoch 1380611103
|
70
84
|
See the [API documentation](http://developers.trustedsearch.org/#/get-business-updates) for a list of parameters for each API resource.
|
71
85
|
|
@@ -74,6 +88,12 @@ api = TrustedSearch::V1.new
|
|
74
88
|
puts api.getBusinessUpdateSince(1380611103).data.to_s
|
75
89
|
```
|
76
90
|
|
91
|
+
##### Rake
|
92
|
+
Get update since 1380611103
|
93
|
+
```ruby
|
94
|
+
rake v1:updates_since[YourPublicKey,YourPrivateKey,1380611103]
|
95
|
+
```
|
96
|
+
|
77
97
|
#### Submit New Business Listings
|
78
98
|
|
79
99
|
See the [API documentation](http://developers.trustedsearch.org/#/submitting-a-business) for a list of parameters for each API resource.
|
@@ -139,6 +159,14 @@ response = api.postBusiness(business_data)
|
|
139
159
|
uuid = response.data[0]["uuid"]
|
140
160
|
```
|
141
161
|
|
162
|
+
##### Rake
|
163
|
+
|
164
|
+
Submit a new location using JSON data in file relative path "examples/body.json"
|
165
|
+
|
166
|
+
```ruby
|
167
|
+
rake v1:submit[YourPublicKey,YourPrivateKey,"examples/body.json"]
|
168
|
+
```
|
169
|
+
|
142
170
|
### Testing
|
143
171
|
|
144
172
|
#### Testing / Simulating a change in a business listing
|
@@ -149,7 +177,280 @@ uuid = '534f95e8-1de1-558f-885c-3962f22c9a28'
|
|
149
177
|
api = TrustedSearch::V1.new
|
150
178
|
response = api.putTestFulfillment(uuid)
|
151
179
|
|
180
|
+
```
|
181
|
+
##### Rake
|
182
|
+
|
183
|
+
SANDBOX ONLY: Test the fulfilment process for development & testing purposes
|
184
|
+
|
185
|
+
```ruby
|
186
|
+
rake v1:test_fulfillment[YourPublicKey,YourPrivateKey,534f95e8-1de1-558f-885c-3962f22c9a28]
|
187
|
+
```
|
188
|
+
|
189
|
+
## V2 Api Examples
|
190
|
+
|
191
|
+
### Hooks
|
192
|
+
|
193
|
+
#### Index: Retrieve an array of hooks that can be subscribed to.
|
194
|
+
[API documentation](http://developers.trustedsearch.org/#/v2-subscriptions-index)
|
195
|
+
|
196
|
+
```ruby
|
197
|
+
hook = TrustedSearch::V2::Hook.new
|
198
|
+
puts hook.index().data.to_json
|
199
|
+
```
|
200
|
+
|
201
|
+
##### Rake
|
202
|
+
|
203
|
+
```ruby
|
204
|
+
rake v2:hooks:index[PUBLIC_KEY,PRIVATE_KEY]
|
205
|
+
```
|
206
|
+
|
207
|
+
##### Response
|
208
|
+
```ruby
|
209
|
+
{
|
210
|
+
:status=>"success",
|
211
|
+
:code=>200,
|
212
|
+
:message=>"",
|
213
|
+
:data=>
|
214
|
+
[
|
215
|
+
{
|
216
|
+
:id => 1,
|
217
|
+
:name => "location.updates",
|
218
|
+
:description => "Data for the location has been update within TRUSTEDSearch ecosystem.",
|
219
|
+
:product_id => nil,
|
220
|
+
:created_at => "0000-00-00 00:00:00",
|
221
|
+
:updated_at => "0000-00-00 00:00:00"
|
222
|
+
},
|
223
|
+
{
|
224
|
+
:id => 2,
|
225
|
+
:name => "location.audit",
|
226
|
+
:description => "Results of an audit.",
|
227
|
+
:product_id => 63,
|
228
|
+
:created_at => "0000-00-00 00:00:00",
|
229
|
+
:updated_at => "0000-00-00 00:00:00"
|
230
|
+
},
|
231
|
+
{
|
232
|
+
:id => 3,
|
233
|
+
:name => "location.report",
|
234
|
+
:description => "Results of a recurring reporting for a given location and its listings.",
|
235
|
+
:product_id => 64,
|
236
|
+
:created_at => "0000-00-00 00:00:00",
|
237
|
+
:updated_at => "0000-00-00 00:00:00"
|
238
|
+
}
|
239
|
+
]
|
240
|
+
}
|
241
|
+
```
|
242
|
+
|
243
|
+
#### Show: Show a single hook record.
|
244
|
+
[API documentation](http://developers.trustedsearch.org/#/v2-subscriptions-show)
|
245
|
+
|
246
|
+
```ruby
|
247
|
+
hook = TrustedSearch::V2::Hook.new
|
248
|
+
puts hook.show("1").data.to_json
|
249
|
+
|
250
|
+
```
|
251
|
+
|
252
|
+
##### Rake
|
253
|
+
|
254
|
+
```ruby
|
255
|
+
rake v2:hooks:show[PUBLIC_KEY,PRIVATE_KEY,1]
|
256
|
+
```
|
257
|
+
|
258
|
+
##### Reponse
|
259
|
+
|
260
|
+
```ruby
|
261
|
+
{
|
262
|
+
:status => "success",
|
263
|
+
:code => 200,
|
264
|
+
:message => "",
|
265
|
+
:data=>
|
266
|
+
{
|
267
|
+
:id => 1,
|
268
|
+
:name => "location.updates",
|
269
|
+
:description => "Data for the location has been update within TRUSTEDSearch ecosystem.",
|
270
|
+
:product_id => nil,
|
271
|
+
:created_at => "0000-00-00 00:00:00",
|
272
|
+
:updated_at => "0000-00-00 00:00:00"
|
273
|
+
}
|
274
|
+
}
|
275
|
+
```
|
276
|
+
|
277
|
+
### Subscriptions
|
278
|
+
|
279
|
+
#### Index: Retrieve an array of all hook subscriptions you are subscribed to.
|
280
|
+
|
281
|
+
[API documentation](http://developers.trustedsearch.org/#/v2-subscriptions-index)
|
282
|
+
|
283
|
+
```ruby
|
284
|
+
subscription = TrustedSearch::V2::HookSubscription.new
|
285
|
+
pp subscription.index().data
|
286
|
+
|
287
|
+
```
|
288
|
+
|
289
|
+
##### Rake
|
290
|
+
|
291
|
+
```ruby
|
292
|
+
rake v2:hooksubscriptions:index[PUBLIC_KEY,PRIVATE_KEY]
|
293
|
+
```
|
294
|
+
|
295
|
+
##### Response
|
296
|
+
|
297
|
+
```ruby
|
298
|
+
{
|
299
|
+
:status=>"success",
|
300
|
+
:code=>200,
|
301
|
+
:message=>"",
|
302
|
+
:data=> [
|
303
|
+
{
|
304
|
+
:id => "624c83f1-3c0d-4b27-86e1-c80d88dbf8e2",
|
305
|
+
:hook_id => 1,
|
306
|
+
:user_id => 94,
|
307
|
+
:target_url => "http://api.myendpoint.com/trustedsearch/location-updates",
|
308
|
+
:created_at => "2014-03-20 18:32:45",
|
309
|
+
:updated_at => "2014-03-20 18:32:45"
|
310
|
+
},
|
311
|
+
{
|
312
|
+
:id => "bdd46e50-669a-49cf-93ce-db682f6e9008",
|
313
|
+
:hook_id => 2,
|
314
|
+
:user_id => 94,
|
315
|
+
:target_url => "http://api.myendpoint.com/trustedsearch/location-audits",
|
316
|
+
:created_at => "2014-03-20 18:33:21",
|
317
|
+
:updated_at => "2014-03-20 18:33:21"
|
318
|
+
}
|
319
|
+
]
|
320
|
+
}
|
321
|
+
```
|
322
|
+
|
152
323
|
|
324
|
+
#### Create: Create a new hook subscription
|
325
|
+
|
326
|
+
[API documentation](http://developers.trustedsearch.org/#/v2-subscriptions-create)
|
327
|
+
|
328
|
+
```ruby
|
329
|
+
|
330
|
+
subscription = TrustedSearch::V2::HookSubscription.new
|
331
|
+
data = {
|
332
|
+
:hook => "location.updates",
|
333
|
+
:target_url => "http://api.myendpoint.com/trustedsearch/location-updates"
|
334
|
+
}
|
335
|
+
pp subscription.create(data).data
|
336
|
+
```
|
337
|
+
|
338
|
+
##### Rake
|
339
|
+
|
340
|
+
```ruby
|
341
|
+
rake v2:hooksubscriptions:create[PUBLIC_KEY,PRIVATE_KEY,location.update,http://api.myendpoint.com/trustedsearch/location-updates]
|
342
|
+
```
|
343
|
+
|
344
|
+
##### Response
|
345
|
+
```ruby
|
346
|
+
{
|
347
|
+
:status => "success",
|
348
|
+
:code => 200,
|
349
|
+
:message => "",
|
350
|
+
:data=> {
|
351
|
+
:hook_id => 1,
|
352
|
+
:target_url => "http://api.myendpoint.com/trustedsearch/location-updates",
|
353
|
+
:user_id => 94,
|
354
|
+
:id => "bdd46e50-669a-49cf-93ce-db682f6e9008",
|
355
|
+
:updated_at => "2014-03-20 18:33:21",
|
356
|
+
:created_at => "2014-03-20 18:33:21"
|
357
|
+
}
|
358
|
+
}
|
359
|
+
```
|
360
|
+
|
361
|
+
#### Show: Show a hook subscription record
|
362
|
+
|
363
|
+
[API documentation](http://developers.trustedsearch.org/#/v2-subscriptions-show)
|
364
|
+
|
365
|
+
```ruby
|
366
|
+
subscription = TrustedSearch::V2::HookSubscription.new
|
367
|
+
pp subscription.show("bdd46e50-669a-49cf-93ce-db682f6e9008").data
|
368
|
+
```
|
369
|
+
|
370
|
+
##### Rake
|
371
|
+
|
372
|
+
```ruby
|
373
|
+
rake env=local v2:hooksubscriptions:show[PUBLIC_KEY,PRIVATE_KEY,bdd46e50-669a-49cf-93ce-db682f6e9008]
|
374
|
+
```
|
375
|
+
|
376
|
+
##### Response
|
377
|
+
|
378
|
+
```ruby
|
379
|
+
{
|
380
|
+
:status => "success",
|
381
|
+
:code => 200,
|
382
|
+
:message => "",
|
383
|
+
:data => {
|
384
|
+
:id => "bdd46e50-669a-49cf-93ce-db682f6e9008",
|
385
|
+
:hook_id => 1,
|
386
|
+
:user_id => 94,
|
387
|
+
:target_url => "http://api.myendpoint.com/trustedsearch/location-updates",
|
388
|
+
:created_at => "2014-03-20 18:33:21",
|
389
|
+
:updated_at => "2014-03-20 18:33:21"
|
390
|
+
}
|
391
|
+
}
|
392
|
+
```
|
393
|
+
|
394
|
+
#### Update: Update an existing hook subscription record.
|
395
|
+
|
396
|
+
[API documentation](http://developers.trustedsearch.org/#/v2-subscriptions-update)
|
397
|
+
|
398
|
+
```ruby
|
399
|
+
subscription = TrustedSearch::V2::HookSubscription.new
|
400
|
+
data = {
|
401
|
+
:hook => "loocation.audit",
|
402
|
+
:target_url => "http://api.myendpoint.com/trustedsearch/location-audit"
|
403
|
+
}
|
404
|
+
pp subscription.update("bdd46e50-669a-49cf-93ce-db682f6e9008", data).data
|
405
|
+
```
|
406
|
+
|
407
|
+
##### Rake
|
408
|
+
|
409
|
+
```ruby
|
410
|
+
rake v2:hooksubscriptions:update[PUBLIC_KEY,PRIVATE_KEY,bdd46e50-669a-49cf-93ce-db682f6e9008,location.audit,http://api.myendpoint.com/trustedsearch/location-audit]
|
411
|
+
```
|
412
|
+
|
413
|
+
##### Response
|
414
|
+
```ruby
|
415
|
+
{
|
416
|
+
:status => "success",
|
417
|
+
:code => 200,
|
418
|
+
:message => "",
|
419
|
+
:data => {
|
420
|
+
:id => "bdd46e50-669a-49cf-93ce-db682f6e9008",
|
421
|
+
:hook_id => 2, ###<----- Notice this changed to a 2
|
422
|
+
:user_id => 94,
|
423
|
+
:target_url => "http://api.myendpoint.com/trustedsearch/location-audit", ####<----Notice this updated.
|
424
|
+
:created_at => "2014-03-20 18:33:21",
|
425
|
+
:updated_at => "2014-03-20 18:35:11"
|
426
|
+
}
|
427
|
+
}
|
428
|
+
|
429
|
+
```
|
430
|
+
|
431
|
+
#### Destroy: Destroy an existing hook-subscription record.
|
432
|
+
|
433
|
+
[API documentation](http://developers.trustedsearch.org/#/v2-subscriptions-destroy)
|
434
|
+
|
435
|
+
```ruby
|
436
|
+
subscription = TrustedSearch::V2::HookSubscription.new
|
437
|
+
pp subscription.destroy(args.id).data
|
438
|
+
```
|
439
|
+
##### Rake
|
440
|
+
|
441
|
+
```ruby
|
442
|
+
rake v2:hooksubscriptions:destroy[PUBLIC_KEY,PRIVATE_KEY,bdd46e50-669a-49cf-93ce-db682f6e9008]
|
443
|
+
```
|
444
|
+
|
445
|
+
##### Response
|
446
|
+
|
447
|
+
```ruby
|
448
|
+
{
|
449
|
+
:status => "success",
|
450
|
+
:code => 200,
|
451
|
+
:message => "Successfully removed subscription : bdd46e50-669a-49cf-93ce-db682f6e9008",
|
452
|
+
:data => []
|
453
|
+
}
|
153
454
|
```
|
154
455
|
|
155
456
|
### Error Handling
|
@@ -191,25 +492,3 @@ Code: 409
|
|
191
492
|
|
192
493
|
```
|
193
494
|
|
194
|
-
|
195
|
-
### Rake Examples
|
196
|
-
|
197
|
-
Get all udpates in your account
|
198
|
-
|
199
|
-
rake v1:updates[YourPublicKey,YourPrivateKey]
|
200
|
-
|
201
|
-
Get update for location 534f95e8-1de1-558f-885c-3962f22c9a28
|
202
|
-
|
203
|
-
rake v1:updates[YourPublicKey,YourPrivateKey,534f95e8-1de1-558f-885c-3962f22c9a28]
|
204
|
-
|
205
|
-
Get update since 1380611103
|
206
|
-
|
207
|
-
rake v1:updates_since[YourPublicKey,YourPrivateKey,1380611103]
|
208
|
-
|
209
|
-
Submit a new location using JSON data in file relative path "examples/body.json"
|
210
|
-
|
211
|
-
rake v1:submit[YourPublicKey,YourPrivateKey,"examples/body.json"]
|
212
|
-
|
213
|
-
SANDBOX ONLY: Test the fulfilment process for development & testing purposes
|
214
|
-
|
215
|
-
rake v1:test_fulfillment[YourPublicKey,YourPrivateKey,534f95e8-1de1-558f-885c-3962f22c9a28]
|
data/lib/tasks/v2.rake
ADDED
@@ -0,0 +1,146 @@
|
|
1
|
+
require 'pp'
|
2
|
+
namespace :v2 do
|
3
|
+
|
4
|
+
task :default do
|
5
|
+
|
6
|
+
end
|
7
|
+
|
8
|
+
namespace :hooks do
|
9
|
+
desc "Get a list of all the hooks."
|
10
|
+
task :index, [:public_key, :private_key] do |t, args|
|
11
|
+
TrustedSearch.public_key = args.public_key
|
12
|
+
TrustedSearch.private_key = args.private_key
|
13
|
+
TrustedSearch.environment = ( ENV['env'] ? ENV['env'] : 'sandbox')
|
14
|
+
|
15
|
+
hook = TrustedSearch::V2::Hook.new
|
16
|
+
begin
|
17
|
+
pp hook.index().data
|
18
|
+
rescue Exception => e
|
19
|
+
puts "Message: " + e.message.to_s
|
20
|
+
#puts "Body:"
|
21
|
+
puts e.backtrace
|
22
|
+
#puts "Code: " + e.code.to_s
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
desc "Get a single hook."
|
28
|
+
task :show, [:public_key, :private_key, :id] do |t, args|
|
29
|
+
TrustedSearch.public_key = args.public_key
|
30
|
+
TrustedSearch.private_key = args.private_key
|
31
|
+
TrustedSearch.environment = ( ENV['env'] ? ENV['env'] : 'sandbox')
|
32
|
+
|
33
|
+
hook = TrustedSearch::V2::Hook.new
|
34
|
+
begin
|
35
|
+
pp hook.show(args.id).data
|
36
|
+
rescue Exception => e
|
37
|
+
puts "Message: " + e.message.to_s
|
38
|
+
#puts "Body:"
|
39
|
+
#puts e.backtrace
|
40
|
+
#puts "Code: " + e.code.to_s
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
namespace :hooksubscriptions do
|
47
|
+
desc "Get a list of all the subscriptions you are subscribed to."
|
48
|
+
task :index, [:public_key, :private_key] do |t, args|
|
49
|
+
TrustedSearch.public_key = args.public_key
|
50
|
+
TrustedSearch.private_key = args.private_key
|
51
|
+
TrustedSearch.environment = ( ENV['env'] ? ENV['env'] : 'sandbox')
|
52
|
+
|
53
|
+
subscription = TrustedSearch::V2::HookSubscription.new
|
54
|
+
begin
|
55
|
+
pp subscription.index().data
|
56
|
+
rescue Exception => e
|
57
|
+
puts "Message: " + e.message.to_s
|
58
|
+
#puts "Body:"
|
59
|
+
#puts e.backtrace
|
60
|
+
#puts "Code: " + e.code.to_s
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
desc "Show a single subscription."
|
66
|
+
task :show, [:public_key, :private_key, :id] do |t, args|
|
67
|
+
TrustedSearch.public_key = args.public_key
|
68
|
+
TrustedSearch.private_key = args.private_key
|
69
|
+
TrustedSearch.environment = ( ENV['env'] ? ENV['env'] : 'sandbox')
|
70
|
+
|
71
|
+
subscription = TrustedSearch::V2::HookSubscription.new
|
72
|
+
begin
|
73
|
+
pp subscription.show(args.id).data
|
74
|
+
rescue Exception => e
|
75
|
+
puts "Message: " + e.message.to_s
|
76
|
+
#puts "Body:"
|
77
|
+
#puts e.backtrace
|
78
|
+
#puts "Code: " + e.code.to_s
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
desc "Create a single subscription."
|
84
|
+
task :create, [:public_key, :private_key, :hook, :target_url] do |t, args|
|
85
|
+
TrustedSearch.public_key = args.public_key
|
86
|
+
TrustedSearch.private_key = args.private_key
|
87
|
+
TrustedSearch.environment = ( ENV['env'] ? ENV['env'] : 'sandbox')
|
88
|
+
|
89
|
+
subscription = TrustedSearch::V2::HookSubscription.new
|
90
|
+
begin
|
91
|
+
data = {
|
92
|
+
:hook => args.hook,
|
93
|
+
:target_url => args.target_url
|
94
|
+
}
|
95
|
+
pp subscription.create(data).data
|
96
|
+
rescue Exception => e
|
97
|
+
puts "Message: " + e.message.to_s
|
98
|
+
#puts "Body:"
|
99
|
+
#puts e.backtrace
|
100
|
+
#puts "Code: " + e.code.to_s
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
|
105
|
+
desc "Update a single subscription."
|
106
|
+
task :update, [:public_key, :private_key, :id, :hook, :target_url] do |t, args|
|
107
|
+
TrustedSearch.public_key = args.public_key
|
108
|
+
TrustedSearch.private_key = args.private_key
|
109
|
+
TrustedSearch.environment = ( ENV['env'] ? ENV['env'] : 'sandbox')
|
110
|
+
|
111
|
+
subscription = TrustedSearch::V2::HookSubscription.new
|
112
|
+
begin
|
113
|
+
data = {
|
114
|
+
:hook => args.hook,
|
115
|
+
:target_url => args.target_url
|
116
|
+
}
|
117
|
+
pp subscription.update(args.id, data).data
|
118
|
+
rescue Exception => e
|
119
|
+
puts "Message: " + e.message.to_s
|
120
|
+
#puts "Body:"
|
121
|
+
#puts e.backtrace
|
122
|
+
#puts "Code: " + e.code.to_s
|
123
|
+
end
|
124
|
+
|
125
|
+
end
|
126
|
+
|
127
|
+
desc "Destroy a single subscription."
|
128
|
+
task :destroy, [:public_key, :private_key, :id] do |t, args|
|
129
|
+
TrustedSearch.public_key = args.public_key
|
130
|
+
TrustedSearch.private_key = args.private_key
|
131
|
+
TrustedSearch.environment = ( ENV['env'] ? ENV['env'] : 'sandbox')
|
132
|
+
|
133
|
+
subscription = TrustedSearch::V2::HookSubscription.new
|
134
|
+
begin
|
135
|
+
pp subscription.destroy(args.id).data
|
136
|
+
rescue Exception => e
|
137
|
+
puts "Message: " + e.message.to_s
|
138
|
+
#puts "Body:"
|
139
|
+
#puts e.backtrace
|
140
|
+
#puts "Code: " + e.code.to_s
|
141
|
+
end
|
142
|
+
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
end
|
data/lib/trustedsearch/api.rb
CHANGED
@@ -13,6 +13,12 @@ module TrustedSearch
|
|
13
13
|
"/v1/"
|
14
14
|
end
|
15
15
|
|
16
|
+
#Update All request to Version 1.
|
17
|
+
def request(method='get', resource_url, params, body)
|
18
|
+
TrustedSearch::api_version = 1
|
19
|
+
super
|
20
|
+
end
|
21
|
+
|
16
22
|
# Makes an API request to /directory-listings
|
17
23
|
# If uuid is nil, all are returned.
|
18
24
|
def getBusinessUpdate(uuid = nil)
|
@@ -39,7 +39,7 @@ module TrustedSearch
|
|
39
39
|
|
40
40
|
timestamp = get_time()
|
41
41
|
|
42
|
-
url_to_sign = base_path + api_resource
|
42
|
+
url_to_sign = base_path() + api_resource
|
43
43
|
|
44
44
|
params.merge!(
|
45
45
|
{
|
@@ -49,7 +49,7 @@ module TrustedSearch
|
|
49
49
|
}
|
50
50
|
)
|
51
51
|
|
52
|
-
resource_url = end_point + url_to_sign
|
52
|
+
resource_url = end_point() + url_to_sign
|
53
53
|
request('get', resource_url, params, body)
|
54
54
|
end
|
55
55
|
|
@@ -98,6 +98,27 @@ module TrustedSearch
|
|
98
98
|
request('put', resource_url, params, body)
|
99
99
|
end
|
100
100
|
|
101
|
+
def delete(api_resource, params = {}, body = {})
|
102
|
+
@resource ||= api_resource
|
103
|
+
has_keys()
|
104
|
+
|
105
|
+
raise ArgumentError, "Params must be a Hash; got #{params.class} instead" unless params.is_a? Hash
|
106
|
+
|
107
|
+
timestamp = get_time()
|
108
|
+
|
109
|
+
url_to_sign = base_path + api_resource
|
110
|
+
|
111
|
+
params.merge!({
|
112
|
+
apikey: TrustedSearch.public_key,
|
113
|
+
signature: sign_request(TrustedSearch.private_key, url_to_sign, body, timestamp ),
|
114
|
+
timestamp: timestamp
|
115
|
+
})
|
116
|
+
|
117
|
+
resource_url = end_point + url_to_sign
|
118
|
+
|
119
|
+
request('delete', resource_url, params, body)
|
120
|
+
end
|
121
|
+
|
101
122
|
def sign_request( private_key, url, body, timestamp )
|
102
123
|
|
103
124
|
body_md5 = (body == "") ? "" : Base64.strict_encode64( Digest::MD5.digest(body.to_json) )
|
@@ -124,7 +145,7 @@ module TrustedSearch
|
|
124
145
|
|
125
146
|
timeout = TrustedSearch.api_timeout
|
126
147
|
begin
|
127
|
-
|
148
|
+
puts resource_url
|
128
149
|
case method
|
129
150
|
when 'get'
|
130
151
|
response = self.class.get(resource_url, query: params, timeout: timeout)
|
@@ -132,6 +153,8 @@ module TrustedSearch
|
|
132
153
|
response = self.class.post(resource_url, {:query => params, :body => body.to_json, :timeout => timeout } )
|
133
154
|
when 'put'
|
134
155
|
response = self.class.put(resource_url, {:query => params, :body => body.to_json, :timeout => timeout } )
|
156
|
+
when 'delete'
|
157
|
+
response = self.class.delete(resource_url, {:query => params, :body => body.to_json, :timeout => timeout } )
|
135
158
|
end
|
136
159
|
|
137
160
|
rescue Timeout::Error
|
@@ -140,13 +163,11 @@ module TrustedSearch
|
|
140
163
|
process(response)
|
141
164
|
end
|
142
165
|
|
143
|
-
|
144
166
|
def process(response)
|
145
|
-
# puts response.
|
167
|
+
# puts response.to_s
|
146
168
|
# body = JSON.parse(response.body)
|
147
169
|
# puts body.to_json
|
148
170
|
# puts response.message
|
149
|
-
|
150
171
|
case response.code
|
151
172
|
|
152
173
|
when 200, 201, 204
|
@@ -3,11 +3,37 @@ module TrustedSearch
|
|
3
3
|
attr_reader :meta, :data, :request, :code
|
4
4
|
|
5
5
|
def initialize(response)
|
6
|
-
|
6
|
+
@request = response.request
|
7
7
|
@code = response.code
|
8
8
|
#handle case where body has no response and thus JSON.parse requires octet aka a byte.
|
9
9
|
@data = (response.body.length >=2) ? JSON.parse(response.body.strip) : nil
|
10
10
|
|
11
|
+
#Lets symbolize Version responses.
|
12
|
+
if(TrustedSearch::api_version == 2)
|
13
|
+
@data = self.symbolize_keys(@data)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def symbolize_keys(x)
|
18
|
+
if x.is_a? Hash
|
19
|
+
x.inject({}) do |result, (key, value)|
|
20
|
+
new_key = case key
|
21
|
+
when String then key.to_sym
|
22
|
+
else key
|
23
|
+
end
|
24
|
+
new_value = case value
|
25
|
+
when Hash then symbolize_keys(value)
|
26
|
+
when Array then symbolize_keys(value)
|
27
|
+
else value
|
28
|
+
end
|
29
|
+
result[new_key] = new_value
|
30
|
+
result
|
31
|
+
end
|
32
|
+
elsif x.is_a? Array
|
33
|
+
x.map {|el| symbolize_keys(el)}
|
34
|
+
else
|
35
|
+
x
|
36
|
+
end
|
11
37
|
end
|
12
38
|
|
13
39
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module TrustedSearch
|
2
|
+
module V2
|
3
|
+
class HookSubscription < ApiVersion2
|
4
|
+
attr_accessor :resource
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@resource = 'hook-subscriptions'
|
8
|
+
end
|
9
|
+
|
10
|
+
#Retrieve an array of all hook subscriptions
|
11
|
+
def index()
|
12
|
+
method_url = @resource
|
13
|
+
return self.get(method_url)
|
14
|
+
end
|
15
|
+
|
16
|
+
#Show the details of a single hook
|
17
|
+
def show(id = nil)
|
18
|
+
method_url = @resource + "/" + id
|
19
|
+
params = {}
|
20
|
+
return self.get(method_url, params)
|
21
|
+
end
|
22
|
+
|
23
|
+
#Create a new subscription
|
24
|
+
def create(data = nil)
|
25
|
+
method_url = @resource
|
26
|
+
params = {}
|
27
|
+
return self.post(method_url, params, data)
|
28
|
+
end
|
29
|
+
|
30
|
+
#Update a subscription
|
31
|
+
def update(id = nil, data)
|
32
|
+
method_url = @resource + "/" + id
|
33
|
+
params = {}
|
34
|
+
return self.put(method_url, params, data)
|
35
|
+
end
|
36
|
+
|
37
|
+
#Delete/Destroy a subscription
|
38
|
+
def destroy(id = nil)
|
39
|
+
method_url = @resource + "/" + id
|
40
|
+
return self.delete(method_url)
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module TrustedSearch
|
2
|
+
module V2
|
3
|
+
class Hook < ApiVersion2
|
4
|
+
attr_accessor :resource
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@resource = 'hooks'
|
8
|
+
end
|
9
|
+
|
10
|
+
#Retrieve an array of all available hooks
|
11
|
+
def index()
|
12
|
+
method_url = @resource
|
13
|
+
return self.get(method_url)
|
14
|
+
end
|
15
|
+
|
16
|
+
#Get the details of a single hook
|
17
|
+
def show(id = nil)
|
18
|
+
method_url = @resource + "/" + id
|
19
|
+
params = {}
|
20
|
+
return self.get(method_url, params)
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module TrustedSearch
|
2
|
+
module V2
|
3
|
+
class ApiVersion2 < Api
|
4
|
+
def base_path
|
5
|
+
if self == APIResource
|
6
|
+
raise NotImplementedError.new("APIResource is an abstract class. You should perform actions on its subclasses (i.e. Publisher)")
|
7
|
+
end
|
8
|
+
"/v2/"
|
9
|
+
end
|
10
|
+
#Update All request to Version 2.
|
11
|
+
def request(method='get', resource_url, params, body)
|
12
|
+
TrustedSearch::api_version = 2
|
13
|
+
super
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/trustedsearch.rb
CHANGED
@@ -13,6 +13,9 @@ require_relative "trustedsearch/version"
|
|
13
13
|
require_relative "trustedsearch/api_response"
|
14
14
|
require_relative "trustedsearch/api_resource"
|
15
15
|
require_relative "trustedsearch/api"
|
16
|
+
require_relative "trustedsearch/v2/v2"
|
17
|
+
require_relative "trustedsearch/v2/hooks"
|
18
|
+
require_relative "trustedsearch/v2/hook_subscriptions"
|
16
19
|
|
17
20
|
require_relative "trustedsearch/errors/error"
|
18
21
|
require_relative "trustedsearch/errors/authentication_error"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trustedsearch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- trustedSEARCH Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -142,8 +142,12 @@ executables: []
|
|
142
142
|
extensions: []
|
143
143
|
extra_rdoc_files: []
|
144
144
|
files:
|
145
|
+
- LICENSE
|
146
|
+
- README.md
|
145
147
|
- lib/tasks/test.rb
|
146
148
|
- lib/tasks/v1.rake
|
149
|
+
- lib/tasks/v2.rake
|
150
|
+
- lib/trustedsearch.rb
|
147
151
|
- lib/trustedsearch/api.rb
|
148
152
|
- lib/trustedsearch/api_resource.rb
|
149
153
|
- lib/trustedsearch/api_response.rb
|
@@ -151,10 +155,10 @@ files:
|
|
151
155
|
- lib/trustedsearch/errors/connection_error.rb
|
152
156
|
- lib/trustedsearch/errors/error.rb
|
153
157
|
- lib/trustedsearch/errors/invalid_request_error.rb
|
158
|
+
- lib/trustedsearch/v2/hook_subscriptions.rb
|
159
|
+
- lib/trustedsearch/v2/hooks.rb
|
160
|
+
- lib/trustedsearch/v2/v2.rb
|
154
161
|
- lib/trustedsearch/version.rb
|
155
|
-
- lib/trustedsearch.rb
|
156
|
-
- LICENSE
|
157
|
-
- README.md
|
158
162
|
homepage: https://github.com/trustedsearch/ruby-trustedsearch
|
159
163
|
licenses:
|
160
164
|
- MIT
|
@@ -175,7 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
179
|
version: '0'
|
176
180
|
requirements: []
|
177
181
|
rubyforge_project:
|
178
|
-
rubygems_version: 2.
|
182
|
+
rubygems_version: 2.2.2
|
179
183
|
signing_key:
|
180
184
|
specification_version: 4
|
181
185
|
summary: trustedSEARCH API Ruby SDK
|