akamai_api 0.0.7 → 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.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/Guardfile +24 -0
  3. data/README.md +3 -0
  4. data/akamai_api.gemspec +4 -3
  5. data/lib/akamai_api/ccu.rb +60 -52
  6. data/lib/akamai_api/cp_code.rb +12 -7
  7. data/lib/akamai_api/eccu_request.rb +70 -62
  8. data/lib/akamai_api/soap_body.rb +15 -27
  9. data/lib/akamai_api/version.rb +1 -1
  10. data/lib/akamai_api.rb +1 -1
  11. data/spec/fixtures/{purge_request/success.xml → ccu/successful_purge.xml} +0 -0
  12. data/spec/fixtures/{get_cp_codes/sample.xml → cp_code/collection.xml} +0 -0
  13. data/spec/fixtures/{get_cp_codes/sample_one_item.xml → cp_code/single.xml} +0 -0
  14. data/spec/fixtures/{delete/success.xml → eccu/delete/successful.xml} +0 -0
  15. data/spec/fixtures/{get_ids/success.xml → eccu/get_ids/successful.xml} +0 -0
  16. data/spec/fixtures/{get_info/success.xml → eccu/get_info/successful.xml} +0 -0
  17. data/spec/fixtures/{set_notes/success.xml → eccu/set_notes/successful.xml} +0 -0
  18. data/spec/fixtures/eccu/set_status_change_email/fault.xml +8 -0
  19. data/spec/fixtures/{set_status_change_email/success.xml → eccu/set_status_change_email/successful.xml} +0 -0
  20. data/spec/fixtures/{upload → eccu/upload}/fault.xml +0 -0
  21. data/spec/fixtures/{upload/success.xml → eccu/upload/successful.xml} +0 -0
  22. data/spec/lib/akamai_api/ccu_spec.rb +24 -74
  23. data/spec/lib/akamai_api/cp_code_spec.rb +30 -26
  24. data/spec/lib/akamai_api/eccu_request_spec.rb +84 -46
  25. data/spec/lib/akamai_api/soap_body_spec.rb +10 -13
  26. data/spec/spec_helper.rb +7 -3
  27. data/spec/support/savon_backports.rb +10 -0
  28. data/wsdls/cpcode.wsdl +2765 -0
  29. data/wsdls/eccu.wsdl +584 -0
  30. metadata +36 -31
  31. data/spec/support/savon_tester.rb +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6db87fa3be02df005df62f70c5b518244defda40
4
- data.tar.gz: 718930e9c32466a64ca039667aff84024537ded4
3
+ metadata.gz: 05749989fb5d5d5044e107dcb316294da2527c5d
4
+ data.tar.gz: 8f92d043cacc95919066b09dcf8c04f04c7b3983
5
5
  SHA512:
6
- metadata.gz: 912099d1f5670f672d2d70303a80992a44079d4a942d2bcaacb87c028ae68adf26e9061f4f22cf1e3f2f652c42eca557fb0013aebc7bb775450daff6e8fa322c
7
- data.tar.gz: 40c41f89eb6d8d90f6fe692da75e870cab47fa8b63b92fad1b620113310fe09b3dd9cc21ac8e972bca18681121f80dcdc45b2da6a1f4d6d2061a97de59912149
6
+ metadata.gz: 288616d2301a49c4b7a0aa2c2efc3c3d3169403d1d86df57486ea3f2d39741bc11ec854a4ec653e1bb0a61f0b69083e566b5dcc88da8dc049b03cec7ada6f971
7
+ data.tar.gz: 1255972a4a6a76673fa630736783c4ba5f1d5706afe61c3f7e087ca9cdccf158e7944c194049a470bafeec34e76799c8197d61ddb8a1f289d3edefa948d9c41f
data/Guardfile ADDED
@@ -0,0 +1,24 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard :rspec do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+
9
+ # Rails example
10
+ watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
11
+ watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
12
+ watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
13
+ watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
14
+ watch('config/routes.rb') { "spec/routing" }
15
+ watch('app/controllers/application_controller.rb') { "spec/controllers" }
16
+
17
+ # Capybara features specs
18
+ watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
19
+
20
+ # Turnip features and steps
21
+ watch(%r{^spec/acceptance/(.+)\.feature$})
22
+ watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
23
+ end
24
+
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  AkamaiApi is a ruby library and command line utility to interact with Akamai CCU (Content Control Utility) and ECCU (Enhanced Content Control Utility) services.
4
4
 
