2Performant 0.0.8 → 0.1.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,46 +1,39 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{2Performant}
8
- s.version = "0.0.8"
7
+ s.name = "2Performant"
8
+ s.version = ""
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["2Performant"]
12
- s.date = %q{2010-07-26}
13
- s.description = %q{Library for the 2Performant API}
14
- s.email = %q{andrei@2performant.com}
12
+ s.date = "2012-09-20"
13
+ s.description = "Library for the 2Performant API"
14
+ s.email = "radu@2performant.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
- "README.md"
17
+ "README.md"
18
18
  ]
19
19
  s.files = [
20
20
  ".document",
21
- ".gitignore",
22
- "2Performant.gemspec",
23
- "LICENSE",
24
- "README.md",
25
- "Rakefile",
26
- "VERSION",
27
- "lib/two_performant.rb",
28
- "lib/two_performant/oauth.rb",
29
- "test/helper.rb",
30
- "test/test_2performant.rb"
31
- ]
32
- s.homepage = %q{http://github.com/2performant/2Performant}
33
- s.rdoc_options = ["--charset=UTF-8"]
34
- s.require_paths = ["lib"]
35
- s.rubygems_version = %q{1.3.7}
36
- s.summary = %q{Library for the 2Performant API}
37
- s.test_files = [
21
+ "2Performant.gemspec",
22
+ "LICENSE",
23
+ "README.md",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "lib/two_performant.rb",
27
+ "lib/two_performant/oauth.rb",
38
28
  "test/helper.rb",
39
- "test/test_2performant.rb"
29
+ "test/test_2performant.rb"
40
30
  ]
31
+ s.homepage = "http://github.com/2performant/2Performant"
32
+ s.require_paths = ["lib"]
33
+ s.rubygems_version = "1.8.24"
34
+ s.summary = "Library for the 2Performant API"
41
35
 
42
36
  if s.respond_to? :specification_version then
43
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
44
37
  s.specification_version = 3
45
38
 
46
39
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
data/README.md CHANGED
@@ -4,7 +4,7 @@ The API allows you to integrate any 2Performant network in your application.
4
4
 
5
5
  Its goal is to make sure developers can implement anything that can be done via the web interface using API functions.
6
6
 
7
- The API is RESTful XML over HTTP using all four verbs (GET/POST/PUT/DELETE).
7
+ The API is RESTful JSON over HTTP using all four verbs (GET/POST/PUT/DELETE).
8
8
 
9
9
  The current implementation is a straight port of the PHP library, so the documentation applies, for the most part, to both libraries.
10
10
 
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ begin
7
7
  gem.name = "2Performant"
8
8
  gem.summary = %Q{Library for the 2Performant API}
9
9
  gem.description = %Q{Library for the 2Performant API}
10
- gem.email = "andrei@2performant.com"
10
+ gem.email = "radu@2performant.com"
11
11
  gem.homepage = "http://github.com/2performant/2Performant"
12
12
  gem.authors = ["2Performant"]
13
13
  gem.add_dependency "httparty"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.8
1
+ 0.1.0
@@ -1,10 +1,11 @@
1
1
  require 'httparty'
2
+ require 'json'
2
3
  require 'two_performant/oauth'
3
4
 
4
5
  class TwoPerformant
5
6
  include HTTParty
6
- format :xml
7
- headers 'Content-Type' => 'text/xml'
7
+ format :json
8
+ headers 'Content-Type' => 'text/json'
8
9
 
9
10
  attr_accessor :user, :pass, :host, :version, :auth_type, :oauth, :oauth_request
10
11
 
@@ -27,13 +28,13 @@ class TwoPerformant
27
28
  # Users
28
29
  # =======
29
30
  def user_show(user_id)
30
- self.hook("/users/#{user_id}.xml", "user");
31
+ self.hook("/users/#{user_id}.json", "user");
31
32
  end
32
33
 
33
34
 
34
35
  # Display public information about the logged in user
35
36
  def user_loggedin
36
- self.hook("/users/loggedin.xml", "user");
37
+ self.hook("/users/loggedin.json", "user");
37
38
  end
38
39
 
39
40
  # ===========
@@ -48,7 +49,7 @@ class TwoPerformant
48
49
  'perpage' => perpage
49
50
  }
50
51
 
51
- self.hook("/campaigns.xml", "campaign", request, 'GET')
52
+ self.hook("/campaigns.json", "campaign", request, 'GET')
52
53
  end
53
54
 
54
55
  # Search for campaigns
