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 +5 -13
- data/lib/nfg-client/utils.rb +19 -1
- data/lib/nfg-client/version.rb +1 -1
- data/nfg-client.gemspec +1 -0
- data/spec/unit/make_cof_donation_spec.rb +1 -1
- metadata +28 -15
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YWVlNjNkZWUxNzNiN2E2ZmNhMTMxNDRiMDFiMWRmYzI5NDY1MWUwOQ==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5a7c8e37dc56b5de8b54200c7d918339a1ce1f08
|
4
|
+
data.tar.gz: 29c4314bc8ab18a48f2c2cec814b13fbdca7ce6d
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
NGJkOTQ5N2VjMjlmNDJhMWI3YjM3ZmQ3ZDVjODE5ODUzZTUyM2U2YTY2NjRl
|
11
|
-
ZTkxMjFlNzhhZTFjNjFhYjI0OWUzZDBmOTE1NjJkYjM1ZDBmNjU=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
Y2M3ZGIzMjk2ZjE0YmZkNTBkNWIyYzZhMjc4OTk4MDUyZmE4MjI3ODU3ZTRm
|
14
|
-
NzY0MTc5NTRkYWZhZmFkODU2NzExMTM5ZmRlMTNjYjBmNTdlZWY3YWVjYjQ2
|
15
|
-
ODc2YjgzZWM5YzVmNmIyZWFmNTNkYmMyZTAxN2U5ZTkxYTE0NDc=
|
6
|
+
metadata.gz: d0bbbec1c0d14c051319fa35da773b02f14ebe96e639cf7feb799dca011e9817490ed7ea56e31fb6a05ae5d18ab214e87e2ac2c6e442519d3afde93b7e5239f2
|
7
|
+
data.tar.gz: 54104188e5a9adec36e386f05dead00ac00d8cae7b55824149fcddd8fe0981949be83f1f1c527d7a4b15505e4236e3a0db657818c7ba0d3697f2c57ce960ec63
|
data/lib/nfg-client/utils.rb
CHANGED
@@ -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:
|
data/lib/nfg-client/version.rb
CHANGED
data/nfg-client.gemspec
CHANGED
@@ -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
|
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.
|
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
|
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:
|