nfg-client 1.0.2 → 1.0.3

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.
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: