zanox 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,60 +1,95 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
2
  name: zanox
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.1.0
7
- date: 2009-07-13 00:00:00 +02:00
8
- summary: Ruby wrapper around Zanox API.
9
- require_paths:
10
- - lib
11
- email:
12
- homepage: http://wiki.zanox.com/
13
- rubyforge_project:
14
- description: Ruby Client Library.
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: false
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 2
8
+ - 0
9
+ version: 0.2.0
25
10
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
11
  authors:
30
- - Chi-Dong Ly
31
- files:
32
- - README.txt
33
- - License.txt
34
- - lib/zanox.rb
35
- - lib/zanox/zanox_base.rb
36
- - lib/zanox/zanox_xml.rb
37
- - lib/zanox/zanox_json.rb
38
- - lib/zanox/zanox_soap.rb
39
- test_files: []
40
-
41
- rdoc_options: []
42
-
43
- extra_rdoc_files: []
44
-
45
- executables: []
46
-
47
- extensions: []
48
-
49
- requirements: []
12
+ - Krispin Schulz
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
50
16
 
17
+ date: 2010-05-07 00:00:00 +02:00
18
+ default_executable:
51
19
  dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: soap4r
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 1
29
+ - 5
30
+ - 8
31
+ version: 1.5.8
32
+ type: :runtime
33
+ version_requirements: *id001
52
34
  - !ruby/object:Gem::Dependency
53
35
  name: ruby-hmac
54
- version_requirement:
55
- version_requirements: !ruby/object:Gem::Version::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
56
38
  requirements:
57
39
  - - ">="
58
40
  - !ruby/object:Gem::Version