@@ -59,27 +60,27 @@ class TwoPerformant
59
60
  'search' => search
60
61
  }
61
62
 
62
- self.hook("/campaigns/search.xml", "campaign", request, 'GET')
63
+ self.hook("/campaigns/search.json", "campaign", request, 'GET')
63
64
  end
64
65
 
65
66
  # Display public information about a campaign
66
67
  def campaign_show(campaign_id)
67
- self.hook("/campaigns/#{campaign_id}.xml", "campaign")
68
+ self.hook("/campaigns/#{campaign_id}.json", "campaign")
68
69
  end
69
70
 
70
71
  # Affiliates: List campaigns which have the logged in user accepted
71
72
  def campaigns_listforaffiliate
72
- self.hook("/campaigns/listforaffiliate.xml", "campaign")
73
+ self.hook("/campaigns/listforaffiliate.json", "campaign")
73
74
  end
74
75
 
75
76
  # Merchants: List all campaigns created by the logged in user
76
77
  def campaigns_listforowner
77
- self.hook("/campaigns/listforowner.xml", "campaign")
78
+ self.hook("/campaigns/listforowner.json", "campaign")
78
79
  end
79
80
 
80
81
  # Merchants: Display complete information about a campaign (only available to owner)
81
82
  def campaign_showforowner(campaign_id)
82
- self.hook("/campaigns/#{campaign_id}/showforowner.xml", "campaign")
83
+ self.hook("/campaigns/#{campaign_id}/showforowner.json", "campaign")
83
84
  end
84
85
 
85
86
  # Merchants: Update a campaign
@@ -87,7 +88,7 @@ class TwoPerformant
87
88
  request = {
88
89
  'campaign' => campaign
89
90
  }
90
- self.hook("/campaigns/#{campaign_id}.xml", "campaign", request, 'PUT')
91
+ self.hook("/campaigns/#{campaign_id}.json", "campaign", request, 'PUT')
91
92
  end
92
93
 
93
94
  # Create a Deep Link. This method was created so it wouldn't make a request for every Quick Link.
@@ -111,7 +112,7 @@ class TwoPerformant
111
112
  'sale' => sale
112
113
  }
113
114
 
114
- self.hook("/campaigns/#{campaign_id}/sales.xml", "sale", request, "POST")
115
+ self.hook("/campaigns/#{campaign_id}/sales.json", "sale", request, "POST")
115
116
  end
116
117
 
117
118
  # ============
@@ -123,7 +124,7 @@ class TwoPerformant
123
124
  'lead' => lead
124
125
  }
125
126
 
126
- self.hook("/campaigns/#{campaign_id}/leads.xml", "lead", request, "POST")
127
+ self.hook("/campaigns/#{campaign_id}/leads.json", "lead", request, "POST")
127
128
  end
128
129
 
129
130
  # ============
@@ -138,7 +139,7 @@ class TwoPerformant
138
139
  'search' => search
139
140
  }
140
141
 
141
- self.hook("/affiliates/search.xml", "user", request, 'GET')
142
+ self.hook("/affiliates/search.json", "user", request, 'GET')
142
143
  end
143
144
 
144
145
  # Merchants: List affiliates approved in campaigns
@@ -146,7 +147,7 @@ class TwoPerformant
146
147
  request = {
147
148
  'campaign_id' => campaign_id
148
149
  }
149
- self.hook("/affiliates/listformerchant.xml", "user", request, 'GET')
150
+ self.hook("/affiliates/listformerchant.json", "user", request, 'GET')
150
151
  end
151
152
 
152
153
  # =============
@@ -165,7 +166,7 @@ class TwoPerformant
165
166
 
166
167
  request.merge(options)
167
168
 
168
- self.hook("/commissions/search.xml", "commission", request, 'GET')
169
+ self.hook("/commissions/search.json", "commission", request, 'GET')
169
170
  end
170
171
 
171
172
  # Merchants: List commissions on campaigns. Month: 01 to 12; Year: 20xx.
@@ -176,7 +177,7 @@ class TwoPerformant
176
177
  'year' => year
177
178
  }
178
179
 
179
- self.hook("/commissions/listformerchant.xml", "campaign", request, 'GET')
180
+ self.hook("/commissions/listformerchant.json", "campaign", request, 'GET')
180
181
  end
181
182
 
182
183
  # Affiliates: List commissions on campaigns. Month: 01 to 12; Year: 20xx.
@@ -187,12 +188,12 @@ class TwoPerformant
187
188
  'year' => year
