zanox 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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