59
- version: 0.3.2
60
- version:
41
+ segments:
42
+ - 0
43
+ - 4
44
+ - 0
45
+ version: 0.4.0
46
+ type: :runtime
47
+ version_requirements: *id002
48
+ description: The easy way to the zanox web services.
49
+ email: krispinone@googlemail.com
50
+ executables: []
51
+
52
+ extensions: []
53
+
54
+ extra_rdoc_files:
55
+ - README.textile
56
+ files:
57
+ - Rakefile
58
+ - zanox.gemspec
59
+ - README.textile
60
+ - lib/zanox.rb
61
+ - test/zanox_tests.rb
62
+ - spec/zanox_specs.rb
63
+ has_rdoc: true
64
+ homepage: http://kr1sp1n.com/
65
+ licenses: []
66
+
67
+ post_install_message:
68
+ rdoc_options:
69
+ - --main
70
+ - README.textile
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ segments:
78
+ - 0
79
+ version: "0"
80
+ required_rubygems_version: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ segments:
85
+ - 0
86
+ version: "0"
87
+ requirements: []
88
+
89
+ rubyforge_project:
90
+ rubygems_version: 1.3.6
91
+ signing_key:
92
+ specification_version: 3
93
+ summary: One gem to rule the zanox web services.
94
+ test_files:
95
+ - test/zanox_tests.rb
data/License.txt DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2009 Chi-Dong Ly
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.txt DELETED
@@ -1,82 +0,0 @@
1
- = Zanox.rb
2
-
3
- * Rubyforge profile: http://zanox.rubyforge.org
4
- * Source code repository:
5
-
6
- == DESCRIPTION:
7
-
8
- Ruby wrapper around Zanox.com[http://www.zanox.com] API.
9
-
10
- == FEATURES:
11
-
12
- Currently implemented API methods:
13
-
14
- * get_adspaces
15
- * get_adspace
16
- * delete_adspace
17
- * get_program
18
- * get_programs
19
- * search_programs
20
- * get_program_news
21
- * get_program_categories
22
- * get_programs_by_adspace
23
- * delete_program_application
24
- * get_product
25
- * get_products_by_program
26
- * search_products
27
- * get_admedium
28
- * get_admedia_by_program
29
- * get_admedia_categories_by_program
30
- * get_sales
31
- * get_leads
32
- * get_payments
33
- * get_payment
34
- * get_balances
35
- * get_balance
36
- * get_accounts
37
- * get_account
38
- * get_profile
39
-
40
-
41
- == NOT YET IMPLEMENTED:
42
-
43
- * create and update methods
44
-
45
- == REQUIREMENTS:
46
-
47
- * active_support[http://rubyforge.org/projects/activesupport/]
48
- * rest-client[http://rubyforge.org/projects/rest-client/]
49
- * mime-types[http://rubyforge.org/projects/mime-types/]
50
-
51
- == INSTALL:
52
-
53
- * sudo gem install zanox
54
-
55
- == CONTACT:
56
-
57
- * chi-dong.ly@palabea.com
58
-
59
- == LICENSE:
60
-
61
- (The MIT License)
62
-
63
- Copyright (c) 2009 Chi-Dong Ly
64
-
65
- Permission is hereby granted, free of charge, to any person obtaining
66
- a copy of this software and associated documentation files (the
67
- 'Software'), to deal in the Software without restriction, including
68
- without limitation the rights to use, copy, modify, merge, publish,
69
- distribute, sublicense, and/or sell copies of the Software, and to
70
- permit persons to whom the Software is furnished to do so, subject to
71
- the following conditions:
72
-
73
- The above copyright notice and this permission notice shall be
74
- included in all copies or substantial portions of the Software.
75
-
76
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
77
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
78
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
79
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
80
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
81
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
82
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,48 +0,0 @@
1
- require 'hmac-sha1'
2
- require 'base64'
3
-
4
- module Zanox
5
-
6
- class ZanoxBase
7
-
8
- attr_accessor :timestamp
9
- attr_reader :application_id, :last_error_msg
10
- attr_writer :version
11
-
12
- def initialize(version = false)
13
- @version = version
14
- @application_id = ''
15
- @shared_key = ''
16
- @timestamp = false
17
- @version = false
18
- @api_security = false
19
- @last_error_msg = false
20
- end
21
-
22
- def set_message_credentials(application_id, shared_key)
23
- @application_id = application_id
24
- @shared_key = shared_key
25
- end
26
-
27
- protected
28
-
29
- def get_hmac_signature(mesgparams)
30
- hmac = Base64.encode64(HMAC::SHA1.digest(@shared_key, mesgparams)).chomp
31
- hmac
32
- end
33
-
34
- def enable_api_security
35
- @api_security = true
36
- end
37
-
38
- def disable_api_security
39
- @api_security = false
40
- end
41
-
42
- def get_timestamp
43
-
44
- end
45
-
46
- end
47
-
48
- end
@@ -1,19 +0,0 @@
1
- module Zanox
2
-
3
- class ZanoxJson < ZanoxXml
4
-
5
- def initialize(version = false)
6
- @version = version
7
- @rest_action = 'GET'
8
- @url = 'http://api.zanox.com/json'
9
- @content_type = 'application/json'
10
- @raw_data_disabled = true
11
- end
12
-
13
- # def serialize#TODO
14
- #
15
- # end
16
-
17
- end
18
-
19
- end
@@ -1,581 +0,0 @@
1
- require 'soap/wsdlDriver'
2
-
3
- module Zanox
4
-
5
- class ZanoxSoap < ZanoxBase
6
-
7
- attr_accessor :service, :wsdl, :soap
8
-
9
- def initialize
10
- @service = 'publisherservice'
11
- @wsdl = 'http://api.zanox.com/wsdl'
12
- @soap = false
13
- end
14
-
15
- def get_adspaces
16
- method = 'GetAdspaces'
17
-
18
- enable_api_security
19
-
20
- if result = send_request(method)
21
- return result
22
- end
23
-
24
- return false
25
- end
26
-
27
- def get_adspace(adspace_id)
28
- method = 'GetAdspace'
29
-
30
- params = {'adspaceId' => adspace_id.to_s }
31
-
32
- enable_api_security
33
-
34
- if result = send_request(method, params)
35
- return result
36
- end
37
-
38
- return false
39
- end
40
-
41
- # def create_adspace(adspace_item, lang = 'en')#FIXME
42
- # method = 'CreateAdspace'
43
- # end
44
- #
45
- # def update_adspace(adspace_id, adspace_item)#FIXME
46
- # method = 'UpdateAdspace'
47
- # end
48
-
49
- def delete_adspace(adspace_id)
50
- method = 'DeleteAdspace'
51
-
52
- params = { 'adspaceId' => adspace_id.to_s }
53
-
54
- enable_api_security
55
-
56
- if send_request(method, params)
57
- return true
58
- end
59
-
60
- return false
61
- end
62
-
63
- def get_program(program_id)
64
- method = 'GetProgram'
65
-
66
- params = { 'programId' => program_id.to_s }
67
-
68
- disable_api_security
69
-
70
- if result = send_request(method, params)
71
- return result
72
- end
73
-
74
- return false
75
- end
76
-
77
- def get_programs(category_id = false, page = 0, items = 10)
78
- method = 'GetPrograms'
79
-
80
- params = {
81
- 'page' => page,
82
- 'items' => items,
83
- 'adspaceId' => 0,
84
- 'categoryId' => 0
85
- }
86
-
87
- if ( category_id )
88
- params['categoryId'] = category_id.to_s
89
- end
90
-
91
- disable_api_security
92
-
93
- if result = send_request(method, params)
94
- return result
95
- end
96
-
97
- return false
98
- end
99
-
100
- def search_programs(q, page = 0, items = 10)
101
- method = 'SearchPrograms'
102
-
103
- params = {
104
- 'query' => q,
105
- 'page' => page,
106
- 'items' => items,
107
- 'categoryId' => 0
108
- }
109
-
110
- disable_api_security
111
-
112
- if result = send_request(method, params)
113
- return result
114
- end
115
-
116
- return false
117
- end
118
-
119
- def get_program_news
120
- method = 'GetProgramPromotions'
121
-
122
- disable_api_security
123
-
124
- if result = send_request(method)
125
- return result
126
- end
127
-
128
- return false
129
- end
130
-
131
- def get_program_categories
132
- method = 'GetProgramCategories'
133
-
134
- disable_api_security
135
-
136
- if result = send_request(method)
137
- return result
138
- end
139
-
140
- return false
141
- end
142
-
143
- def get_programs_by_adspace(adspace_id, page = 0, items = 10)
144
- method = 'GetPrograms'
145
-
146
- params = {
147
- 'page' => page,
148
- 'items' => items,
149
- 'adspaceId' => adspace_id.to_s,
150
- 'categoryId' => 0
151
- }
152
-
153
- enable_api_security
154
-
155
- if result = send_request(method, params)
156
- return result
157
- end
158
-
159
- return false
160
- end
161
-
162
- # def create_program_application(program_id, adspace_id)#FIXME
163
- # method = 'CreateProgramApplication'
164
- # end
165
-
166
- def delete_program_application(program_id, adspace_id)#TODO test
167
- method = 'DeleteProgramApplication'
168
-
169
- params = {
170
- 'programId' => program_id.to_s,
171
- 'adspaceId' => adspace_id.to_s
172
- }
173
-
174
- enable_api_security
175
-
176
- if send_request(method, params)
177
- return true
178
- end
179
-
180
- return false
181
- end
182
-
183
- def get_product(zup_id)
184
- method = 'GetProduct'
185
-
186
- params = {'zupId' => zup_id.to_s }
187
-
188
- disable_api_security
189
-
190
- if result = send_request(method, params)
191
- return result
192
- end
193
-
194
- return false
195
- end
196
-
197
- def get_products_by_program(program_id, filter = {}, page = 0, items = 10)
198
- method = 'GetProducts'
199
-
200
- params = {
201
- 'programId' => program_id.to_s,
202
- 'page' => page,
203
- 'items' => items,
204
- 'adspaceId' => 0
205
- }
206
-
207
- if ( !filter['adspace'].blank? )
208
- params['adspaceId'] = filter['adspace']
209
- end
210
-
211
- if ( !filter['modified'].blank? )
212
- params['modifiedDate'] = filter['modified']
213
- end
214
-
215
- disable_api_security
216
-
217
- if result = send_request(method, params)
218
- return result
219
- end
220
-
221
- return false
222
- end
223
-
224
- def search_products(q, filter = {}, page = 0, items = 10)
225
- method = 'SearchProducts'
226
-
227
- params = {
228
- 'query' => q,
229
- 'page' => page,
230
- 'items' => items,
231
- 'adspaceId' => 0
232
- }
233
-
234
- if ( !filter['adspace'].blank? )
235
- params['adspaceId'] = filter['adspace']
236
- end
237
-
238
- if ( !filter['region'].blank? && filter['region'].size == 2)
239
- params['region'] = filter['region']
240
- end
241
-
242
- if ( !filter['minprice'].blank? )
243
- params['minPrice'] = filter['minprice']
244
- end
245
-
246
- if ( !filter['maxprice'].blank? )
247
- params['maxPrice'] = filter['maxprice']
248
- end
249
-
250
- if ( !filter['ip'].blank? )
251
- params['ipAddress'] = filter['ip']
252
- end
253
-
254
- disable_api_security
255
-
256
- if result = send_request(method, params)
257
- return result
258
- end
259
-
260
- return false
261
- end
262
-
263
- def get_admedium(admedium_id)
264
- method = 'GetAdmedium'
265
-
266
- params = {
267
- 'admediaId' => admedium_id.to_s,
268
- 'adspaceId' => 0
269
- }
270
-
271
- disable_api_security
272
-
273
- if result = send_request(method, params)
274
- return result
275
- end
276
-
277
- return false
278
- end
279
-
280
- def get_admedia_by_program(program_id, filter = {}, page = 0, items = 10)
281
- method = 'GetAdmedia'
282
-
283
- params = {
284
- 'programId' => program_id.to_s,
285
- 'page' => page,
286
- 'items' => items,
287
- 'categoryId' => 0,
288
- 'type' => 0,
289
- 'format' => 0,
290
- 'adspaceId' => 0
291
- }
292
-
293
- if ( !filter['adspace'].blank? )
294
- params['adspaceId'] = filter['adspace']
295
- end
296
-
297
- if ( !filter['category'].blank? )
298
- params['goryId'] = filter['category']
299
- end
300
-
301
- if ( !filter['type'].blank? )
302
- params['type'] = filter['type']
303
- end
304
-
305
- disable_api_security
306
-
307
- if result = send_request(method, params)
308
- return result
309
- end
310
-
311
- return false
312
- end
313
-
314
- def get_admedia_categories_by_program(program_id)
315
- method = 'GetAdmediumCategories'
316
-
317
- params = { 'programId' => program_id.to_s }
318
-
319
- disable_api_security
320
-
321
- if result = send_request(method, params)
322
- return result
323
- end
324
-
325
- return false
326
- end
327
-
328
- def get_sales(filter = {}, page = 0, items = 10)
329
- method = 'GetSales'
330
-
331
- params = {
332
- 'page' => page,
333
- 'items' => items
334
- }
335
-
336
- if ( !filter['date'].blank? )
337
- params['date'] = filter['date']
338
- end
339
-
340
- if ( !filter['modifieddate'].blank? )
341
- params['modifieddate'] = filter['modifieddate']
342
- end
343
-
344
- if ( !filter['clickdate'].blank? )
345
- params['clickdate'] = filter['clickdate']
346
- end
347
-
348
- enable_api_security
349
-
350
- if result = send_request(method, params)
351
- return result
352
- end
353
-
354
- return false
355
- end
356
-
357
- def get_leads(filter = {}, page = 0, items = 10)
358
- method = 'GetLeads'
359
-
360
- params = {
361
- 'page' => page,
362
- 'items' => items
363
- }
364
-
365
- if ( !filter['date'].blank? )
366
- params['date'] = filter['date']
367
- end
368
-
369
- if ( !filter['modifieddate'].blank? )
370
- params['modifieddate'] = filter['modifieddate']
371
- end
372
-
373
- if ( !filter['clickdate'].blank? )
374
- params['clickdate'] = filter['clickdate']
375
- end
376
-
377
- enable_api_security
378
-
379
- if result = send_request(method, params)
380
- return result
381
- end
382
-
383
- return false
384
- end
385
-
386
- def get_payments(page = 0, items = 10)
387
- method = 'GetPayments'
388
-
389
- params = {
390
- 'page' => page,
391
- 'items' => items
392
- }
393
-
394
- enable_api_security
395
-
396
- if result = send_request(method, params)
397
- return result
398
- end
399
-
400
- return false
401
- end
402
-
403
- def get_payment(payment_id)
404
- method = 'GetPayments'
405
-
406
- params = { 'paymentId' => payment_id.to_s }
407
-
408
- #just has to be set to false to work around the bug
409
- # 3 lines can be removed after fixing
410
- params['page'] = page
411
- params['items'] = items
412
-
413
- enable_api_security
414
-
415
- if result = send_request(method, params)
416
- return result
417
- end
418
-
419
- return false
420
- end
421
-
422
- def get_balances
423
- method = 'GetBalances'
424
-
425
- enable_api_security
426
-
427
- if result = send_request(method)
428
- return result
429
- end
430
-
431
- return false
432
- end
433
-
434
- def get_balance(currency_code)
435
- method = 'GetBalances'
436
-
437
- params = { 'currency' => currency_code }
438
-
439
- enable_api_security
440
-
441
- if result = send_request(method, params)
442
- return result
443
- end
444
-
445
- return false
446
- end
447
-
448
- def get_accounts
449
- method = 'GetAccounts'
450
-
451
- enable_api_security
452
-
453
- if result = send_request(method)
454
- return result
455
- end
456
-
457
- return false
458
- end
459
-
460
- def get_account(account_id)
461
- method = 'GetAccounts'
462
-
463
- params = { 'accountId' => account_id }
464
-
465
- enable_api_security
466
-
467
- if result = send_request(method, params)
468
- return result
469
- end
470
-
471
- return false
472
- end
473
-
474
- def get_profile
475
- method = 'GetProfile'
476
-
477
- enable_api_security
478
-
479
- if result = send_request(method)
480
- return result
481
- end
482
-
483
- return false
484
- end
485
-
486
- # def update_profile(profile_item)#FIXME
487
- # method = 'UpdateProfile'
488
- # end
489
-
490
- def get_timestamp
491
- timestamp = Time.now.gmtime
492
- timestamp = timestamp.strftime("%Y-%m-%dT%H:%M:%S.000Z")
493
- timestamp.to_s
494
- end
495
-
496
- def send_request(method, params = {})
497
- params['applicationId'] = @application_id
498
-
499
- if @api_security
500
- params['timestamp'] = get_timestamp
501
- params['signature'] = build_signature(method)
502
- end
503
-
504
- begin
505
- proxy = SOAP::WSDLDriverFactory.new(@wsdl).create_rpc_driver
506
- case method
507
- when 'GetAdspaces'
508
- res = proxy.GetAdspaces(params)
509
- when 'GetAdspace'
510
- res = proxy.GetAdspace(params)
511
- when 'CreateAdspace'
512
- res = proxy.CreateAdspace(params)
513
- when 'UpdateAdspace'
514
- res = proxy.UpdateAdspace(params)
515
- when 'DeleteAdspace'
516
- res = proxy.DeleteAdspace(params)
517
- when 'GetProgram'
518
- res = proxy.GetProgram(params)
519
- when 'GetPrograms'
520
- res = proxy.GetPrograms(params)
521
- when 'SearchPrograms'
522
- res = proxy.SearchPrograms(params)
523
- when 'GetProgramPromotions'
524
- res = proxy.GetProgramPromotions(params)
525
- when 'GetProgramCategories'
526
- res = proxy.GetProgramCategories(params)
527
- when 'CreateProgramApplication'
528
- res = proxy.CreateProgramApplication(params)
529
- when 'DeleteProgramApplication'
530
- res = proxy.DeleteProgramApplication(params)
531
- when 'GetProduct'
532
- res = proxy.GetProduct(params)
533
- when 'GetProducts'
534
- res = proxy.GetProducts(params)
535
- when 'SearchProducts'
536
- res = proxy.SearchProducts(params)
537
- when 'GetAdmedium'
538
- res = proxy.GetAdmedium(params)
539
- when 'GetAdmedia'
540
- res = proxy.GetAdmedia(params)
541
- when 'GetAdmediumCategories'
542
- res = proxy.GetAdmediumCategories(params)
543
- when 'GetSales'
544
- res = proxy.GetSales(params)
545
- when 'GetLeads'
546
- res = proxy.GetLeads(params)
547
- when 'GetPayments'
548
- res = proxy.GetPayments(params)
549
- when 'GetBalances'
550
- res = proxy.GetBalances(params)
551
- when 'GetAccounts'
552
- res = proxy.GetAccounts(params)
553
- when 'GetProfile'
554
- res = proxy.GetProfile(params)
555
- when 'UpdateProfile'
556
- res = proxy.UpdateProfile(params)
557
- end
558
-
559
- return res
560
- rescue Exception => e
561
- @last_error_msg = e.to_s
562
- end
563
-
564
- return false
565
- end
566
-
567
- private
568
-
569
- def build_signature(method)
570
- sign = @service + method.downcase + get_timestamp
571
-
572
- if hmac = get_hmac_signature(sign)
573
- return hmac
574
- end
575
-
576
- return false
577
- end
578
-
579
- end
580
-
581
- end