5
+ __Note__: If you need ruby 1.8 compatibility or if you have any problem with the current release, try to use the [savon1](https://github.com/nicolaracco/akamai_api/tree/savon1) branch (or [version 0.0.7](https://github.com/nicolaracco/akamai_api/tree/v0.0.7))... and open a pull request, of course :-)
6
+
5
7
  # Using the CLI
6
8
 
7
9
  After gem installation you will have a CLI utility to execute operations on Akamai. Each method requires authentication. You can provide auth info using one of the following methods:
@@ -14,6 +16,7 @@ After gem installation you will have a CLI utility to execute operations on Akam
14
16
  auth:
15
17
  - user
16
18
  - pass
19
+ log: true # optional for enabling logging. false by default
17
20
  ```
18
21
 
19
22
  ## Tasks
data/akamai_api.gemspec CHANGED
@@ -16,12 +16,13 @@ Gem::Specification.new do |gem|
16
16
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
+ gem.required_ruby_version = Gem::Requirement.new(">= 1.9.2")
19
20
 
20
- gem.add_dependency 'activesupport', '>= 2.3.9', '< 4.0'
21
+ gem.add_dependency 'activesupport', '>= 2.3.9', '< 4.0'
21
22
  gem.add_dependency 'thor', '>= 0.14.0', '< 2.0'
22
- gem.add_dependency 'savon', '~> 1.2.0'
23
+ gem.add_dependency 'savon', '~> 2.2.0'
23
24
  gem.add_dependency 'builder', '~> 3.0'
24
25
 
25
26
  gem.add_development_dependency 'rspec', '~> 2.11'
26
- gem.add_development_dependency 'savon_spec', '~> 1.3'
27
+ gem.add_development_dependency 'guard-rspec', '~> 3.0.2'
27
28
  end
@@ -1,75 +1,83 @@
1
1
  require 'active_support/core_ext'
2
2
 
3
3
  module AkamaiApi
4
- class Ccu
5
- extend Savon::Model
4
+ module Ccu
5
+ extend self
6
6
 
7
- document File.expand_path('../../../wsdls/ccuapi.wsdl', __FILE__)
7
+ class UnrecognizedOption < StandardError; end
8
8
 
9
- class << self
10
- [:invalidate, :remove].each do |action|
11
- send :define_method, action do |*params|
12
- raise ArgumentError, "wrong number of arguments (#{params.length} for 2..3)" if params.length < 2
13
- type, items, opts = params
9
+ [:invalidate, :remove].each do |action|
10
+ send :define_method, action do |*params|
11
+ raise ArgumentError, "wrong number of arguments (#{params.length} for 2..3)" if params.length < 2
12
+ type, items, opts = params
13
+ purge action, type, items, (opts || {})
14
+ end
15
+ [:arl, :cpcode].each do |type|
16
+ method_name = "#{action}_#{type}".to_sym
17
+ send :define_method, method_name do |*params|
18
+ raise ArgumentError, "wrong number of arguments (#{params.length} for 1..2)" if params.length < 1
19
+ items, opts = params
14
20
  purge action, type, items, (opts || {})
15
21
  end
16
- [:arl, :cpcode].each do |type|
17
- method_name = "#{action}_#{type}".to_sym
18
- send :define_method, method_name do |*params|
19
- raise ArgumentError, "wrong number of arguments (#{params.length} for 1..2)" if params.length < 1
20
- items, opts = params
21
- purge action, type, items, (opts || {})
22
- end
23
- end
24
22
  end
23
+ end
25
24
 
26
- def purge action, type, items, args = {}
27
- validate_action action
28
- validate_type type
29
- options = ["action=#{action}", "type=#{type}"]
30
- add_domain args[:domain], options
31
- add_email args[:email], options
32
- response = client.request 'wsdl:purgeRequest' do
33
- SoapBody.new(soap) do
34
- string :name, AkamaiApi.config[:auth].first
35
- string :pwd, AkamaiApi.config[:auth].last
36
- string :network, ''
37
- array :opt, options
38
- array :uri, items
39
- end
40
- end
41
- CcuResponse.new response, items
25
+ def purge action, type, items, args = {}
26
+ validate_action action
27
+ validate_type type
28
+ options = ["action=#{action}", "type=#{type}"]
29
+ add_domain args[:domain], options
30
+ add_email args[:email], options
31
+ body = SoapBody.new do
32
+ string :name, AkamaiApi.config[:auth].first
33
+ string :pwd, AkamaiApi.config[:auth].last
34
+ string :network, ''
35
+ array :opt, options
36
+ array :uri, Array.wrap(items)
42
37
  end
38
+ response = client.call :purge_request, :message => body.to_s
39
+ CcuResponse.new response, items
40
+ end
43
41
 
44
- private
42
+ private
45
43
 
46
- def validate_action action
47
- unless %w[invalidate remove].include? action.to_s
48
- raise "Unknown type '#{action}' (only 'remove' and 'invalidate' are allowed)"
49
- end
44
+ def validate_action action
45
+ unless %w[invalidate remove].include? action.to_s
46
+ raise UnrecognizedOption, "Unknown type '#{action}' (only 'remove' and 'invalidate' are allowed)"
50
47
  end
48
+ end
51
49
 
52
- def validate_type type
53
- unless %w[cpcode arl].include? type.to_s
54
- raise "Unknown type '#{type}' (only 'cpcode' and 'arl' are allowed)"
55
- end
50
+ def validate_type type
51
+ unless %w[cpcode arl].include? type.to_s
52
+ raise UnrecognizedOption, "Unknown type '#{type}' (only 'cpcode' and 'arl' are allowed)"
56
53
  end
54
+ end
57
55
 
58
- def add_domain domain, options
59
- if domain.present?
60
- unless %w[production staging].include? domain.to_s
61
- raise "Unknown domain type '#{domain}' (only :production and :staging are allowed)"
62
- end
63
- options << "domain=#{domain}"
56
+ def add_domain domain, options
57
+ if domain.present?
58
+ unless %w[production staging].include? domain.to_s
59
+ raise "Unknown domain type '#{domain}' (only :production and :staging are allowed)"
64
60
  end
61
+ options << "domain=#{domain}"
65
62
  end
63
+ end
66
64
 
67
- def add_email email, options
68
- if email.present?
69
- emails = Array.wrap(email).join ','
70
- options << "email-notification=#{emails}"
71
- end
65
+ def add_email email, options
66
+ if email.present?
67
+ emails = Array.wrap(email).join ','
68
+ options << "email-notification=#{emails}"
72
69
  end
73
70
  end
71
+
72
+ def client
73
+ savon_args = {
74
+ :wsdl => File.expand_path('../../../wsdls/ccuapi.wsdl', __FILE__),
75
+ :namespaces => {
76
+ 'xmlns:soapenc' => 'http://schemas.xmlsoap.org/soap/encoding/'
77
+ },
78
+ :log => AkamaiApi.config[:log]
79
+ }
80
+ Savon.client savon_args
81
+ end
74
82
  end
75
83
  end
@@ -1,9 +1,5 @@
1
1
  module AkamaiApi
2
2
  class CpCode
3
- extend Savon::Model
4
-
5
- document 'https://control.akamai.com/nmrws/services/SiteAcceleratorReportService?wsdl'
6
-
7
3
  attr_accessor :code, :description, :service
8
4
 
9
5
  def initialize attributes
@@ -13,9 +9,7 @@ module AkamaiApi
13
9
  end
14
10
 
15
11
  def self.all
16
- basic_auth *AkamaiApi.config[:auth]
17
- response = client.request('getCPCodes').body[:multi_ref]
18
-
12
+ response = client.call(:get_cp_codes).body[:multi_ref]
19
13
  Array.wrap(response).map do |hash|
20
14
  new({
21
15
  :code => hash[:cpcode],
@@ -24,5 +18,16 @@ module AkamaiApi
24
18
  })
25
19
  end
26
20
  end
21
+
22
+ private
23
+
24
+ def self.client
25
+ savon_args = {
26
+ :wsdl => File.expand_path('../../../wsdls/cpcode.wsdl', __FILE__),
27
+ :basic_auth => AkamaiApi.config[:auth],
28
+ :log => AkamaiApi.config[:log]
29
+ }
30
+ Savon.client savon_args
31
+ end
27
32
  end
28
33
  end
@@ -1,9 +1,5 @@
1
1
  module AkamaiApi
2
2
  class EccuRequest
3
- extend Savon::Model
4
-
5
- document 'https://control.akamai.com/webservices/services/PublishECCU?wsdl'
6
-
7
3
  attr_accessor :file, :status, :code, :notes, :property, :email, :upload_date, :uploaded_by, :version_string
8
4
 
9
5
  def initialize attributes = {}
@@ -14,42 +10,39 @@ module AkamaiApi
14
10
 
15
11
  def update_notes! notes
16
12
  code = self.code.to_i
17
- resp = client.request 'setNotes' do
18
- SoapBody.new(soap) do
19
- integer :fileId, code
20
- string :notes, notes
21
- end
13
+ body = SoapBody.new do
14
+ integer :fileId, code
15
+ string :notes, notes
22
16
  end
17
+ resp = client.call :set_notes, :message => body.to_s
23
18
  self.notes = notes
24
19
  resp.body[:set_notes_response][:success]
25
20
  end
26
21
 
27
22
  def update_email! email
28
23
  code = self.code.to_i
29
- resp = client.request 'setStatusChangeEmail' do
30
- SoapBody.new(soap) do
31
- integer :fileId, code
32
- string :statusChangeEmail, email
33
- end
24
+ body = SoapBody.new do
25
+ integer :fileId, code
26
+ string :statusChangeEmail, email
34
27
  end
35
- self.email = email
36
- resp.body[:set_status_change_email_response][:success]
28
+ response = client.call :set_status_change_email, :message => body.to_s
29
+ successful = response.body[:set_status_change_email_response][:success]
30
+ self.email = email if successful
31
+ successful
37
32
  end
38
33
 
39
34
  def destroy
40
35
  code = self.code.to_i
41
- resp = client.request 'delete' do |soap|
42
- SoapBody.new(soap) do
43
- integer :fileId, code
44
- end
36
+ body = SoapBody.new do
37
+ integer :fileId, code
45
38
  end
46
- resp.body[:delete_response][:success]
39
+ response = client.call :delete, :message => body.to_s
40
+ response.body[:delete_response][:success]
47
41
  end
48
42
 
49
43
  class << self
50
44
  def all_ids
51
- basic_auth *AkamaiApi.config[:auth]
52
- client.request('getIds').body[:get_ids_response][:file_ids][:file_ids]
45
+ client.call(:get_ids).body[:get_ids_response][:file_ids][:file_ids]
53
46
  end
54
47
 
55
48
  def all args = {}
@@ -65,38 +58,36 @@ module AkamaiApi
65
58
  end
66
59
 
67
60
  def find code, args = {}
68
- basic_auth *AkamaiApi.config[:auth]
69
- resp = client.request 'getInfo' do
70
- SoapBody.new(soap) do
71
- integer :fileId, code.to_i
72
- boolean :retrieveContents, args[:verbose] == true
73
- end
61
+ body = SoapBody.new do
62
+ integer :fileId, code.to_i
63
+ boolean :retrieveContents, args[:verbose] == true
74
64
  end
75
- resp = resp[:get_info_response][:eccu_info]
65
+ response = client.call(:get_info, :message => body.to_s)
66
+ response_body = response.body[:get_info_response][:eccu_info]
76
67
  EccuRequest.new({
77
68
  :file => {
78
- :content => Base64.decode64(get_if_kind(resp[:contents], String) || ''),
79
- :file_size => resp[:file_size].to_i,
80
- :file_name => get_if_kind(resp[:filename], String),
81
- :md5_digest => get_if_kind(resp[:md5_digest], String)
69
+ :content => Base64.decode64(get_if_kind(response_body[:contents], String) || ''),
70
+ :file_size => response_body[:file_size].to_i,
71
+ :file_name => get_if_kind(response_body[:filename], String),
72
+ :md5_digest => get_if_kind(response_body[:md5_digest], String)
82
73
  },
83
74
  :status => {
84
- :extended => get_if_kind(resp[:extended_status_message], String),
85
- :code => resp[:status_code].to_i,
86
- :message => get_if_kind(resp[:status_message], String),
87
- :update_date => get_if_kind(resp[:status_update_date], String)
75
+ :extended => get_if_kind(response_body[:extended_status_message], String),
76
+ :code => response_body[:status_code].to_i,
77
+ :message => get_if_kind(response_body[:status_message], String),
78
+ :update_date => get_if_kind(response_body[:status_update_date], String)
88
79
  },
89
- :code => resp[:file_id],
90
- :notes => get_if_kind(resp[:notes], String),
80
+ :code => response_body[:file_id],
81
+ :notes => get_if_kind(response_body[:notes], String),
91
82
  :property => {
92
- :name => get_if_kind(resp[:property_name], String),
93
- :exact_match => (resp[:property_name_exact_match] == true),
94
- :type => get_if_kind(resp[:property_type], String)
83
+ :name => get_if_kind(response_body[:property_name], String),
84
+ :exact_match => (response_body[:property_name_exact_match] == true),
85
+ :type => get_if_kind(response_body[:property_type], String)
95
86
  },
96
- :email => get_if_kind(resp[:status_change_email], String),
97
- :upload_date => get_if_kind(resp[:upload_date], String),
98
- :uploaded_by => get_if_kind(resp[:uploaded_by], String),
99
- :version_string => get_if_kind(resp[:version_string], String)
87
+ :email => get_if_kind(response_body[:status_change_email], String),
88
+ :upload_date => get_if_kind(response_body[:upload_date], String),
89
+ :uploaded_by => get_if_kind(response_body[:uploaded_by], String),
90
+ :version_string => get_if_kind(response_body[:version_string], String)
100
91
  })
101
92
  end
102
93
 
@@ -106,32 +97,49 @@ module AkamaiApi
106
97
  end
107
98
 
108
99
  def publish property, content, args = {}
109
- basic_auth *AkamaiApi.config[:auth]
110
- resp = client.request 'upload' do
111
- SoapBody.new(soap) do
112
- string :filename, args[:file_name] || ''
113
- text :contents, content
114
- string :notes, args[:notes] || 'ECCU Request using AkamaiApi gem'
115
- string :versionString, args[:version] || ''
116
- if args[:emails]
117
- string :statusChangeEmail, Array.wrap(args[:emails]).join(' ')
118
- end
119
- string :propertyName, property
120
- string :propertyType, args[:property_type] || 'hostheader'
121
- boolean :propertyNameExactMatch, args[:property_exact_match].nil? && true || args[:property_exact_match]
122
- end
123
- end
100
+ body = build_publish_soap_body property, content, args
101
+ resp = client.call :upload, :message_tag => 'upload', :message => body.to_s
124
102
  resp.body[:upload_response][:file_id].to_i
125
103
  end
126
104
 
127
105
  private
128
106
 
107
+ def build_publish_soap_body property, content, args
108
+ SoapBody.new do
109
+ string :filename, args[:file_name] || ''
110
+ text :contents, content
111
+ string :notes, args[:notes] || 'ECCU Request using AkamaiApi gem'
112
+ string :versionString, args[:version] || ''
113
+ if args[:emails]
114
+ string :statusChangeEmail, Array.wrap(args[:emails]).join(' ')
115
+ end
116
+ string :propertyName, property
117
+ string :propertyType, args[:property_type] || 'hostheader'
118
+ boolean :propertyNameExactMatch, args[:property_exact_match].nil? && true || args[:property_exact_match]
119
+ end
120
+ end
121
+
129
122
  # This method is used because, for nil values, savon will respond with an hash containing all other attributes.
130
123
  # If we check that the expected type is matched, we can
131
124
  # prevent to retrieve wrong values
132
125
  def get_if_kind value, kind
133
126
  value.kind_of?(kind) && value || nil
134
127
  end
128
+
129
+ def client
130
+ savon_args = {
131
+ :wsdl => File.expand_path('../../../wsdls/eccu.wsdl', __FILE__),
132
+ :basic_auth => AkamaiApi.config[:auth],
133
+ :log => AkamaiApi.config[:log]
134
+ }
135
+ Savon.client savon_args
136
+ end
137
+ end
138
+
139
+ private
140
+
141
+ def client
142
+ self.class.send(:client)
135
143
  end
136
144
  end
137
145
  end
@@ -1,52 +1,40 @@
1
1
  module AkamaiApi
2
2
  class SoapBody
3
- attr_accessor :soap
3
+ attr_reader :builder
4
4
 
5
- def initialize soap, &block
6
- self.soap = soap
7
- self.soap.namespaces['xmlns:soapenc'] = 'http://schemas.xmlsoap.org/soap/encoding/'
5
+ def initialize &block
6
+ @builder = Builder::XmlMarkup.new
8
7
  instance_eval &block if block
9
8
  end
10
9
 
11
- def body
12
- soap.body ||= {}
13
- end
14
-
15
- def body_attributes
16
- body[:attributes!] ||= {}
17
- end
18
-
19
10
  def text name, value
20
- name = name.to_sym
21
- body[name] = Base64.encode64 value
22
- body_attributes[name] = { 'xsi:type' => 'xsd:base64Binary' }
11
+ builder.tag! name, Base64.encode64(value), 'xsi:type' => 'xsd:base64Binary'
23
12
  end
24
13
 
25
14
  def boolean name, value
26
- name = name.to_sym
27
- body[name] = value
28
- body_attributes[name] = { 'xsi:type' => 'xsd:boolean' }
15
+ builder.tag! name, value, 'xsi:type' => 'xsd:boolean'
29
16
  end
30
17
 
31
18
  def integer name, value
32
- name = name.to_sym
33
- body[name] = value
34
- body_attributes[name] = { 'xsi:type' => 'xsd:int' }
19
+ builder.tag! name, value, 'xsi:type' => 'xsd:int'
35
20
  end
36
21
 
37
22
  def string name, value
38
- name = name.to_sym
39
- body[name] = value
40
- body_attributes[name] = { 'xsi:type' => 'xsd:string' }
23
+ builder.tag! name, value, 'xsi:type' => 'xsd:string'
41
24
  end
42
25
 
43
26
  def array name, values
44
- name = name.to_sym
45
- body[name] = { 'item' => values }
46
- body_attributes[name] = {
27
+ array_attrs = {
47
28
  'soapenc:arrayType' => "xsd:string[#{values.length}]",
48
29
  'xsi:type' => 'wsdl:ArrayOfString'
49
30
  }
31
+ builder.tag! name, array_attrs do |tag|
32
+ values.each { |value| tag.item value }
33
+ end
34
+ end
35
+
36
+ def to_s
37
+ builder.target!
50
38
  end
51
39
  end
52
40
  end
@@ -1,3 +1,3 @@
1
1
  module AkamaiApi
2
- VERSION = "0.0.7"
2
+ VERSION = "0.1.0"
3
3
  end
data/lib/akamai_api.rb CHANGED
@@ -5,5 +5,5 @@ require 'savon'
5
5
  end
6
6
 
7
7
  module AkamaiApi
8
- def self.config; @config ||= { :auth => ['', ''] }; end
8
+ def self.config; @config ||= { :auth => ['', ''], :log => false }; end
9
9
  end
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
3
+ <soapenv:Body>
4
+ <setStatusChangeEmailResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
5
+ <success xsi:type="xsd:boolean">false</success>
6
+ </setStatusChangeEmailResponse>
7
+ </soapenv:Body>
8
+ </soapenv:Envelope>
File without changes