zanox 0.1.0 → 0.2.0

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.
@@ -1,552 +0,0 @@
1
- require "net/http"
2
- require "uri"
3
-
4
- module Zanox
5
-
6
- class ZanoxXml < ZanoxBase
7
-
8
- def initialize(version = false)
9
- @version = version
10
- @rest_action = 'GET'
11
- @url = 'http://api.zanox.com/xml'
12
- @content_type = 'application/xml'
13
- @raw_data_disabled = true
14
- end
15
-
16
- def get_adspaces
17
- resource = ['adspaces']
18
-
19
- @rest_action = 'GET'
20
- enable_api_security
21
-
22
- if result = send_request(resource)
23
- return result
24
- end
25
-
26
- return false
27
- end
28
-
29
- def get_adspace(adspace_id)
30
- resource = ['adspaces', 'adspace', adspace_id.to_s]
31
-
32
- @rest_action = 'GET'
33
- enable_api_security
34
-
35
- if result = send_request(resource)
36
- return result
37
- end
38
-
39
- return false
40
- end
41
-
42
- # def create_adspace(adspace_item, lang = 'en')#TODO test
43
- # resource = ['adspaces', 'adspace']
44
- #
45
- # @rest_action = 'POST'
46
- # enable_api_security
47
- #
48
- # body = serialize('adspaceItem', adspace_item, lang);
49
- #
50
- # if send_request(resource, false, body)
51
- # return true
52
- # end
53
- #
54
- # return false
55
- # end
56
-
57
- # def update_adspace(adspace_id, adspace_item)#TODO test
58
- # resource = ['adspaces', 'adspace', adspace_id.to_s]
59
- #
60
- # @rest_action = 'PUT'
61
- # enable_api_security
62
- #
63
- # body = serialize('adspaceItem', adspace_item);
64
- #
65
- # if send_request(resource, false, body)
66
- # return true
67
- # end
68
- #
69
- # return false
70
- # end
71
-
72
- def delete_adspace(adspace_id)
73
- resource = ['adspaces', 'adspace', adspace_id.to_s]
74
-
75
- @rest_action = "DELETE"
76
- enable_api_security
77
-
78
- if send_request(resource)
79
- return true
80
- end
81
-
82
- return false
83
- end
84
-
85
- def get_program(program_id)
86
- resource = ['programs', 'program', program_id.to_s]
87
-
88
- @rest_action = "GET"
89
- disable_api_security
90
-
91
- if result = send_request(resource)
92
- return result
93
- end
94
-
95
- return false
96
- end
97
-
98
- def get_programs(category_id = false, page = 0, items = 10)
99
- if category_id
100
- resource = ['programs', 'category', category_id.to_s]
101
- else
102
- resource = ['programs']
103
- end
104
-
105
- query = {'page' => page, 'items' => items}
106
-
107
- @rest_action = "GET"
108
- disable_api_security
109
-
110
- if result = send_request(resource, query)
111
- return result
112
- end
113
-
114
- return false
115
- end
116
-
117
- def search_programs(q, page = 0, items = 10)
118
- resource = ['programs']
119
- query = {'q' => q, 'page' => page, 'items' => items}
120
-
121
- @rest_action = 'GET'
122
- disable_api_security
123
-
124
- result = send_request(resource, query)
125
-
126
- return result
127
- end
128
-
129
- def get_program_news
130
- resource = ['programs', 'news']
131
-
132
- @rest_action = 'GET'
133
- disable_api_security
134
-
135
- result = send_request(resource)
136
-
137
- return result
138
- end
139
-
140
- def get_program_categories
141
- resource = ['programs', 'categories']
142
-
143
- @rest_action = 'GET'
144
- disable_api_security
145
-
146
- result = send_request(resource)
147
-
148
- return result
149
- end
150
-
151
- def get_programs_by_adspace(adspace_id, page = 0, items = 10)
152
- resource = ['programs', 'adspace', adspace_id.to_s]
153
- query = {'page' => page, 'items' => items}
154
-
155
- @rest_action = 'GET'
156
- enable_api_security
157
-
158
- result = send_request(resource, query)
159
-
160
- return result
161
- end
162
-
163
- # def create_program_application(program_id, adspace_id)#TODO test
164
- # resource = ['programs', 'program', program_id.to_s, 'adspace', adspace_id.to_s]
165
- #
166
- # @rest_action = 'POST'
167
- # enable_api_security
168
- #
169
- # if send_request(resource, false, 'hallo')
170
- # return true
171
- # end
172
- #
173
- # return false
174
- # end
175
-
176
- def delete_program_application(program_id, adspace_id)#TODO test
177
- resource = ['programs', 'program', program_id.to_s, 'adspace', adspace_id.to_s]
178
-
179
- @rest_action = 'DELETE'
180
- enable_api_security
181
-
182
- if send_request(resource)
183
- return true
184
- end
185
-
186
- return false
187
- end
188
-
189
- def get_product(zup_id)
190
- resource = ['products', 'product', zup_id.to_s]
191
-
192
- @rest_action = 'GET'
193
- disable_api_security
194
-
195
- if result = send_request(resource)
196
- return result
197
- end
198
-
199
- return false
200
- end
201
-
202
- def get_products_by_program(program_id, filter = {}, page = 0, items = 10)
203
- if !filter['adspace'].blank?
204
- resource = ['products', 'program', program_id.to_s, 'adspace', filter['adspace']]
205
- else
206
- resource = ['products', 'program', program_id.to_s]
207
- end
208
-
209
- query = {'page' => page, 'items' => items}
210
-
211
- if !filter['modified'].blank?
212
- query['modified'] = filter['modified']
213
- end
214
-
215
- @rest_action = 'GET'
216
- disable_api_security
217
-
218
- if result = send_request(resource, query)
219
- return result
220
- end
221
-
222
- return false
223
- end
224
-
225
- def search_products(q, filter = {}, page = 0, items = 10)
226
- if !filter['adspace'].blank?
227
- resource = ['products', 'adspace', filter['adspace']]
228
- else
229
- resource = ['products']
230
- end
231
-
232
- query = {'q' => q, 'page' => page, 'items' => items}
233
-
234
- if !filter['region'].blank? && filter['region'].length == 2
235
- query['region'] = filter['region']
236
- end
237
-
238
- if !filter['minprice'].blank?
239
- query['minprice'] = filter['minprice']
240
- end
241
-
242
- if !filter['maxprice'].blank?
243
- query['maxprice'] = filter['maxprice']
244
- end
245
-
246
- if !filter['ip'].blank?
247
- query['ip'] = filter['ip']
248
- end
249
-
250
- @rest_action = 'GET'
251
- disable_api_security
252
-
253
- if result = send_request(resource, query)
254
- return result
255
- end
256
-
257
- return false
258
- end
259
-
260
- def get_admedium(admedium_id)
261
- resource = ['admedia', 'admedium', admedium_id.to_s]
262
-
263
- @rest_action = 'GET'
264
- disable_api_security
265
-
266
- if result = send_request(resource)
267
- return result
268
- end
269
-
270
- return false
271
- end
272
-
273
- def get_admedia_by_program(program_id, filter = {}, page = 0, items = 10)
274
- if !filter['category'].blank?
275
- resource = ['admedia', 'program', program_id.to_s, 'category', filter['category']]
276
- elsif !filter['type'].blank?
277
- resource = ['admedia', 'program', program_id.to_s, 'type', filter['type']]
278
- else
279
- resource = ['admedia', 'program', program_id.to_s]
280
- end
281
-
282
- query = {'page' => page, 'items' => items}
283
-
284
- @rest_action = 'GET'
285
- disable_api_security
286
-
287
- if result = send_request(resource, query)
288
- return result
289
- end
290
-
291
- return false
292
- end
293
-
294
- def get_admedia_categories_by_program(program_id)
295
- resource = ['admedia', 'program', program_id.to_s, 'categories']
296
-
297
- @rest_action = 'GET'
298
- disable_api_security
299
-
300
- if result = send_request(resource)
301
- return result
302
- end
303
-
304
- return false
305
- end
306
-
307
- def get_sales(filter = {}, page = 0, items = 10)
308
- resource = ['reports', 'sales']
309
-
310
- query = {'page' => page, 'items' => items}
311
-
312
- if !filter['date'].blank?
313
- query['date'] = filter['date']
314
- end
315
-
316
- if !filter['modifieddate'].blank?
317
- query['modifieddate'] = filter['modifieddate']
318
- end
319
-
320
- if !filter['clickdate'].blank?
321
- query['clickdate'] = filter['clickdate']
322
- end
323
-
324
- @rest_action = 'GET'
325
- enable_api_security
326
-
327
- if result = send_request(resource, query)
328
- return result
329
- end
330
-
331
- return false
332
- end
333
-
334
- def get_leads(filter = {}, page = 0, items = 10)
335
- resource = ['reports', 'leads']
336
-
337
- query = {'page' => page, 'items' => items}
338
-
339
- if !filter['date'].blank?
340
- query['date'] = filter['date'];
341
- end
342
-
343
- if !filter['modifieddate'].blank?
344
- query['modifieddate'] = filter['modifieddate']
345
- end
346
-
347
- if !filter['clickdate'].blank?
348
- query['clickdate'] = filter['clickdate']
349
- end
350
-
351
- @rest_action = 'GET'
352
- enable_api_security
353
-
354
- if result = send_request(resource, query)
355
- return result
356
- end
357
-
358
- return false
359
- end
360
-
361
- def get_payments(page = 0, items = 10)
362
- resource = ['payments']
363
-
364
- query = {'page' => page, 'items' => items}
365
-
366
- @rest_action = 'GET'
367
- enable_api_security
368
-
369
- if result = send_request(resource, query)
370
- return result
371
- end
372
-
373
- return false
374
- end
375
-
376
- def get_payment(payment_id)
377
- resource = ['payments', 'payment', payment_id]
378
-
379
- @rest_action = 'GET'
380
- enable_api_security
381
-
382
- if result = send_request(resource)
383
- return result
384
- end
385
-
386
- return false
387
- end
388
-
389
- def get_balances
390
- resource = ['payments', 'balances']
391
-
392
- @rest_action = 'GET'
393
- enable_api_security
394
-
395
- if result = send_request(resource)
396
- return result
397
- end
398
-
399
- return false
400
- end
401
-
402
- def get_balance(currency_code)
403
- resource = ['payments', 'balances', 'balance', currency_code]
404
-
405
- @rest_action = 'GET'
406
- enable_api_security
407
-
408
- if result = send_request(resource)
409
- return result
410
- end
411
-
412
- return false
413
- end
414
-
415
- def get_accounts
416
- resource = ['payments', 'accounts']
417
-
418
- @rest_action = 'GET'
419
- enable_api_security
420
-
421
- if result = send_request(resource)
422
- return result
423
- end
424
-
425
- return false
426
- end
427
-
428
- def get_account(account_id)
429
- resource = ['payments', 'accounts', 'account', account_id.to_s]
430
-
431
- @rest_action = 'GET'
432
- enable_api_security
433
-
434
- if result = send_request(resource)
435
- return result
436
- end
437
-
438
- return false
439
- end
440
-
441
- def get_profile
442
- resource = ['profiles']
443
-
444
- @rest_action = 'GET'
445
- enable_api_security
446
-
447
- result = send_request(resource, false)
448
-
449
- return result
450
- end
451
-
452
- # def update_profile(profile_item)#TODO test
453
- # resource = ['profiles']
454
- #
455
- # @rest_action = 'PUT'
456
- # enable_api_security
457
- #
458
- # body = serialize('profileItem', profile_item)
459
- #
460
- # if send_request(resource, false, profile_item)
461
- # return true
462
- # end
463
- #
464
- # return false
465
- # end
466
-
467
- def get_timestamp
468
- timestamp = Time.now.gmtime
469
- timestamp = timestamp.strftime("%a, %d %b %Y %H:%M:%S GMT")
470
- timestamp.to_s
471
- end
472
-
473
- def enable_raw_data
474
- @raw_data_disabled = true
475
- end
476
-
477
- def disable_raw_data
478
- @raw_data_disabled = false
479
- end
480
-
481
- private
482
-
483
- def send_request(resource, query = {}, body = false)
484
- version = false
485
- uri_path = "/" + resource.join("/")
486
- timestamp = get_timestamp
487
-
488
- if @api_security
489
- shash = build_signature(uri_path, timestamp)
490
- authorization = "ZXWS " + @application_id + ":" + shash
491
- else
492
- authorization = "ZXWS " + @application_id
493
- end
494
-
495
- if @version
496
- version = "/" + @version
497
- else
498
- version = ""
499
- end
500
-
501
- request_url = @url + version + uri_path
502
-
503
- url = URI.parse(request_url)
504
- path = url.path
505
- path = path + '?' + query.to_query if query.is_a?(Hash) && !query.empty?
506
-
507
- case @rest_action
508
- when 'GET'
509
- req = Net::HTTP::Get.new(path)
510
- when 'PUT'
511
- req = Net::HTTP::Put.new(path)
512
- when 'POST'
513
- req = Net::HTTP::Post.new(path)
514
- when 'DELETE'
515
- req = Net::HTTP::Delete.new(path)
516
- end
517
-
518
- req.add_field("authorization", authorization)
519
- req.add_field("date", timestamp)
520
- req.add_field("user-agent", "zanox PHP API Client")
521
- req.add_field("content-type" , @content_type)
522
- req.add_field("host" , "api.zanox.com")
523
-
524
- res = Net::HTTP.new(url.host, url.port).start do |http|
525
- http.request(req)
526
- end
527
-
528
- if res.code == '200'
529
- return res.body
530
- end
531
-
532
- @last_error_msg = res.message
533
-
534
- return false
535
- end
536
-
537
- def build_signature(uri, timestamp)
538
- sign = @rest_action + uri + timestamp
539
- if ( hmac = get_hmac_signature(sign) )
540
- return hmac
541
- end
542
-
543
- return false
544
- end
545
-
546
- # def serialize#TODO implement
547
- #
548
- # end
549
-
550
- end
551
-
552
- end