jemquarie 1.2.4 → 1.2.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fcb57539dfa1ef26b6400ff2d747c6704b7a4e5d
4
- data.tar.gz: 86759e149540b9b0af447133ea0e366c77734f8b
3
+ metadata.gz: 3fb592b248f78020095a9bbc18c2a235ca199aff
4
+ data.tar.gz: 6abf2638c6f7d1e5412a18c992c6c8339ce9bba7
5
5
  SHA512:
6
- metadata.gz: a33c8f91e83f80dfba339e9674da4ee7ba77ddc7e0f34cba4d24568de9341a53fcee3d828927cbf6e1685745050aca68970894f37b09157f2bfc09c669c4d645
7
- data.tar.gz: 6b6ff1a1f3b464620c131227bda5ff68ad66dbbe06095c377b13da496a79d209ffde5ae26657b547ebbd9420d7617235ffcecd75d92bd6eeb6ca56b12db6bed6
6
+ metadata.gz: 33b4814421fdd77edf666545811d3808a56ee9c8bdf45939bbbe1e283f381efec0b9e68c7cb87c20462e344dccc6d29b2d639a9066c5d20ed49a57a74b10108d
7
+ data.tar.gz: 0039afc9be83f53bd8e4168223a19bc59a4b28b5c88eaa1a7bc1cd5b3bd5c600636c4caacef00e29eb7e20f40b157a2e077cb1c694cae14c10e7723a665853e3
@@ -18,7 +18,7 @@ module Jemquarie
18
18
  end
19
19
  end
20
20
 
21
- protected
21
+ protected
22
22
 
23
23
  def hash_key(key)
24
24
  Base64.strict_encode64(OpenSSL::Digest::SHA1.digest(key))
@@ -2,7 +2,7 @@ module Jemquarie
2
2
  module Parser
3
3
  module Expiry
4
4
 
5
- def parse_expiry_response(response)
5
+ def parse_expiry_response(response)
6
6
  result = generic_request_response(response)
7
7
  return result if result[:error]
8
8
  result["XMLExtract"]["ExpiryDate"]
@@ -0,0 +1,13 @@
1
+ module Jemquarie
2
+ module Parser
3
+ module Service
4
+
5
+ def parse_service_date(response)
6
+ result = generic_request_response(response)
7
+ return result if result[:error]
8
+ Date.parse result["XMLExtract"]["ServiceDate"]
9
+ end
10
+
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,29 @@
1
+ module Jemquarie
2
+
3
+ class Service < Base
4
+
5
+ include Parser::Service
6
+
7
+ def date
8
+ response = @client.call :generate_xml_extract, :message => create_message
9
+ parse_service_date(response) if response.success?
10
+ rescue
11
+ {:error => "An error has occured, please try again later"}
12
+ end
13
+
14
+ private
15
+
16
+ def create_message
17
+ {
18
+ :string => hash_key(Jemquarie.api_key), # base64 encoded of the sha1 hashed api key
19
+ :string0 => Jemquarie.app_key,
20
+ :string1 => hash_key(@username),
21
+ :string2 => hash_key(@password),
22
+ :string3 => 'your.clients Service Date',
23
+ :string4 => 'V1.1'
24
+ }
25
+ end
26
+
27
+ end
28
+
29
+ end
@@ -1,3 +1,3 @@
1
1
  module Jemquarie
2
- VERSION = "1.2.4"
2
+ VERSION = "1.2.5"
3
3
  end
data/lib/jemquarie.rb CHANGED
@@ -5,11 +5,13 @@ require 'jemquarie/parser/cash_transactions'
5
5
  require 'jemquarie/parser/expiry'
6
6
  require 'jemquarie/parser/account_details'
7
7
  require 'jemquarie/parser/balance'
8
+ require 'jemquarie/parser/service'
8
9
  require 'jemquarie/base'
9
10
  require 'jemquarie/importer'
10
11
  require 'jemquarie/expiry'
11
12
  require 'jemquarie/account_details'
12
13
  require 'jemquarie/balance'
14
+ require 'jemquarie/service'
13
15
 
14
16
  module Jemquarie
