mondido 1.0.8 → 1.1.0

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: 3b73782b64f901d62b9fcc7184b0d33bdd0b8725
4
- data.tar.gz: 29235af408a637119820f4be5d9c15b987cf97cb
3
+ metadata.gz: 93e554b36550a73b880205fc196c92f9ec9408e2
4
+ data.tar.gz: 15a1bffcbeb8463d3f046c5864635d3e7d6f6d18
5
5
  SHA512:
6
- metadata.gz: ee26bac5281ffc19e8a652e182e3a782caaa6c66f23da6d925f5e751655764279997d22b0acc25c2a04fbd519d27d1432210369a08c1910b912162a7266dfba3
7
- data.tar.gz: 502839d93da661bb3230cc37b770817626b0b07486dff0535f0a21c30a47334256384071aeade6255c1a7ecb37a9c042e98890941a8c7ba790a7cc229ea5cfa2
6
+ metadata.gz: 3371cf5eabe76b51b111ebe6d62be90e52181eb453b8b3cf0a3da5cbcf4b9144951756b672151fb1b2a92d4318ad5c6febd557af669f5246def3b87acf4a9f2e
7
+ data.tar.gz: 2b7815803b5d38e2d51bea12a7be6c7a7fb6aae33869b48ecbd67ed4cd647742fe5de68e6087d6e1f94b53895cf1e4d3dd4114b4009a54621fd136eb47c3fe0a
@@ -35,6 +35,7 @@ module Mondido
35
35
  object = self.new(attributes)
36
36
  object.valid? # Will raise exception if validation fails
37
37
 
38
+ object.set_merchant_id! if object.respond_to? :set_merchant_id!
38
39
  object.set_hash! if object.respond_to? :set_hash!
39
40
 
40
41
  response = Mondido::RestClient.process(object)
@@ -24,7 +24,8 @@ module Mondido
24
24
  def self.setup
25
25
  config_file = File.join(Rails.root, 'config', 'mondido.yml')
26
26
  if File.exist?(config_file)
27
- yaml = YAML.load(File.read(config_file))
27
+ template = ERB.new File.read(config_file)
28
+ yaml = YAML.load template.result(binding)
28
29
  @@merchant_id = yaml['merchant_id']
29
30
  @@secret = yaml['secret']
30
31
  @@password = yaml['password']
@@ -27,7 +27,19 @@ module Mondido
27
27
  :customer,
28
28
  :subscription,
29
29
  :payment_details,
30
- :hash
30
+ :hash,
31
+ :webhooks,
32
+ :payment_request,
33
+ :template_id,
34
+ :error,
35
+ :success_url,
36
+ :error_url,
37
+ :refund,
38
+ :customer,
39
+ :store_card,
40
+ :href,
41
+ :plan_id,
42
+ :process
31
43
 
32
44
  validates :currency,
33
45
  presence: { message: 'errors.currency.missing' },
@@ -63,9 +75,11 @@ module Mondido
63
75
  end
64
76
 
65
77
  def self.create(attributes={})
66
- metadata = attributes[:metadata]
67
- metadata = metadata.to_json if metadata && metadata.respond_to?(:to_json)
68
- attributes[:metadata] = metadata
78
+ ['metadata', 'webhooks'].each do |a|
79
+ attribute = attributes[:"#{a}"]
80
+ attribute = attribute.to_json if attribute && attribute.respond_to?(:to_json)
81
+ attributes[:"#{a}"] = attribute
82
+ end
69
83
  super(attributes)
70
84
  end
71
85
 
@@ -73,8 +87,22 @@ module Mondido
73
87
  super
74
88
  end
75
89
 
90
+ def set_merchant_id!
91
+ unless self.merchant_id
92
+ self.merchant_id = Mondido::Credentials.merchant_id
93
+ end
94
+ end
95
+
76
96
  def set_hash!
77
- unhashed = [Mondido::Credentials.merchant_id, payment_ref, customer_ref, amount, currency, Mondido::Credentials.secret].map(&:to_s)
97
+ unhashed = [
98
+ Mondido::Credentials.merchant_id,
99
+ payment_ref,
100
+ customer_ref,
101
+ amount,
102
+ currency,
103
+ ( (test) ? "test" : "" ),
104
+ Mondido::Credentials.secret
105
+ ].map(&:to_s)
78
106
  self.hash = Digest::MD5.hexdigest(unhashed.join)
79
107
  end
80
108
 
@@ -1,3 +1,3 @@
1
1
  module Mondido
2
- VERSION = "1.0.8"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -66,6 +66,34 @@ describe Mondido::CreditCard::Transaction do
66
66
  expect(@transaction.payment_ref).to eq(@transaction_hash['payment_ref'])
67
67
  end
68
68
 
69
+ it 'generates the correct hash' do
70
+ transaction = Mondido::CreditCard::Transaction.new({
71
+ :merchant_id => Mondido::Credentials.merchant_id.to_s,
72
+ :payment_ref => "PaymentRefValue",
73
+ :customer_ref => "CustomerRefValue",
74
+ :amount => "10.00",
75
+ :currency => "sek",
76
+ :test => true,
77
+ :secret => Mondido::Credentials.secret.to_s
78
+ })
79
+
80
+ transaction.set_hash!
81
+
82
+ # Calculate hash
83
+ unhashed = [
84
+ Mondido::Credentials.merchant_id.to_s,
85
+ "PaymentRefValue",
86
+ "CustomerRefValue",
87
+ "10.00",
88
+ "sek",
89
+ "test",
90
+ Mondido::Credentials.secret
91
+ ].map(&:to_s)
92
+ hash = Digest::MD5.hexdigest(unhashed.join)
93
+
94
+ expect(transaction.hash).to eq(hash)
95
+ end
96
+
69
97
  end
70
98
 
71
99
  context 'invalid call' do
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mondido
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.8
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Falkén
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-11 00:00:00.000000000 Z
11
+ date: 2015-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4'
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: '4'
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: '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: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: webmock
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
  description: Library for making payments with Mondido, visit https://mondido.com to
@@ -60,6 +60,8 @@ executables: []
60
60
  extensions: []
61
61
  extra_rdoc_files: []
62
62
  files:
63
+ - MIT-LICENSE
64
+ - lib/mondido.rb
63
65
  - lib/mondido/base_behaviour.rb
64
66
  - lib/mondido/base_model.rb
65
67
  - lib/mondido/config.rb
@@ -75,9 +77,6 @@ files:
75
77
  - lib/mondido/rest_client.rb
76
78
  - lib/mondido/version.rb
77
79
  - lib/mondido/webhook.rb
78
- - lib/mondido.rb
79
- - MIT-LICENSE
80
- - Rakefile
81
80
  - spec/credit_card/refund_spec.rb
82
81
  - spec/credit_card/stored_card_spec.rb
83
82
  - spec/credit_card/transaction_spec.rb
@@ -96,17 +95,17 @@ require_paths:
96
95
  - lib
97
96
  required_ruby_version: !ruby/object:Gem::Requirement
98
97
  requirements:
99
- - - '>='
98
+ - - ">="
100
99
  - !ruby/object:Gem::Version
101
100
  version: '0'
102
101
  required_rubygems_version: !ruby/object:Gem::Requirement
103
102
  requirements:
104
- - - '>='
103
+ - - ">="
105
104
  - !ruby/object:Gem::Version
106
105
  version: '0'
107
106
  requirements: []
108
107
  rubyforge_project:
109
- rubygems_version: 2.0.3
108
+ rubygems_version: 2.2.2
110
109
  signing_key:
111
110
  specification_version: 4
112
111
  summary: SDK for consuming the Mondido API
data/Rakefile DELETED
@@ -1,32 +0,0 @@
1
- begin
2
- require 'bundler/setup'
3
- rescue LoadError
4
- puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
- end
6
-
7
- require 'rdoc/task'
8
-
9
- RDoc::Task.new(:rdoc) do |rdoc|
10
- rdoc.rdoc_dir = 'rdoc'
11
- rdoc.title = 'MondidoSdk'
12
- rdoc.options << '--line-numbers'
13
- rdoc.rdoc_files.include('README.rdoc')
14
- rdoc.rdoc_files.include('lib/**/*.rb')
15
- end
16
-
17
-
18
-
19
-
20
- Bundler::GemHelper.install_tasks
21
-
22
- require 'rake/testtask'
23
-
24
- Rake::TestTask.new(:test) do |t|
25
- t.libs << 'lib'
26
- t.libs << 'test'
27
- t.pattern = 'test/**/*_test.rb'
28
- t.verbose = false
29
- end
30
-
31
-
32
- task default: :test