dfa_client 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/dfa_client.rb +41 -0
  2. metadata +62 -0
@@ -0,0 +1,41 @@
1
+ # A Savon Client for DFA
2
+ class DFAClient
3
+ require 'savon'
4
+ require 'net/http'
5
+
6
+ def initialize(version = 'v1.19')
7
+ @namespace = "http://www.doubleclick.net/dfa-api/#{version}"
8
+ @baseurl = "https://advertisersapi.doubleclick.com/#{version}/api/dfa-api/"
9
+ @token = nil
10
+ @last_response = nil
11
+ end
12
+
13
+ # Authenticate with the DFA soap service.
14
+ def authenticate(username = nil, password = nil)
15
+ @username = username
16
+ @password = password
17
+ response = self.request('login', :authenticate, {username: @username, password: @password})
18
+ @token = response[:token]
19
+ end
20
+
21
+ #Do we have a token?
22
+ def connected?
23
+ @token
24
+ end
25
+
26
+ # Make a request to the DFA API.
27
+ def request(endpoint = '', method='', params = {}, raw = false)
28
+ client = Savon.client(wsdl: "#{@baseurl}#{endpoint}?wsdl") do |locals|
29
+ locals.wsse_auth(@username, @token) if @token
30
+ end
31
+ @last_response = client.call(method, message: params)
32
+
33
+ # Return data or handle exceptions.
34
+ @last_response.success? ? (raw ? @last_response : @last_response.to_hash[:multi_ref]) : error(@last_response)
35
+ end
36
+
37
+ # Handle soap and http errors.
38
+ def error(response)
39
+ throw response.http_error? ? response.http_error : response.soap_fault
40
+ end
41
+ end
metadata ADDED
@@ -0,0 +1,62 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dfa_client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - RJ Pittman
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-02-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: savon
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '2'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '2'
30
+ description: A client for Google's DoubleClick for Advertisers (DFA) API - a wrapper
31
+ for savon v2
32
+ email: rypitme@gmail.com
33
+ executables: []
34
+ extensions: []
35
+ extra_rdoc_files: []
36
+ files:
37
+ - lib/dfa_client.rb
38
+ homepage: http://rubygems.org/gems/dfa_client
39
+ licenses: []
40
+ post_install_message:
41
+ rdoc_options: []
42
+ require_paths:
43
+ - lib
44
+ required_ruby_version: !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ requirements: []
57
+ rubyforge_project:
58
+ rubygems_version: 1.8.24
59
+ signing_key:
60
+ specification_version: 3
61
+ summary: A client for Google's DoubleClick for Advertisers (DFA) API
62
+ test_files: []