epay_tools 0.0.3 → 0.0.4

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: eece8069cc5fd1cf60d3fb09b4a3ffa96d2ffcfa
4
- data.tar.gz: 6e53bdf67e10e95c0581a4eb5c66f177a4908474
3
+ metadata.gz: 9dfa9cd9c51b7fbe096c1942a5a39ceb4666f768
4
+ data.tar.gz: 01d88f9861e2330d0ab71ab20fb6333185fe377f
5
5
  SHA512:
6
- metadata.gz: 2b8bf9a4a40ad00a8ad69673d35c169b2405b4a09b726e1de79438e382e48bcac3f6ec1ebd57aea24dd34603934cb576492811d9701f0c1f1a45ba366ee4c57d
7
- data.tar.gz: 37fba46a9992a3e0ea3fa02b32e0172a5ebbb38ebf4572f097f5ef23c9c3086d9b6c36456c0d4f44bf2d46a23f28827e8811399bef6e678f4f608b7142a1c882
6
+ metadata.gz: 5910bd58e73557819e5ec1e26454b97ba9be5175d88f7fda0a5c9b0f0363d40d19e65f860f5452f93cd90e6df0d61fee37fb5d679cf3df77a213cfcd0d504bac
7
+ data.tar.gz: 18802c985717d5defb607cee3b6d3667390080c2ccc858c1be3a6735841fbf8b6577be5084d4bb57e63f0dbaf4fd3c89d8a4b26cec53dd729d8a9448b3881a1d
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.4
@@ -15,19 +15,7 @@ class EpayTools::HashGenerator < ServicePattern::Service
15
15
  private
16
16
 
17
17
  def calculate_hash
18
- @_calculate_hash ||= Digest::MD5.hexdigest("#{params_values.join}#{epay_md5_key}")
19
- end
20
-
21
- def params_values
22
- unless @_params_values
23
- @_params_values = {}
24
- KEYS_ORDER.each do |key|
25
- @_params_values[key] = params.delete(key) if params.key?(key)
26
- end
27
-
28
- @_params_values.merge!(params)
29
- end
30
-
31
- @_params_values.values
18
+ require "digest/md5"
19
+ @_calculate_hash ||= Digest::MD5.hexdigest("#{params.values.join}#{epay_md5_key}")
32
20
  end
33
21
  end
@@ -0,0 +1,25 @@
1
+ class EpayTools::ResponseHashGenerator < ServicePattern::Service
2
+ attr_reader :epay_md5_key, :params
3
+
4
+ KEYS_ORDER = %w[txnid orderid amount currency date time txnfee paymenttype cardno hash].freeze
5
+
6
+ def initialize(epay_md5_key:, params:)
7
+ @epay_md5_key = epay_md5_key
8
+ @params = params.reject { |key, _value| key.to_s == "hash" }
9
+ end
10
+
11
+ def execute!
12
+ ServicePattern::Response.new(result: EpayTools::HashGenerator.execute!(epay_md5_key: epay_md5_key, params: ordered_params).result)
13
+ end
14
+
15
+ private
16
+
17
+ def ordered_params
18
+ result = {}
19
+ KEYS_ORDER.each do |key|
20
+ result[key] = params.delete(key) if params.key?(key)
21
+ end
22
+
23
+ result.merge(params)
24
+ end
25
+ end
@@ -15,7 +15,7 @@ describe EpayTools::Calculator do
15
15
  "paymentcollection" => "1",
16
16
  "lockpaymentcollection" => "1",
17
17
  "subscription" => "0",
18
- "hash" => "394b72dae2714e89222d30cf9a1d649b"
18
+ "hash" => "edc52b2b2f619551146682061d3a9d0d"
19
19
  }
20
20
  end
21
21
  let(:service) do
@@ -27,7 +27,7 @@ describe EpayTools::Calculator do
27
27
 
28
28
  describe "#calculated_hash" do
29
29
  it "calculates the right hash" do
30
- expect(service.execute!.result.fetch(:epay_hash)).to eq "394b72dae2714e89222d30cf9a1d649b"
30
+ expect(service.execute!.result.fetch(:epay_hash)).to eq "edc52b2b2f619551146682061d3a9d0d"
31
31
  end
32
32
  end
33
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epay_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - kaspernj
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-02 00:00:00.000000000 Z
11
+ date: 2018-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: auto_autoloader
@@ -130,6 +130,7 @@ files:
130
130
  - lib/epay_tools/calculator.rb
131
131
  - lib/epay_tools/hash_generator.rb
132
132
  - lib/epay_tools/ordered_parameters.rb
133
+ - lib/epay_tools/response_hash_generator.rb
133
134
  - shippable.yml
134
135
  - spec/epay_tools/calculator_spec.rb
135
136
  - spec/spec_helper.rb
@@ -153,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
154
  version: '0'
154
155
  requirements: []
155
156
  rubyforge_project:
156
- rubygems_version: 2.6.11
157
+ rubygems_version: 2.6.13
157
158
  signing_key:
158
159
  specification_version: 4
159
160
  summary: Tools to implement the ePay payment gateway