15
17
 
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><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"><soapenv:Body><ns1:GenerateXMLExtractResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="wrapwebservices"><result xsi:type="xsd:string">&lt;?xml version=&quot;1.0&quot; ?&gt;
2
+ &lt;XMLExtract&gt;
3
+ &lt;RequestDetails&gt;
4
+ &lt;RequestStatus&gt;Success&lt;/RequestStatus&gt;
5
+ &lt;RequestErrorNumber&gt;&lt;/RequestErrorNumber&gt;
6
+ &lt;RequestErrorDetails&gt;&lt;/RequestErrorDetails&gt;
7
+ &lt;RequestTime&gt;2016-10-13 15:00:12.473&lt;/RequestTime&gt;
8
+ &lt;/RequestDetails&gt;
9
+ &lt;XMLEntityDetails&gt;
10
+ &lt;XMLEntityName&gt;your.clients Service Date&lt;/XMLEntityName&gt;
11
+ &lt;XMLEntityVersion&gt;V1.1&lt;/XMLEntityVersion&gt;
12
+ &lt;/XMLEntityDetails&gt;
13
+ &lt;ServiceDate&gt;XXX-xx-XX&lt;/ServiceDate&gt;
14
+ &lt;/XMLExtract&gt;
15
+ </result></ns1:GenerateXMLExtractResponse></soapenv:Body></soapenv:Envelope>
16
+
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><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"><soapenv:Body><ns1:GenerateXMLExtractResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="wrapwebservices"><result xsi:type="xsd:string"></result></ns1:GenerateXMLExtractResponse></soapenv:Body></soapenv:Envelope>
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><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"><soapenv:Body><ns1:GenerateXMLExtractResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="wrapwebservices"><result xsi:type="xsd:string">&lt;?xml version=&quot;1.0&quot; ?&gt;
2
+ &lt;XMLExtract&gt;
3
+ &lt;RequestDetails&gt;
4
+ &lt;RequestStatus&gt;Success&lt;/RequestStatus&gt;
5
+ &lt;RequestErrorNumber&gt;&lt;/RequestErrorNumber&gt;
6
+ &lt;RequestErrorDetails&gt;&lt;/RequestErrorDetails&gt;
7
+ &lt;RequestTime&gt;2016-10-13 15:00:12.473&lt;/RequestTime&gt;
8
+ &lt;/RequestDetails&gt;
9
+ &lt;XMLEntityDetails&gt;
10
+ &lt;XMLEntityName&gt;your.clients Service Date&lt;/XMLEntityName&gt;
11
+ &lt;XMLEntityVersion&gt;V1.1&lt;/XMLEntityVersion&gt;
12
+ &lt;/XMLEntityDetails&gt;
13
+ &lt;ServiceDate&gt;2016-10-12&lt;/ServiceDate&gt;
14
+ &lt;/XMLExtract&gt;
15
+ </result></ns1:GenerateXMLExtractResponse></soapenv:Body></soapenv:Envelope>
@@ -0,0 +1,58 @@
1
+ require 'spec_helper'
2
+
3
+ describe Jemquarie::Service do
4
+
5
+ before(:each) do
6
+ Jemquarie::Jemquarie.api_credentials("testkey", "testapp")
7
+ end
8
+
9
+ let(:importer) do
10
+ Jemquarie::Service.new('valid_code', 'valid_password')
11
+ end
12
+
13
+ describe "success" do
14
+ before(:each) do
15
+ FakeWeb.register_uri(:post, Jemquarie::Jemquarie::BASE_URI,
16
+ body: File.read('spec/files/service/success.xml'),
17
+ content_type: 'text/xml'
18
+ )
19
+ @result = importer.date
20
+ end
21
+ it "should work" do
22
+ expect(@result).to eq(Date.parse("2016-10-12"))
23
+ end
24
+ end
25
+
26
+ describe "failures" do
27
+ before(:each) do
28
+ FakeWeb.register_uri(:post, Jemquarie::Jemquarie::BASE_URI,
29
+ body: File.read('spec/files/service/failure.xml'),
30
+ content_type: 'text/xml'
31
+ )
32
+ end
33
+ it "should raise nothing" do
34
+ expect{ importer.date }.to_not raise_error
35
+ end
36
+ it "should return error message" do
37
+ @result = importer.date
38
+ expect(@result).to eq({:error => "An error has occured, please try again later"})
39
+ end
40
+ end
41
+
42
+ describe "with invalid date" do
43
+ before(:each) do
44
+ FakeWeb.register_uri(:post, Jemquarie::Jemquarie::BASE_URI,
45
+ body: File.read('spec/files/service/fail-date.xml'),
46
+ content_type: 'text/xml'
47
+ )
48
+ end
49
+ it "should raise nothing" do
50
+ expect{ importer.date }.to_not raise_error
51
+ end
52
+ it "should return error message" do
53
+ @result = importer.date
54
+ expect(@result).to eq({:error => "An error has occured, please try again later"})
55
+ end
56
+ end
57
+
58
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jemquarie
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claudio Contin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-09 00:00:00.000000000 Z
11
+ date: 2016-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: savon
@@ -120,11 +120,16 @@ files:
120
120
  - lib/jemquarie/parser/cash_transactions.rb
121
121
  - lib/jemquarie/parser/expiry.rb
122
122
  - lib/jemquarie/parser/generic.rb
123
+ - lib/jemquarie/parser/service.rb
124
+ - lib/jemquarie/service.rb
123
125
  - lib/jemquarie/version.rb
124
126
  - spec/files/account_details/details.xml
125
127
  - spec/files/balance/balances.xml
126
128
  - spec/files/balance/error_e0009.xml
127
129
  - spec/files/expiry/expiry.xml
130
+ - spec/files/service/fail-date.xml
131
+ - spec/files/service/failure.xml
132
+ - spec/files/service/success.xml
128
133
  - spec/files/transactions/no_data.xml
129
134
  - spec/files/transactions/non_authenticated.xml
130
135
  - spec/files/transactions/single_transaction.xml
@@ -136,6 +141,7 @@ files:
136
141
  - spec/lib/expiry_spec.rb
137
142
  - spec/lib/importer_spec.rb
138
143
  - spec/lib/jemquarie_spec.rb
144
+ - spec/lib/service_spec.rb
139
145
  - spec/spec_helper.rb
140
146
  homepage: https://github.com/clod81/jemquarie
141
147
  licenses:
@@ -166,6 +172,9 @@ test_files:
166
172
  - spec/files/balance/balances.xml
167
173
  - spec/files/balance/error_e0009.xml
168
174
  - spec/files/expiry/expiry.xml
175
+ - spec/files/service/fail-date.xml
176
+ - spec/files/service/failure.xml
177
+ - spec/files/service/success.xml
169
178
  - spec/files/transactions/no_data.xml
170
179
  - spec/files/transactions/non_authenticated.xml
171
180
  - spec/files/transactions/single_transaction.xml
@@ -177,4 +186,5 @@ test_files:
177
186
  - spec/lib/expiry_spec.rb
178
187
  - spec/lib/importer_spec.rb
179
188
  - spec/lib/jemquarie_spec.rb
189
+ - spec/lib/service_spec.rb
180
190
  - spec/spec_helper.rb