188
189
  }
189
190
 
190
- self.hook("/commissions/listforaffiliate.xml", "commission", request, 'GET')
191
+ self.hook("/commissions/listforaffiliate.json", "commission", request, 'GET')
191
192
  end
192
193
 
193
194
  # Merchant Campaign Owner or Affiliate Commission Owner: Show information about a commission
194
195
  def commission_show(commission_id)
195
- self.hook("/commissions/#{commission_id}.xml", "commission")
196
+ self.hook("/commissions/#{commission_id}.json", "commission")
196
197
  end
197
198
 
198
199
  # Merchant: Update a commission
@@ -200,7 +201,7 @@ class TwoPerformant
200
201
  request = {
201
202
  'commission' => commission
202
203
  }
203
- self.hook("/commissions/#{commission_id}.xml", "commission", request, 'PUT')
204
+ self.hook("/commissions/#{commission_id}.json", "commission", request, 'PUT')
204
205
  end
205
206
 
206
207
  # =======
@@ -215,12 +216,12 @@ class TwoPerformant
215
216
  'perpage' => perpage
216
217
  }
217
218
 
218
- self.hook("/sites.xml", "site", request)
219
+ self.hook("/sites.json", "site", request)
219
220
  end
220
221
 
221
222
  # Display information about a site
222
223
  def site_show(site_id)
223
- self.hook("/sites/#{site_id}.xml", "site")
224
+ self.hook("/sites/#{site_id}.json", "site")
224
225
  end
225
226
 
226
227
  # Search for sites
@@ -231,12 +232,12 @@ class TwoPerformant
231
232
  'search' => search
232
233
  }
233
234
 
234
- self.hook("/sites/search.xml", "site", request, 'GET')
235
+ self.hook("/sites/search.json", "site", request, 'GET')
235
236
  end
236
237
 
237
238
  # Affiliates: List all sites created by the logged in user
238
239
  def sites_listforowner
239
- self.hook("/sites/listforowner.xml", "site")
240
+ self.hook("/sites/listforowner.json", "site")
240
241
  end
241
242
 
242
243
  # Affiliates: Update a site
@@ -244,13 +245,13 @@ class TwoPerformant
244
245
  request = {
245
246
  'site' => site
246
247
  }
247
- self.hook("/sites/#{site_id}.xml", "site", request, 'PUT')
248
+ self.hook("/sites/#{site_id}.json", "site", request, 'PUT')
248
249
  end
249
250
 
250
251
 
251
252
  # Affiliates: Destroy a site
252
253
  def site_destroy(site_id)
253
- self.hook("/sites/#{site_id}.xml", "site", request, 'DELETE')
254
+ self.hook("/sites/#{site_id}.json", "site", request, 'DELETE')
254
255
  end
255
256
 
256
257
  # ============
@@ -264,12 +265,12 @@ class TwoPerformant
264
265
  'perpage' => perpage
265
266
  }
266
267
 
267
- self.hook("/campaigns/#{campaign_id}/txtlinks.xml", "txtlink", request, 'GET')
268
+ self.hook("/campaigns/#{campaign_id}/txtlinks.json", "txtlink", request, 'GET')
268
269
  end
269
270
 
270
271
  # Display information about a text link
271
272
  def txtlink_show(campaign_id, txtlink_id)
272
- self.hook("/campaigns/#{campaign_id}/txtlinks/#{txtlink_id}.xml", "txtlink")
273
+ self.hook("/campaigns/#{campaign_id}/txtlinks/#{txtlink_id}.json", "txtlink")
273
274
  end
274
275
 
275
276
  # Search for text links in a campaign
@@ -281,7 +282,7 @@ class TwoPerformant
281
282
  'sort' => sort,
282
283
  }
283
284
 
284
- self.hook("/campaigns/#{campaign_id}/txtlinks/search.xml", "txtlink", request, 'GET')
285
+ self.hook("/campaigns/#{campaign_id}/txtlinks/search.json", "txtlink", request, 'GET')
285
286
  end
286
287
 
287
288
  #
@@ -298,7 +299,7 @@ class TwoPerformant
298
299
  'txtlink' => txtlink
299
300
  }
300
301
 
301
- self.hook("/campaigns/#{campaign_id}/txtlinks.xml", "txtlink", request, 'POST')
302
+ self.hook("/campaigns/#{campaign_id}/txtlinks.json", "txtlink", request, 'POST')
302
303
  end
303
304
 
304
305
  # Merchants: Update a text link
@@ -306,12 +307,12 @@ class TwoPerformant
306
307
  request = {
307
308
  'txtlink' => txtlink
308
309
  }
309
- self.hook("/campaigns/#{campaign_id}/txtlinks/#{txtlink_id}.xml", "txtlink", request, 'PUT')
310
+ self.hook("/campaigns/#{campaign_id}/txtlinks/#{txtlink_id}.json", "txtlink", request, 'PUT')
310
311
  end
311
312
 
312
313
  # Merchants: Destroy a text link
313
314
  def txtlink_destroy(campaign_id, txtlink_id)
314
- self.hook("/campaigns/#{campaign_id}/txtlinks/#{txtlink_id}.xml", "txtlink", nil, 'DELETE')
315
+ self.hook("/campaigns/#{campaign_id}/txtlinks/#{txtlink_id}.json", "txtlink", nil, 'DELETE')
315
316
  end
316
317
 
317
318
  # ============
@@ -325,12 +326,12 @@ class TwoPerformant
325
326
  'perpage' => perpage
326
327
  }
327
328
 
328
- self.hook("/campaigns/#{campaign_id}/txtads.xml", "txtad", request, 'GET')
329
+ self.hook("/campaigns/#{campaign_id}/txtads.json", "txtad", request, 'GET')
329
330
  end
330
331
 
331
332
  # Display information about a text ad
332
333
  def txtad_show(campaign_id, txtad_id)
333
- self.hook("/campaigns/#{campaign_id}/txtads/#{txtad_id}.xml", "txtad")
334
+ self.hook("/campaigns/#{campaign_id}/txtads/#{txtad_id}.json", "txtad")
334
335
  end
335
336
 
336
337
  # Search for text ads in a campaign
@@ -342,7 +343,7 @@ class TwoPerformant
342
343
  'sort' => sort
343
344
  }
344
345
 
345
- self.hook("/campaigns/#{campaign_id}/txtads/search.xml", "txtad", request, 'GET')
346
+ self.hook("/campaigns/#{campaign_id}/txtads/search.json", "txtad", request, 'GET')
346
347
  end
347
348
 
348
349
  #
@@ -358,7 +359,7 @@ class TwoPerformant
358
359
  'txtad' => txtad
359
360
  }
360
361
 
361
- self.hook("/campaigns/#{campaign_id}/txtads.xml", "txtad", request, 'POST')
362
+ self.hook("/campaigns/#{campaign_id}/txtads.json", "txtad", request, 'POST')
362
363
  end
363
364
 
364
365
 
@@ -368,12 +369,12 @@ class TwoPerformant
368
369
  'txtad' => txtad
369
370
  }
370
371
 
371
- self.hook("/campaigns/#{campaign_id}/txtads/#{txtad_id}.xml", "txtad", request, 'PUT')
372
+ self.hook("/campaigns/#{campaign_id}/txtads/#{txtad_id}.json", "txtad", request, 'PUT')
372
373
  end
373
374
 
374
375
  # Merchants: Destroy a text ad
375
376
  def txtad_destroy(campaign_id, txtad_id)
376
- self.hook("/campaigns/#{campaign_id}/txtads/#{txtad_id}.xml", "txtad", nil, 'DELETE')
377
+ self.hook("/campaigns/#{campaign_id}/txtads/#{txtad_id}.json", "txtad", nil, 'DELETE')
377
378
  end
378
379
 
379
380
  # =========
@@ -387,12 +388,12 @@ class TwoPerformant
387
388
  'perpage' => perpage
388
389
  }
389
390
 
390
- self.hook("/campaigns/#{campaign_id}/banners.xml", "banner", request, 'GET')
391
+ self.hook("/campaigns/#{campaign_id}/banners.json", "banner", request, 'GET')
391
392
  end
392
393
 
393
394
  # Display information about a banner
394
395
  def banner_show(campaign_id, banner_id)
395
- self.hook("/campaigns/#{campaign_id}/banners/#{banner_id}.xml", "banner")
396
+ self.hook("/campaigns/#{campaign_id}/banners/#{banner_id}.json", "banner")
396
397
  end
397
398
 
398
399
  # Search for banners in a campaign
@@ -404,7 +405,7 @@ class TwoPerformant
404
405
  'sort' => sort
405
406
  }
406
407
 
407
- self.hook("/campaigns/#{campaign_id}/banners/search.xml", "banner", request, 'GET')
408
+ self.hook("/campaigns/#{campaign_id}/banners/search.json", "banner", request, 'GET')
408
409
  end
409
410
 
410
411
  # Merchants: Create a banner
@@ -414,7 +415,7 @@ class TwoPerformant
414
415
  'banner_picture' => banner_picture
415
416
  }
416
417
 
417
- self.hook("/campaigns/#{campaign_id}/banners.xml", "banner", request, 'POST')
418
+ self.hook("/campaigns/#{campaign_id}/banners.json", "banner", request, 'POST')
418
419
  end
419
420
 
420
421
  # Merchants: Update a banner
@@ -423,12 +424,12 @@ class TwoPerformant
423
424
  'banner' => banner
424
425
  }
425
426
 
426
- self.hook("/campaigns/#{campaign_id}/banners/#{banner_id}.xml", "banner", request, 'PUT')
427
+ self.hook("/campaigns/#{campaign_id}/banners/#{banner_id}.json", "banner", request, 'PUT')
427
428
  end
428
429
 
429
430
  # Merchants: Destroy a banner
430
431
  def banner_destroy(campaign_id, banner_id)
431
- self.hook("/campaigns/#{campaign_id}/banners/#{banner_id}.xml", "banner", nil, 'DELETE')
432
+ self.hook("/campaigns/#{campaign_id}/banners/#{banner_id}.json", "banner", nil, 'DELETE')
432
433
  end
433
434
 
434
435
  # ===============
@@ -441,12 +442,12 @@ class TwoPerformant
441
442
  'campaign_id' => campaign_id
442
443
  }
443
444
 
444
- self.hook("/product_stores.xml", "product-store", request)
445
+ self.hook("/product_stores.json", "product-store", request)
445
446
  end
446
447
 
447
448
  # Show a Product Store
448
449
  def product_store_show(product_store_id)
449
- self.hook("/product_stores/#{product_store_id}.xml", "product-store")
450
+ self.hook("/product_stores/#{product_store_id}.json", "product-store")
450
451
  end
451
452
 
452
453
  # Show Products from a Product Store
@@ -459,7 +460,7 @@ class TwoPerformant
459
460
 
460
461
  request['uniq_products'] = uniq_products if (uniq_products)
461
462
 
462
- self.hook("/product_stores/#{product_store_id}/showitems.xml", "product-store-data", request)
463
+ self.hook("/product_stores/#{product_store_id}/showitems.json", "product-store-data", request)
463
464
  end
464
465
 
465
466
  # Show a Product from a Product Store
@@ -468,7 +469,7 @@ class TwoPerformant
468
469
  'product_id' => product_id
469
470
  }
470
471
 
471
- self.hook("/product_stores/#{product_store_id}/showitem.xml", "product-store-data", request)
472
+ self.hook("/product_stores/#{product_store_id}/showitem.json", "product-store-data", request)
472
473
  end
473
474
 
474
475
 
@@ -487,7 +488,7 @@ class TwoPerformant
487
488
 
488
489
  product_store_id = 'all' if !product_store_id
489
490
 
490
- self.hook("/product_stores/#{product_store_id}/searchpr.xml", "product-store-data", request, 'GET')
491
+ self.hook("/product_stores/#{product_store_id}/searchpr.json", "product-store-data", request, 'GET')
491
492
  end
492
493
 
493
494
  # Merchants: Update a Product Store
@@ -496,12 +497,12 @@ class TwoPerformant
496
497
  'product_store' => product_store
497
498
  }
498
499
 
499
- self.hook("/product_stores/#{product_store_id}.xml", "product-store", request, 'PUT')
500
+ self.hook("/product_stores/#{product_store_id}.json", "product-store", request, 'PUT')
500
501
  end
501
502
 
502
503
  # Merchants: Destroy a Product Store
503
504
  def product_store_destroy(product_store_id)
504
- self.hook("/product_stores/#{product_store_id}.xml", "product-store", nil, 'DELETE')
505
+ self.hook("/product_stores/#{product_store_id}.json", "product-store", nil, 'DELETE')
505
506
  end
506
507
 
507
508
  #
@@ -523,7 +524,7 @@ class TwoPerformant
523
524
  'product' => product
524
525
  }
525
526
 
526
- self.hook("/product_stores/#{product_store_id}/createitem.xml", "product-store-data", request, 'POST')
527
+ self.hook("/product_stores/#{product_store_id}/createitem.json", "product-store-data", request, 'POST')
527
528
  end
528
529
 
529
530
  # Merchants: Update a product
@@ -533,7 +534,7 @@ class TwoPerformant
533
534
  'product_id' => product_id
534
535
  }
535
536
 
536
- self.hook("/product_stores/#{product_store_id}/updateitem.xml", "product-store-data", request, 'PUT')
537
+ self.hook("/product_stores/#{product_store_id}/updateitem.json", "product-store-data", request, 'PUT')
537
538
  end
538
539
 
539
540
  # Merchants: Destroy a product
@@ -542,7 +543,7 @@ class TwoPerformant
542
543
  'pr_id' => product_id
543
544
  }
544
545
 
545
- self.hook("/product_stores/#{product_store_id}/destroyitem.xml", "product-store-data", request, 'DELETE')
546
+ self.hook("/product_stores/#{product_store_id}/destroyitem.json", "product-store-data", request, 'DELETE')
546
547
  end
547
548
 
548
549
  # =====================
@@ -551,12 +552,12 @@ class TwoPerformant
551
552
 
552
553
  # Affiliates: List Ad Groups
553
554
  def ad_groups_list
554
- self.hook("/ad_groups.xml", "ad_group", nil, "GET")
555
+ self.hook("/ad_groups.json", "ad_group", nil, "GET")
555
556
  end
556
557
 
557
558
  # Affiliates: Display information about an Ad Group
558
559
  def ad_group_show(ad_group_id)
559
- self.hook("/ad_groups/#{ad_group_id}.xml", "ad_group", nil, "GET")
560
+ self.hook("/ad_groups/#{ad_group_id}.json", "ad_group", nil, "GET")
560
561
  end
561
562
 
562
563
  # Affiliates: Add item to an Ad Group / Crate new Ad Group
@@ -568,12 +569,12 @@ class TwoPerformant
568
569
  'tool_id' => tool_id
569
570
  }
570
571
 
571
- self.hook("/ad_groups/createitem.xml", "ad_group", request, 'POST')
572
+ self.hook("/ad_groups/createitem.json", "ad_group", request, 'POST')
572
573
  end
573
574
 
574
575
  # Affiliates: Destroy an Ad Group
575
576
  def ad_group_destroy(ad_group_id)
576
- self.hook("/ad_groups/#{ad_group_id}.xml", "ad_group", nil, "DELETE")
577
+ self.hook("/ad_groups/#{ad_group_id}.json", "ad_group", nil, "DELETE")
577
578
  end
578
579
 
579
580
  # Affiliates: Delete an Tool from a Group. tooltype is one of 'txtlink', 'txtad' or 'banner'.
@@ -583,7 +584,7 @@ class TwoPerformant
583
584
  'tool_id' => tool_id
584
585
  }
585
586
 
586
- self.hook("/ad_groups/#{ad_group_id}/destroyitem.xml", "ad_group", request, "DELETE")
587
+ self.hook("/ad_groups/#{ad_group_id}/destroyitem.json", "ad_group", request, "DELETE")
587
588
  end
588
589
 
589
590
  #=================
@@ -592,7 +593,7 @@ class TwoPerformant
592
593
 
593
594
  # Affiliates: List Feeds
594
595
  def feeds_list()
595
- self.hook("/feeds.xml", "feed", nil, "GET")
596
+ self.hook("/feeds.json", "feed", nil, "GET")
596
597
  end
597
598
 
598
599
  # Affiliates: Create a Feed
@@ -601,7 +602,7 @@ class TwoPerformant
601
602
  'feed' => feed
602
603
  }
603
604
 
604
- self.hook("/feeds.xml", "feed", request, 'POST')
605
+ self.hook("/feeds.json", "feed", request, 'POST')
605
606
  end
606
607
 
607
608
  # Affiliates: Update a Feed
@@ -610,13 +611,13 @@ class TwoPerformant
610
611
  'feed' => feed
611
612
  }
612
613
 
613
- self.hook("/feeds/#{feed_id}.xml", "feed", request, 'PUT')
614
+ self.hook("/feeds/#{feed_id}.json", "feed", request, 'PUT')
614
615
  end
615
616
 
616
617
 
617
618
  # Affiliates: Destroy a Feed
618
619
  def feed_destroy(feed_id)
619
- self.hook("/feeds/#{feed_id}.xml", "feed", nil, "DELETE")
620
+ self.hook("/feeds/#{feed_id}.json", "feed", nil, "DELETE")
620
621
  end
621
622
 
622
623
  # ==========
