nfg-client 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- OGRmZDY3ZDM3OTM0ODdkM2RjNmY2NDhkOTNkZTgzMThkNTI1MjJhMQ==
5
- data.tar.gz: !binary |-
6
- YWVlNjNkZWUxNzNiN2E2ZmNhMTMxNDRiMDFiMWRmYzI5NDY1MWUwOQ==
2
+ SHA1:
3
+ metadata.gz: 5a7c8e37dc56b5de8b54200c7d918339a1ce1f08
4
+ data.tar.gz: 29c4314bc8ab18a48f2c2cec814b13fbdca7ce6d
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ZjFhYjcwN2E0NDkyYjU5NGY4MTM4YWQzYzk0YzIwYjg2YjlmYTlmNDk0ZTY4
10
- NGJkOTQ5N2VjMjlmNDJhMWI3YjM3ZmQ3ZDVjODE5ODUzZTUyM2U2YTY2NjRl
11
- ZTkxMjFlNzhhZTFjNjFhYjI0OWUzZDBmOTE1NjJkYjM1ZDBmNjU=
12
- data.tar.gz: !binary |-
13
- Y2M3ZGIzMjk2ZjE0YmZkNTBkNWIyYzZhMjc4OTk4MDUyZmE4MjI3ODU3ZTRm
14
- NzY0MTc5NTRkYWZhZmFkODU2NzExMTM5ZmRlMTNjYjBmNTdlZWY3YWVjYjQ2
15
- ODc2YjgzZWM5YzVmNmIyZWFmNTNkYmMyZTAxN2U5ZTkxYTE0NDc=
6
+ metadata.gz: d0bbbec1c0d14c051319fa35da773b02f14ebe96e639cf7feb799dca011e9817490ed7ea56e31fb6a05ae5d18ab214e87e2ac2c6e442519d3afde93b7e5239f2
7
+ data.tar.gz: 54104188e5a9adec36e386f05dead00ac00d8cae7b55824149fcddd8fe0981949be83f1f1c527d7a4b15505e4236e3a0db657818c7ba0d3697f2c57ce960ec63
@@ -1,5 +1,7 @@
1
1
  require 'net/http'
2
2
  require 'rexml/document'
3
+ require 'cgi'
4
+ require 'logger'
3
5
 
4
6
  module NFGClient
5
7
  module Utils
@@ -22,6 +24,7 @@ module NFGClient
22
24
  # nfg_method: (String)
23
25
  # params: (Hash)
24
26
  def nfg_soap_request(nfg_method, params)
27
+ @logger = defined?(Rails) ? Rails.logger : ::Logger.new(STDOUT)
25
28
  if (nfg_method.is_a? String) && (params.is_a? Hash)
26
29
 
27
30
  # Build SOAP 1.2 request
@@ -29,11 +32,17 @@ module NFGClient
29
32
 
30
33
  headers = format_headers(nfg_method, soap_request)
31
34
 
35
+ @logger.info headers
36
+ @logger.info soap_request
32
37
  # Being HTTP Post
33
38
  begin
34
39
  response = ssl_post(soap_request, headers)
40
+ @logger.info " nfg_soap_request succeeded: #{ response.body.inspect }"
35
41
  return_value = parse_result(response.code, response.body, response.message, nfg_method)
36
42
  rescue StandardError => e
43
+ @logger.error " nfg_soap_request failed: #{ e.message }"
44
+ @logger.error e.backtrace.join(' ')
45
+
37
46
  return_value = Hash.new
38
47
  return_value['StatusCode'] = 'UnexpectedError'
39
48
  return_value['Message'] = e
@@ -127,13 +136,22 @@ module NFGClient
127
136
  # hash: (Hash)
128
137
  def hash_to_xml(hash)
129
138
  hash.map do |k, v|
130
- text = (v.is_a? Hash) ? hash_to_xml(v) : v
139
+ text = (v.is_a? Hash) ? hash_to_xml(v) : encode_if_text(v)
131
140
  # It removes the digits at the end of each "DonationItem" hash key
132
141
  xml_elem = (v.is_a? Hash) ? k.to_s.gsub(/(\d)/, "") : k
133
142
  "<%s>%s</%s>" % [xml_elem, text, xml_elem]
134
143
  end.join
135
144
  end
136
145
 
146
+ # HTML Encodes the string if it is text, otherwise, leaves it as is
147
+ def encode_if_text(item)
148
+ if item.respond_to?(:gsub)
149
+ CGI.escapeHTML(item)
150
+ else
151
+ item
152
+ end
153
+ end
154
+
137
155
  # Raises an exception if the required params are not part of the given hash
138
156
  #
139
157
  # Arguments:
@@ -1,3 +1,3 @@
1
1
  module NFGClient
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
@@ -23,4 +23,5 @@ Gem::Specification.new do |gem|
23
23
  gem.add_development_dependency 'rspec', '~> 2.13.0'
24
24
  gem.add_development_dependency 'simplecov'
25
25
  gem.add_development_dependency 'mocha'
26
+ gem.add_development_dependency 'rake'
26
27
  end
@@ -7,7 +7,7 @@ describe NFGClient::Client do
7
7
 
8
8
  describe "#make_cof_donation" do
9
9
  context "with a successful response" do
10
- it "should return a hash with a new COFId" do
10
+ it "should return a hash with the COFId" do
11
11
  nfg_client.expects(:ssl_post).returns(nfg_response('200',successful_make_cof_donation_response))
12
12
  expect(subject['StatusCode']).to eq('Success')
13
13
  expect(subject['COFId']).to eq('1111111')
metadata CHANGED
@@ -1,69 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nfg-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Antonio Ruano Cuesta
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-08 00:00:00.000000000 Z
11
+ date: 2014-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: andand
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: 1.3.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.3.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: 2.13.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 2.13.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: simplecov
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: mocha
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  description: Client for the Network for Good SOAP API.
@@ -73,8 +87,8 @@ executables: []
73
87
  extensions: []
74
88
  extra_rdoc_files: []
75
89
  files:
76
- - .gitignore
77
- - .rspec
90
+ - ".gitignore"
91
+ - ".rspec"
78
92
  - Gemfile
79
93
  - LICENSE.md
80
94
  - README.md
@@ -114,12 +128,12 @@ require_paths:
114
128
  - lib
115
129
  required_ruby_version: !ruby/object:Gem::Requirement
116
130
  requirements:
117
- - - ! '>='
131
+ - - ">="
118
132
  - !ruby/object:Gem::Version
119
133
  version: '0'
120
134
  required_rubygems_version: !ruby/object:Gem::Requirement
121
135
  requirements:
122
- - - ! '>='
136
+ - - ">="
123
137
  - !ruby/object:Gem::Version
124
138
  version: '0'
125
139
  requirements: []
@@ -149,4 +163,3 @@ test_files:
149
163
  - spec/unit/response_stubs/make_cof_donation_stubs.rb
150
164
  - spec/unit/response_stubs/make_donation_add_cof_stubs.rb
151
165
  - spec/unit/response_stubs/spec_response_helpers.rb
152
- has_rdoc: