spree_mollie_gateway 0.1.1 → 1.0.0.pre.beta3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +3 -1
  3. data/.travis.yml +12 -1
  4. data/CONTRIBUTING.md +28 -0
  5. data/Gemfile.lock +322 -2
  6. data/README.md +29 -54
  7. data/Rakefile +19 -4
  8. data/app/controllers/spree/api/v1/mollie_controller.rb +16 -0
  9. data/app/controllers/spree/checkout_controller_decorator.rb +5 -6
  10. data/app/controllers/spree/mollie_controller.rb +20 -8
  11. data/app/models/mollie/client_decorator.rb +13 -0
  12. data/app/models/spree/gateway/mollie_gateway.rb +108 -53
  13. data/app/models/spree/mollie_logger.rb +9 -0
  14. data/app/models/spree/{mollie_transaction.rb → mollie_payment_source.rb} +7 -3
  15. data/app/models/spree/order_decorator.rb +24 -0
  16. data/app/models/spree/payment/processing_decorator.rb +8 -2
  17. data/app/models/spree/payment_decorator.rb +16 -0
  18. data/app/models/spree/user_decorator.rb +4 -2
  19. data/app/views/spree/checkout/payment/_molliegateway.html.erb +40 -3
  20. data/app/views/spree/shared/_payment.html.erb +1 -1
  21. data/config/routes.rb +11 -1
  22. data/db/migrate/{20180214133044_create_spree_mollie_transactions.rb → 20180214133044_create_spree_mollie_payment_sources.rb} +2 -2
  23. data/db/migrate/20180301084841_add_mollie_customer_id_to_spree_user.rb +2 -1
  24. data/docs/api/methods.md +61 -0
  25. data/docs/api/readme.md +7 -0
  26. data/docs/debugging.md +26 -0
  27. data/lib/spree_mollie_gateway/engine.rb +13 -3
  28. data/lib/spree_mollie_gateway/factories.rb +10 -0
  29. data/lib/spree_mollie_gateway/version.rb +1 -1
  30. data/spree_mollie_gateway.gemspec +27 -12
  31. metadata +231 -8
  32. data/app/models/mollie/provider.rb +0 -5
@@ -1,8 +1,10 @@
1
- Spree::User.class_eval do
1
+ Spree.user_class.class_eval do
2
2
  after_create :create_mollie_customer
3
3
 
4
4
  def create_mollie_customer
5
- mollie_gateway = Spree::PaymentMethod.find_by_type('Spree::Gateway::MollieGateway')
5
+ # Don't create Mollie customers is spree_auth_devise is not installed.
6
+ return unless defined? Spree::User
7
+ mollie_gateway = Spree::PaymentMethod.find_by_type 'Spree::Gateway::MollieGateway'
6
8
  mollie_customer = mollie_gateway.create_customer(self)
7
9
  update mollie_customer_id: mollie_customer.id
8
10
  end
@@ -1,12 +1,49 @@
1
1
  <ul class="list-group">
2
2
  <% payment_method.available_payment_methods.each do |method| %>
3
- <div class="radio list-group-item clearfix">
3
+ <% prefix = "payment_source[#{payment_method.id}]" %>
4
+ <div class="radio list-group-item">
4
5
 
5
- <label class="pull-left">
6
- <%= radio_button("payment_source[#{payment_method.id}]", :payment_method_name, method.id) %>
6
+ <label>
7
+ <%= radio_button(prefix, :payment_method_name, method.id, class: 'js-mollie-payment-method') %>
7
8
  <%= image_tag(method.image['normal']) %>
8
9
  <%= method.description %>
9
10
  </label>
11
+
12
+ <%= select_tag "#{prefix}[issuer]", options_for_select(method.issuers.collect {|p| [p['name'], p['id']]}), {class: 'form-control js-mollie-issuers mollie-issuer-list', disabled: true, prompt: 'Select an issuer', data: {method: method.id}} if method.issuers.present? %>
10
13
  </div>
11
14
  <% end %>
12
15
  </ul>
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ /**
19
+ * Make sure the issuer select boxes are disabled by default to prevent empty issuer submissions.
20
+ */
21
+ var paymentMethodRadioElements = document.querySelectorAll('.js-mollie-payment-method');
22
+
23
+ function disableAllIssuerSelectBoxes() {
24
+ var issuerSelectElements = document.querySelectorAll('.js-mollie-issuers');
25
+ for (var i = 0; i < issuerSelectElements.length; i++) {
26
+ issuerSelectElements[i].setAttribute('disabled', 'true');
27
+ }
28
+ }
29
+
30
+ for (var i = 0; i < paymentMethodRadioElements.length; i++) {
31
+ paymentMethodRadioElements[i].addEventListener('change', function (e) {
32
+ disableAllIssuerSelectBoxes();
33
+ var issuerSelect = document.querySelector('[data-method="' + e.target.value + '"]');
34
+ if (issuerSelect) {
35
+ issuerSelect.removeAttribute('disabled');
36
+ }
37
+ });
38
+ }
39
+ </script>
40
+
41
+ <style type="text/css">
42
+ .mollie-issuer-list {
43
+ margin-top: 15px;
44
+ }
45
+
46
+ .mollie-issuer-list[disabled] {
47
+ display: none;
48
+ }
49
+ </style>
@@ -11,7 +11,7 @@
11
11
  </span>
12
12
  <br />
13
13
  <span class="full-name"><%= source.name %></span>
14
- <% elsif source.is_a?(Spree::MollieTransaction) %>
14
+ <% elsif source.is_a?(Spree::MolliePaymentSource) %>
15
15
  <span class="full-name"><%= source.name %></span>
16
16
  <% else %>
17
17
  <%= content_tag(:span, payment.payment_method.name) %>
data/config/routes.rb CHANGED
@@ -1,6 +1,16 @@
1
- Spree::Core::Engine.add_routes do
1
+ Spree::Core::Engine.routes.draw do
2
2
  resource :mollie, only: [], controller: :mollie do
3
3
  post 'update_payment_status/:order_number', action: :update_payment_status, as: 'mollie_update_payment_status'
4
4
  get 'validate_payment/:order_number', action: :validate_payment, as: 'mollie_validate_payment'
5
5
  end
6
+
7
+ namespace :api do
8
+ namespace :v1 do
9
+ resources :mollie, only: [] do
10
+ collection do
11
+ get :methods
12
+ end
13
+ end
14
+ end
15
+ end
6
16
  end
@@ -1,6 +1,6 @@
1
- class CreateSpreeMollieTransactions < ActiveRecord::Migration[5.1]
1
+ class CreateSpreeMolliePaymentSources < ActiveRecord::Migration[5.1]
2
2
  def change
3
- create_table :spree_mollie_transactions do |t|
3
+ create_table :spree_mollie_payment_sources do |t|
4
4
  t.string :payment_id
5
5
  t.string :payment_method_name
6
6
  t.string :issuer
@@ -1,5 +1,6 @@
1
1
  class AddMollieCustomerIdToSpreeUser < ActiveRecord::Migration[5.1]
2
2
  def change
3
- add_column :spree_users, :mollie_customer_id, :string
3
+ return unless Spree::Gateway::MollieGateway.allow_one_click_payments?
4
+ add_column Spree.user_class.table_name, :mollie_customer_id, :string
4
5
  end
5
6
  end
@@ -0,0 +1,61 @@
1
+ # Get Mollie payment methods
2
+
3
+ Returns a list of Mollie payment methods (and its issuers) which are enabled for your website profile.
4
+
5
+ ## Parameters
6
+ This endpoint behaves just like very other Spree API endpoint. If your endpoints require authentication, make sure you sent the `X-Spree-Token` header.
7
+
8
+ ## Example request
9
+
10
+ ```bash
11
+ curl "http://localhost:3000/api/v1/mollie/methods" \
12
+ -H 'Content-Type: application/json; charset=utf-8'
13
+ ```
14
+
15
+ ## Example response
16
+
17
+ ```bash
18
+ HTTP/1.1 200 OK
19
+ Content-Type: application/json; charset=utf-8
20
+
21
+ [
22
+ {
23
+ "attributes": {
24
+ "resource": "method",
25
+ "id": "ideal",
26
+ "description": "iDEAL",
27
+ "amount": {
28
+ "minimum": "0.01",
29
+ "maximum": "50000.00"
30
+ },
31
+ "image": {
32
+ "normal": "https://www.mollie.com/images/payscreen/methods/ideal.png",
33
+ "bigger": "https://www.mollie.com/images/payscreen/methods/ideal%402x.png"
34
+ },
35
+ "issuers": [
36
+ {
37
+ "resource": "issuer",
38
+ "id": "ideal_TESTNL99",
39
+ "name": "TBM Bank",
40
+ "method": "ideal",
41
+ "image": {
42
+ "normal": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/TESTNL99.png",
43
+ "bigger": "https://www.mollie.com/images/checkout/v2/ideal-issuer-icons/TESTNL99%402x.png"
44
+ }
45
+ }
46
+ ]
47
+ },
48
+ "id": "ideal",
49
+ "description": "iDEAL",
50
+ "amount": {
51
+ "minimum": "0.01",
52
+ "maximum": "50000.00"
53
+ },
54
+ "image": {
55
+ "normal": "https://www.mollie.com/images/payscreen/methods/ideal.png",
56
+ "bigger": "https://www.mollie.com/images/payscreen/methods/ideal%402x.png"
57
+ }
58
+ }
59
+ ]
60
+
61
+ ```
@@ -0,0 +1,7 @@
1
+ # Spree API integration
2
+
3
+ This gateway seamlessly integrates with the <a href="https://guides.spreecommerce.org/api/">Spree API</a>.
4
+
5
+ ## Endpoints
6
+
7
+ - <a href="methods.md">Get Mollie payment methods</a>
data/docs/debugging.md ADDED
@@ -0,0 +1,26 @@
1
+ # Debugging
2
+
3
+ The Mollie gateway keeps track of all events which are related to payment details and payment state updates. It uses a separate log, which is located in `log/mollie.log`.
4
+
5
+ ## Example
6
+
7
+ ```
8
+ ❯ tail -fn20 log/mollie.log
9
+ D, [2018-03-17T16:48:43.881508 #45974] DEBUG -- : About to create payment for order R066092806-P9ND5B3J
10
+ D, [2018-03-17T16:48:44.081895 #45974] DEBUG -- : Payment tr_12345678 created for order R066092806-P9ND5B3J
11
+ D, [2018-03-17T16:48:44.104215 #45974] DEBUG -- : For order R066092806 redirect user to payment URL: https://www.mollie.com/paymentscreen/issuer/select/ideal
12
+ D, [2018-03-17T16:48:49.488303 #45974] DEBUG -- : Webhook called for payment tr_12345678
13
+ D, [2018-03-17T16:48:49.697996 #45974] DEBUG -- : Updating order state for payment. Payment has state paid
14
+ D, [2018-03-17T16:48:49.788303 #45974] DEBUG -- : Redirect URL visited for order R066092806-P9ND5B3J
15
+ D, [2018-03-17T16:48:50.927236 #45974] DEBUG -- : Created a Mollie Customer for Spree user with ID cst_234890239
16
+ D, [2018-03-17T16:55:13.466887 #45974] DEBUG -- : About to create payment for order R287180370-PAP5KQV3
17
+ D, [2018-03-17T16:55:13.572465 #45974] DEBUG -- : Payment tr_12345678 created for order R287180370-PAP5KQV3
18
+ D, [2018-03-17T16:55:26.796272 #45974] DEBUG -- : Webhook called for payment tr_12345678
19
+ D, [2018-03-17T16:55:28.298622 #45974] DEBUG -- : Updating order state for payment. Payment has state paid
20
+ D, [2018-03-17T16:55:28.384232 #45974] DEBUG -- : Redirect URL visited for order R287180370-PAP5KQV3
21
+ D, [2018-03-17T17:11:06.855310 #45974] DEBUG -- : Webhook called for payment tr_12345678
22
+ D, [2018-03-17T17:11:09.569485 #45974] DEBUG -- : Updating order state for payment. Payment has state expired
23
+ D, [2018-03-18T13:58:14.360501 #54712] DEBUG -- : Starting refund for order R287180370
24
+ D, [2018-03-18T13:58:18.992075 #54712] DEBUG -- : Successfully refunded 0.01 for order R287180370
25
+ D, [2018-03-18T14:12:10.495217 #54712] DEBUG -- : Could not create payment for order R541579556-PEKXA7RN: Unauthorized request
26
+ ```
@@ -1,18 +1,28 @@
1
- require 'mollie-api-ruby'
2
-
3
1
  module SpreeMollieGateway