@@ -630,7 +631,7 @@ class TwoPerformant
630
631
  'perpage' => perpage
631
632
  }
632
633
 
633
- self.hook("/messages.xml", "message", nil, "GET")
634
+ self.hook("/messages.json", "message", nil, "GET")
634
635
  end
635
636
 
636
637
  # List sent messages. Displays the first 6 entries by default.
@@ -640,17 +641,17 @@ class TwoPerformant
640
641
  'perpage' => perpage
641
642
  }
642
643
 
643
- self.hook("/messages/sent.xml", "message", nil, "GET")
644
+ self.hook("/messages/sent.json", "message", nil, "GET")
644
645
  end
645
646
 
646
647
  # Display information about a message
647
648
  def message_show(message_id)
648
- self.hook("/messages/#{message_id}.xml", "message")
649
+ self.hook("/messages/#{message_id}.json", "message")
649
650
  end
650
651
 
651
652
  # Destroy a message
652
653
  def message_destroy(message_id)
653
- self.hook("/messages/#{message_id}.xml", "message", nil, 'DELETE')
654
+ self.hook("/messages/#{message_id}.json", "message", nil, 'DELETE')
654
655
  end
655
656
 
656
657
 
@@ -660,31 +661,31 @@ class TwoPerformant
660
661
 
661
662
  # List Hooks
662
663
  def hooks_list(oauth_token_key = 'current')
663
- hook("/oauth_clients/#{oauth_token_key}/hooks.xml", "hook", nil, 'GET')
664
+ self.hook("/oauth_clients/#{oauth_token_key}/hooks.json", "client_application_hook", nil, 'GET')
664
665
  end
665
666
 
666
667
 
667
668
  # Create a Hook
668
- def hook_create(hook, oauth_token_key = 'current')
669
+ def hook_create(name, opts, oauth_token_key = 'current')
669
670
  request = {
670
- 'hook' => hook
671
+ 'name' => name,
672
+ 'opts' => opts,
671
673
  }
672
674
 
673
- hook("/oauth_clients/#{oauth_token_key}/hooks.xml", "hook", request, 'POST')
675
+ self.hook("/oauth_clients/#{oauth_token_key}/hooks.json", "client_application_hook", request, 'POST')
674
676
  end
675
677
 
676
678
  # Destroy a Hook
677
679
  def hook_destroy(hook_id, oauth_token_key = 'current')
678
- hook("/oauth_clients/#{oauth_token_key}/hooks/#{hook_id}.xml", "hook", nil, 'DELETE')
680
+ self.hook("/oauth_clients/#{oauth_token_key}/hooks/#{hook_id}.json", "client_application_hook", nil, 'DELETE')
679
681
  end
680
682
 
681
- def hook(path, expected, send = nil, method = 'GET') #:nodoc:
682
- params = normalize_params(send, method)
683
-
683
+ def hook(path, expected, send = nil, method = 'GET') #:nodoc:
684
684
  if self.oauth
685
- result = self.oauth.send(method.downcase, "/#{version}#{path}", send, params)
685
+ result = self.oauth.send(method.downcase, "/#{version}#{path}", send)
686
686
  else
687
- result = self.class.send(method.downcase, "/#{version}#{path}", :body => params)
687
+ result = self.class.send(method.downcase, "/#{version}#{path}", :body => send)
688
+ result = result.parsed_response
688
689
  end
689
690
 
690
691
  # scrap the container
@@ -695,21 +696,4 @@ class TwoPerformant
695
696
  end
696
697
  end
697
698
 
698
- def normalize_params(params, method)
699
- hash_to_xml(:request => params).to_s
700
- end
701
-
702
- def hash_to_xml(var, document = nil)
703
- document = REXML::Document.new if document.nil?
704
-
705
- if var.respond_to? :keys
706
- var.keys.each do |key|
707
- hash_to_xml(var[key], document.add_element(key.to_s))
708
- end
709
- else
710
- document.add_text(var.to_s)
711
- end
712
-
713
- document
714
- end
715
699
  end
@@ -1,4 +1,14 @@
1
1
  require 'oauth'
2
+ require "addressable/uri"
3
+
4
+ class Hash
5
+ def to_params
6
+ uri = Addressable::URI.new
7
+ uri.query_values = self
8
+ uri.query
9
+ end
10
+ end
11
+
2
12
 
3
13
  class TwoPerformant
4
14
  class OAuth
@@ -7,28 +17,28 @@ class TwoPerformant
7
17
  def initialize(options, host)
