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.
- checksums.yaml +5 -5
- data/.gitignore +3 -1
- data/.travis.yml +12 -1
- data/CONTRIBUTING.md +28 -0
- data/Gemfile.lock +322 -2
- data/README.md +29 -54
- data/Rakefile +19 -4
- data/app/controllers/spree/api/v1/mollie_controller.rb +16 -0
- data/app/controllers/spree/checkout_controller_decorator.rb +5 -6
- data/app/controllers/spree/mollie_controller.rb +20 -8
- data/app/models/mollie/client_decorator.rb +13 -0
- data/app/models/spree/gateway/mollie_gateway.rb +108 -53
- data/app/models/spree/mollie_logger.rb +9 -0
- data/app/models/spree/{mollie_transaction.rb → mollie_payment_source.rb} +7 -3
- data/app/models/spree/order_decorator.rb +24 -0
- data/app/models/spree/payment/processing_decorator.rb +8 -2
- data/app/models/spree/payment_decorator.rb +16 -0
- data/app/models/spree/user_decorator.rb +4 -2
- data/app/views/spree/checkout/payment/_molliegateway.html.erb +40 -3
- data/app/views/spree/shared/_payment.html.erb +1 -1
- data/config/routes.rb +11 -1
- data/db/migrate/{20180214133044_create_spree_mollie_transactions.rb → 20180214133044_create_spree_mollie_payment_sources.rb} +2 -2
- data/db/migrate/20180301084841_add_mollie_customer_id_to_spree_user.rb +2 -1
- data/docs/api/methods.md +61 -0
- data/docs/api/readme.md +7 -0
- data/docs/debugging.md +26 -0
- data/lib/spree_mollie_gateway/engine.rb +13 -3
- data/lib/spree_mollie_gateway/factories.rb +10 -0
- data/lib/spree_mollie_gateway/version.rb +1 -1
- data/spree_mollie_gateway.gemspec +27 -12
- metadata +231 -8
- data/app/models/mollie/provider.rb +0 -5
@@ -1,8 +1,10 @@
|
|
1
|
-
Spree
|
1
|
+
Spree.user_class.class_eval do
|
2
2
|
after_create :create_mollie_customer
|
3
3
|
|
4
4
|
def create_mollie_customer
|
5
|
-
|
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
|
-
|
3
|
+
<% prefix = "payment_source[#{payment_method.id}]" %>
|
4
|
+
<div class="radio list-group-item">
|
4
5
|
|
5
|
-
<label
|
6
|
-
<%= radio_button(
|
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::
|
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.
|
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
|
1
|
+
class CreateSpreeMolliePaymentSources < ActiveRecord::Migration[5.1]
|
2
2
|
def change
|
3
|
-
create_table :
|
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
|
-
|
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
|
data/docs/api/methods.md
ADDED
@@ -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
|
+
```
|
data/docs/api/readme.md
ADDED
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,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
|
3
|
+
require 'spree_mollie_gateway/version'
|
5
4
|
|
6
5
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
6
|
+
spec.name = 'spree_mollie_gateway'
|
8
7
|
spec.version = SpreeMollieGateway::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
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 =
|
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 =
|
27
|
+
spec.bindir = 'exe'
|
29
28
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
30
|
-
spec.require_paths = [
|
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
|
33
|
-
spec.add_development_dependency
|
34
|
-
spec.add_development_dependency
|
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.
|
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-
|
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/
|
307
|
+
- app/models/mollie/client_decorator.rb
|
92
308
|
- app/models/spree/gateway/mollie_gateway.rb
|
93
|
-
- app/models/spree/
|
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/
|
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:
|
350
|
+
version: 1.3.1
|
128
351
|
requirements: []
|
129
352
|
rubyforge_project:
|
130
|
-
rubygems_version: 2.6
|
353
|
+
rubygems_version: 2.7.6
|
131
354
|
signing_key:
|
132
355
|
specification_version: 4
|
133
356
|
summary: Mollie payments for Spree Commerce.
|