4
2
  class Engine < ::Rails::Engine
3
+ require 'spree/core'
4
+ require 'mollie-api-ruby'
5
+
5
6
  isolate_namespace SpreeMollieGateway
6
7
 
7
8
  config.autoload_paths += %W(#{config.root}/lib)
8
9
 
10
+ # Use rspec for tests
11
+ config.generators do |g|
12
+ g.test_framework :rspec
13
+ end
14
+
9
15
  def self.activate
10
16
  Dir.glob(File.join(File.dirname(__FILE__), "../../app/**/*_decorator*.rb")) do |c|
11
17
  Rails.configuration.cache_classes ? require(c) : load(c)
12
18
  end
13
19
 
14
- Rails.application.config.spree.payment_methods << Spree::Gateway::MollieGateway
20
+ ::Rails.application.config.spree.payment_methods << Spree::Gateway::MollieGateway
15
21
  Spree::PermittedAttributes.source_attributes << :payment_method_name
22
+ Spree::PermittedAttributes.source_attributes << :issuer
23
+ Spree::Api::ApiHelpers.payment_source_attributes << :payment_method_name
24
+ Spree::Api::ApiHelpers.payment_source_attributes << :issuer
25
+ Spree::Api::ApiHelpers.payment_source_attributes << :payment_url
16
26
  end
17
27
 
18
28
  config.to_prepare &method(:activate).to_proc
@@ -0,0 +1,10 @@
1
+ FactoryBot.define do
2
+ # Define your Spree extensions Factories within this file to enable applications, and other extensions to use and override them.
3
+ #
4
+ # Example adding this to your spec_helper will load these Factories for use:
5
+ # require 'spree_mollie_gateway/factories'
6
+
7
+ Dir[Dir.pwd + '/spec/factories/**/*'].each do |factory|
8
+ require File.expand_path(factory)
9
+ end
10
+ end
@@ -1,3 +1,3 @@
1
1
  module SpreeMollieGateway
2
- VERSION = '0.1.1'
2
+ VERSION = '1.0.0-beta3'
3
3
  end
@@ -1,17 +1,16 @@
1
-
2
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path('../lib', __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "spree_mollie_gateway/version"
3
+ require 'spree_mollie_gateway/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "spree_mollie_gateway"
6
+ spec.name = 'spree_mollie_gateway'
8
7
  spec.version = SpreeMollieGateway::VERSION
9
- spec.authors = ["Vernon de Goede"]
10
- spec.email = ["vernon@mollie.com"]
8
+ spec.authors = ['Vernon de Goede']
9
+ spec.email = ['vernon@mollie.com']
11
10
 
12
11
  spec.summary = %q{Mollie payments for Spree Commerce.}
13
12
  spec.description = %q{Mollie payment gateway for Spree Commerce.}
14
- spec.homepage = "https://www.mollie.com"
13
+ spec.homepage = 'https://www.mollie.com'
15
14
 
16
15
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
17
16
  # to allow pushing to a single host or delete this section to allow pushing to any host.
@@ -25,13 +24,29 @@ Gem::Specification.new do |spec|
25
24
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
26
25
  f.match(%r{^(test|spec|features)/})
27
26
  end
28
- spec.bindir = "exe"
27
+ spec.bindir = 'exe'
29
28
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
- spec.require_paths = ["lib"]
29
+ spec.require_paths = ['lib']
30
+
31
+ spree_version = '>= 3.1.0', '< 4.0'
32
+ spec.add_dependency 'spree_core', spree_version
33
+ spec.add_dependency 'spree_backend', spree_version
34
+ spec.add_dependency 'spree_frontend', spree_version
35
+ spec.add_dependency 'spree_extension'
31
36
 
32
- spec.add_development_dependency "bundler", "~> 1.16"
33
- spec.add_development_dependency "rake", "~> 10.0"
34
- spec.add_development_dependency "rspec", "~> 3.0"
37
+ spec.add_development_dependency 'factory_bot'
38
+ spec.add_development_dependency 'bundler', '~> 1.16'
39
+ spec.add_development_dependency 'rake', '~> 10.0'
40
+ spec.add_development_dependency 'rspec', '~> 3.0'
41
+ spec.add_development_dependency 'rspec-rails', '~> 3.7.2'
42
+ spec.add_development_dependency 'ffaker'
43
+ spec.add_development_dependency 'sass-rails'
44
+ spec.add_development_dependency 'selenium-webdriver'
45
+ spec.add_development_dependency 'simplecov'
46
+ spec.add_development_dependency 'sqlite3'
47
+ spec.add_development_dependency 'mysql2'
48
+ spec.add_development_dependency 'coffee-rails'
49
+ spec.add_development_dependency 'database_cleaner'
35
50
 
36
51
  spec.add_runtime_dependency 'mollie-api-ruby', '~> 3.1', '>= 3.1.3'
37
52
  end
metadata CHANGED
@@ -1,15 +1,103 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_mollie_gateway
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 1.0.0.pre.beta3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vernon de Goede
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-01 00:00:00.000000000 Z
11
+ date: 2018-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: spree_core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 3.1.0
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '4.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 3.1.0
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '4.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: spree_backend
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 3.1.0
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '4.0'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 3.1.0
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '4.0'
53
+ - !ruby/object:Gem::Dependency
54
+ name: spree_frontend
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 3.1.0
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '4.0'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 3.1.0
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '4.0'
73
+ - !ruby/object:Gem::Dependency
74
+ name: spree_extension
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ type: :runtime
81
+ prerelease: false
82
+ version_requirements: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ - !ruby/object:Gem::Dependency
88
+ name: factory_bot
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ type: :development
95
+ prerelease: false
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
13
101
  - !ruby/object:Gem::Dependency
14
102
  name: bundler
15
103
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +140,132 @@ dependencies:
52
140
  - - "~>"
53
141
  - !ruby/object:Gem::Version
54
142
  version: '3.0'
143
+ - !ruby/object:Gem::Dependency
144
+ name: rspec-rails
145
+ requirement: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: 3.7.2
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - "~>"
155
+ - !ruby/object:Gem::Version
156
+ version: 3.7.2
157
+ - !ruby/object:Gem::Dependency
158
+ name: ffaker
159
+ requirement: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
164
+ type: :development
165
+ prerelease: false
166
+ version_requirements: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ">="
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ - !ruby/object:Gem::Dependency
172
+ name: sass-rails
173
+ requirement: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ type: :development
179
+ prerelease: false
180
+ version_requirements: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - ">="
183
+ - !ruby/object:Gem::Version
184
+ version: '0'
185
+ - !ruby/object:Gem::Dependency
186
+ name: selenium-webdriver
187
+ requirement: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ type: :development
193
+ prerelease: false
194
+ version_requirements: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
199
+ - !ruby/object:Gem::Dependency
200
+ name: simplecov
201
+ requirement: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - ">="
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ type: :development
207
+ prerelease: false
208
+ version_requirements: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: '0'
213
+ - !ruby/object:Gem::Dependency
214
+ name: sqlite3
215
+ requirement: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - ">="
218
+ - !ruby/object:Gem::Version
219
+ version: '0'
220
+ type: :development
221
+ prerelease: false
222
+ version_requirements: !ruby/object:Gem::Requirement
223
+ requirements:
224
+ - - ">="
225
+ - !ruby/object:Gem::Version
226
+ version: '0'
227
+ - !ruby/object:Gem::Dependency
228
+ name: mysql2
229
+ requirement: !ruby/object:Gem::Requirement
230
+ requirements:
231
+ - - ">="
232
+ - !ruby/object:Gem::Version
233
+ version: '0'
234
+ type: :development
235
+ prerelease: false
236
+ version_requirements: !ruby/object:Gem::Requirement
237
+ requirements:
238
+ - - ">="
239
+ - !ruby/object:Gem::Version
240
+ version: '0'
241
+ - !ruby/object:Gem::Dependency
242
+ name: coffee-rails
243
+ requirement: !ruby/object:Gem::Requirement
244
+ requirements:
245
+ - - ">="
246
+ - !ruby/object:Gem::Version
247
+ version: '0'
248
+ type: :development
249
+ prerelease: false
250
+ version_requirements: !ruby/object:Gem::Requirement
251
+ requirements:
252
+ - - ">="
253
+ - !ruby/object:Gem::Version
254
+ version: '0'
255
+ - !ruby/object:Gem::Dependency
256
+ name: database_cleaner
257
+ requirement: !ruby/object:Gem::Requirement
258
+ requirements:
259
+ - - ">="
260
+ - !ruby/object:Gem::Version
261
+ version: '0'
262
+ type: :development
263
+ prerelease: false
264
+ version_requirements: !ruby/object:Gem::Requirement
265
+ requirements:
266
+ - - ">="
267
+ - !ruby/object:Gem::Version
268
+ version: '0'
55
269
  - !ruby/object:Gem::Dependency
56
270
  name: mollie-api-ruby
57
271
  requirement: !ruby/object:Gem::Requirement
@@ -82,16 +296,21 @@ files:
82
296
  - ".gitignore"
83
297
  - ".rspec"
84
298
  - ".travis.yml"
299
+ - CONTRIBUTING.md
85
300
  - Gemfile
86
301
  - Gemfile.lock
87
302
  - README.md
88
303
  - Rakefile
304
+ - app/controllers/spree/api/v1/mollie_controller.rb
89
305
  - app/controllers/spree/checkout_controller_decorator.rb
90
306
  - app/controllers/spree/mollie_controller.rb
91
- - app/models/mollie/provider.rb
307
+ - app/models/mollie/client_decorator.rb
92
308
  - app/models/spree/gateway/mollie_gateway.rb
93
- - app/models/spree/mollie_transaction.rb
309
+ - app/models/spree/mollie_logger.rb
310
+ - app/models/spree/mollie_payment_source.rb
311
+ - app/models/spree/order_decorator.rb
94
312
  - app/models/spree/payment/processing_decorator.rb
313
+ - app/models/spree/payment_decorator.rb
95
314
  - app/models/spree/user_decorator.rb
96
315
  - app/views/spree/admin/payments/source_forms/_molliegateway.html.erb
97
316
  - app/views/spree/admin/payments/source_views/_molliegateway.html.erb
@@ -100,11 +319,15 @@ files:
100
319
  - bin/console
101
320
  - bin/setup
102
321
  - config/routes.rb
103
- - db/migrate/20180214133044_create_spree_mollie_transactions.rb
322
+ - db/migrate/20180214133044_create_spree_mollie_payment_sources.rb
104
323
  - db/migrate/20180301084841_add_mollie_customer_id_to_spree_user.rb
324
+ - docs/api/methods.md
325
+ - docs/api/readme.md
326
+ - docs/debugging.md
105
327
  - lib/generators/spree_mollie_gateway/install/install_generator.rb
106
328
  - lib/spree_mollie_gateway.rb
107
329
  - lib/spree_mollie_gateway/engine.rb
330
+ - lib/spree_mollie_gateway/factories.rb
108
331
  - lib/spree_mollie_gateway/version.rb
109
332
  - spree_mollie_gateway.gemspec
110
333
  homepage: https://www.mollie.com
@@ -122,12 +345,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
122
345
  version: '0'
123
346
  required_rubygems_version: !ruby/object:Gem::Requirement
124
347
  requirements:
125
- - - ">="
348
+ - - ">"
126
349
  - !ruby/object:Gem::Version
127
- version: '0'
350
+ version: 1.3.1
128
351
  requirements: []
129
352
  rubyforge_project:
130
- rubygems_version: 2.6.14
353
+ rubygems_version: 2.7.6
131
354
  signing_key:
132
355
  specification_version: 4
133
356
  summary: Mollie payments for Spree Commerce.