8
18
  consumer = ::OAuth::Consumer.new(options[:consumer_token], options[:consumer_secret], {:site => host})
9
19
  @access_token = ::OAuth::AccessToken.new(consumer, options[:access_token], options[:access_secret])
10
- @headers = { 'Accept' => 'application/xml', 'Content-Type' => 'application/xml' }
20
+ @headers = { 'Accept' => 'application/json', 'Content-Type' => 'application/x-www-form-urlencoded' }
11
21
  end
12
22
 
13
- def get(path, params_hash, params_xml)
23
+ def get(path, params_hash)
14
24
  params_hash ||= {}
15
25
  response = access_token.get("#{path}?#{params_hash.to_params}")
16
- Crack::XML.parse(response.body)
26
+ JSON.parse(response.body)
17
27
  end
18
28
 
19
- def post(path, params_hash, params_xml)
20
- response = access_token.post(path, params_xml, @headers)
21
- Crack::XML.parse(response.body)
29
+ def post(path, params_hash)
30
+ response = access_token.post(path, params_hash.to_json, @headers)
31
+ JSON.parse(response.body)
22
32
  end
23
33
 
24
- def put(path, params_hash, params_xml)
25
- response = access_token.put(path, params_xml, @headers)
26
- Crack::XML.parse(response.body)
34
+ def put(path, params_hash)
35
+ response = access_token.put(path, params_hash.to_json, @headers)
36
+ JSON.parse(response.body)
27
37
  end
28
38
 
29
39
  def delete(path, params)
30
40
  response = access_token.delete("#{path}?#{params.to_params}")
31
- Crack::XML.parse(response.body)
41
+ JSON.parse(response.body)
32
42
  end
33
43
  end
34
44
  end
metadata CHANGED
@@ -1,77 +1,73 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: 2Performant
3
- version: !ruby/object:Gem::Version
4
- hash: 15
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 0
9
- - 8
10
- version: 0.0.8
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - 2Performant
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2010-07-26 00:00:00 +03:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-09-20 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: httparty
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
33
22
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: oauth
37
23
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
39
25
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: oauth
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
47
38
  type: :runtime
48
- version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: shoulda
51
39
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
53
41
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 3
58
- segments:
59
- - 0
60
- version: "0"
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: shoulda
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
61
54
  type: :development
62
- version_requirements: *id003
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
63
62
  description: Library for the 2Performant API
64
- email: andrei@2performant.com
63
+ email: radu@2performant.com
65
64
  executables: []
66
-
67
65
  extensions: []
68
-
69
- extra_rdoc_files:
66
+ extra_rdoc_files:
70
67
  - LICENSE
71
68
  - README.md
72
- files:
69
+ files:
73
70
  - .document
74
- - .gitignore
75
71
  - 2Performant.gemspec
76
72
  - LICENSE
77
73
  - README.md
@@ -81,40 +77,28 @@ files:
81
77
  - lib/two_performant/oauth.rb
82
78
  - test/helper.rb
83
79
  - test/test_2performant.rb
84
- has_rdoc: true
85
80
  homepage: http://github.com/2performant/2Performant
86
81
  licenses: []
87
-
88
82
  post_install_message:
89
- rdoc_options:
90
- - --charset=UTF-8
91
- require_paths:
83
+ rdoc_options: []
84
+ require_paths:
92
85
  - lib
93
- required_ruby_version: !ruby/object:Gem::Requirement
86
+ required_ruby_version: !ruby/object:Gem::Requirement
94
87
  none: false
95
- requirements:
96
- - - ">="
97
- - !ruby/object:Gem::Version
98
- hash: 3
99
- segments:
100
- - 0
101
- version: "0"
102
- required_rubygems_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ! '>='
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ required_rubygems_version: !ruby/object:Gem::Requirement
103
93
  none: false
104
- requirements:
105
- - - ">="
106
- - !ruby/object:Gem::Version
107
- hash: 3
108
- segments:
109
- - 0
110
- version: "0"
94
+ requirements:
95
+ - - ! '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
111
98
  requirements: []
112
-
113
99
  rubyforge_project:
114
- rubygems_version: 1.3.7
100
+ rubygems_version: 1.8.24
115
101
  signing_key:
116
102
  specification_version: 3
117
103
  summary: Library for the 2Performant API
118
- test_files:
119
- - test/helper.rb
120
- - test/test_2performant.rb
104
+ test_files: []
data/.gitignore DELETED
@@ -1,22 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
22
- lib/test.rb