fidor_api 2.0.6 → 2.1.3
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 +4 -4
- data/lib/fidor_api/client/connection.rb +1 -1
- data/lib/fidor_api/client/dsl.rb +5 -1
- data/lib/fidor_api/client/dsl/accounts.rb +4 -0
- data/lib/fidor_api/client/dsl/cards.rb +4 -0
- data/lib/fidor_api/client/dsl/debit_returns.rb +19 -0
- data/lib/fidor_api/client/dsl/scheduled_transfers.rb +35 -0
- data/lib/fidor_api/client/dsl/standing_orders.rb +18 -2
- data/lib/fidor_api/client/dsl/transfers/generic.rb +1 -1
- data/lib/fidor_api/model.rb +2 -0
- data/lib/fidor_api/model/base.rb +2 -1
- data/lib/fidor_api/model/card.rb +2 -1
- data/lib/fidor_api/model/debit_return.rb +7 -0
- data/lib/fidor_api/model/scheduled_transfer.rb +55 -0
- data/lib/fidor_api/model/standing_order.rb +16 -0
- data/lib/fidor_api/model/transfer/generic.rb +8 -8
- data/lib/fidor_api/version.rb +1 -1
- metadata +25 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dde80cf3ee63bb2992c025c4701be72e13e6c90bcd907c9ac654467c4ef44170
|
4
|
+
data.tar.gz: '01885ad2f19700dce68a3e133ffe32a0c8479fe0c36fcd61a85ce6cca1d61b3a'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e91d904bbdd0da115206bff006dd4fc57149aa6f50feef9cb234d7ac7f7de196331416063612f989118b8f15f6d2ec6163728d2f930ef0c1ba773b4e5f9bf53b
|
7
|
+
data.tar.gz: 8dc6b3525053907ecd11686b5a4535a683774a242090a73f5649eeb4a74c10494d7ae38df719b618fdbe3e4bd66d462d0afbc65ccdab6259e928517ce17db431
|
data/lib/fidor_api/client/dsl.rb
CHANGED
@@ -5,19 +5,23 @@ module FidorApi
|
|
5
5
|
autoload :Cards, 'fidor_api/client/dsl/cards'
|
6
6
|
autoload :ConfirmableActions, 'fidor_api/client/dsl/confirmable_actions'
|
7
7
|
autoload :CoreData, 'fidor_api/client/dsl/core_data'
|
8
|
+
autoload :DebitReturns, 'fidor_api/client/dsl/debit_returns'
|
8
9
|
autoload :Messages, 'fidor_api/client/dsl/messages'
|
9
10
|
autoload :Preauths, 'fidor_api/client/dsl/preauths'
|
11
|
+
autoload :ScheduledTransfers, 'fidor_api/client/dsl/scheduled_transfers'
|
10
12
|
autoload :StandingOrders, 'fidor_api/client/dsl/standing_orders'
|
11
13
|
autoload :Transactions, 'fidor_api/client/dsl/transactions'
|
12
14
|
autoload :Transfers, 'fidor_api/client/dsl/transfers'
|
13
15
|
|
14
|
-
def self.included(klass)
|
16
|
+
def self.included(klass) # rubocop:disable Metrics/MethodLength
|
15
17
|
klass.include Accounts
|
16
18
|
klass.include Cards
|
17
19
|
klass.include ConfirmableActions
|
18
20
|
klass.include CoreData
|
21
|
+
klass.include DebitReturns
|
19
22
|
klass.include Messages
|
20
23
|
klass.include Preauths
|
24
|
+
klass.include ScheduledTransfers
|
21
25
|
klass.include StandingOrders
|
22
26
|
klass.include Transactions
|
23
27
|
klass.include Transfers
|
@@ -5,6 +5,10 @@ module FidorApi
|
|
5
5
|
def account_transactions(id, options = {})
|
6
6
|
fetch(:collection, Model::Transaction, "accounts/#{id}/transactions", options)
|
7
7
|
end
|
8
|
+
|
9
|
+
def account_transaction(account_id, transaction_id, options = {})
|
10
|
+
fetch(:single, Model::Transaction, "accounts/#{account_id}/transactions/#{transaction_id}", options)
|
11
|
+
end
|
8
12
|
end
|
9
13
|
end
|
10
14
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module FidorApi
|
2
|
+
class Client
|
3
|
+
module DSL
|
4
|
+
module DebitReturns
|
5
|
+
def debit_return(transaction_id, options = {})
|
6
|
+
fetch(:single, Model::DebitReturn, "transactions/#{transaction_id}/debit_return", options)
|
7
|
+
end
|
8
|
+
|
9
|
+
def create_debit_return(transaction_id, options = {})
|
10
|
+
create(FidorApi::Model::DebitReturn, "transactions/#{transaction_id}/debit_return", {}, options)
|
11
|
+
end
|
12
|
+
|
13
|
+
def confirm_debit_return(transaction_id, options = {})
|
14
|
+
request(:put, "/transactions/#{transaction_id}/debit_return/confirm", {}, options[:headers] || {})
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module FidorApi
|
2
|
+
class Client
|
3
|
+
module DSL
|
4
|
+
module ScheduledTransfers
|
5
|
+
def scheduled_transfers(options = {})
|
6
|
+
fetch(:collection, FidorApi::Model::ScheduledTransfer, 'scheduled_transfers', options)
|
7
|
+
end
|
8
|
+
|
9
|
+
def scheduled_transfer(id, options = {})
|
10
|
+
fetch(:single, FidorApi::Model::ScheduledTransfer, "scheduled_transfers/#{id}", options)
|
11
|
+
end
|
12
|
+
|
13
|
+
def new_scheduled_transfer(attributes = {})
|
14
|
+
FidorApi::Model::ScheduledTransfer.new(attributes)
|
15
|
+
end
|
16
|
+
|
17
|
+
def create_scheduled_transfer(attributes = {}, options = {})
|
18
|
+
create(FidorApi::Model::ScheduledTransfer, 'scheduled_transfers', attributes, options)
|
19
|
+
end
|
20
|
+
|
21
|
+
def update_scheduled_transfer(id, attributes = {}, options = {})
|
22
|
+
update(FidorApi::Model::ScheduledTransfer, "scheduled_transfers/#{id}", id, attributes, options)
|
23
|
+
end
|
24
|
+
|
25
|
+
def confirm_scheduled_transfer(id, options = {})
|
26
|
+
request(:put, "scheduled_transfers/#{id}/confirm", {}, options[:headers])
|
27
|
+
end
|
28
|
+
|
29
|
+
def delete_scheduled_transfer(id, options = {})
|
30
|
+
request(:delete, "scheduled_transfers/#{id}", nil, options[:headers])
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -6,12 +6,28 @@ module FidorApi
|
|
6
6
|
fetch(:single, FidorApi::Model::StandingOrder, "standing_orders/#{id}", options)
|
7
7
|
end
|
8
8
|
|
9
|
+
def standing_orders(options = {})
|
10
|
+
fetch(:collection, FidorApi::Model::StandingOrder, 'standing_orders', options)
|
11
|
+
end
|
12
|
+
|
9
13
|
def new_standing_order(attributes = {})
|
10
14
|
FidorApi::Model::StandingOrder.new(attributes)
|
11
15
|
end
|
12
16
|
|
13
|
-
def create_standing_order(attributes = {})
|
14
|
-
create(FidorApi::Model::StandingOrder, 'standing_orders', attributes)
|
17
|
+
def create_standing_order(attributes = {}, options = {})
|
18
|
+
create(FidorApi::Model::StandingOrder, 'standing_orders', attributes, options)
|
19
|
+
end
|
20
|
+
|
21
|
+
def update_standing_order(id, attributes = {}, options = {})
|
22
|
+
update(FidorApi::Model::StandingOrder, "standing_orders/#{id}", id, attributes, options)
|
23
|
+
end
|
24
|
+
|
25
|
+
def confirm_standing_order(id, options = {})
|
26
|
+
request(:put, "standing_orders/#{id}/confirm", {}, options[:headers])
|
27
|
+
end
|
28
|
+
|
29
|
+
def delete_standing_order(id, options = {})
|
30
|
+
request(:delete, "standing_orders/#{id}", nil, options[:headers])
|
15
31
|
end
|
16
32
|
end
|
17
33
|
end
|
@@ -30,7 +30,7 @@ module FidorApi
|
|
30
30
|
|
31
31
|
def confirm_transfer(id, options = {})
|
32
32
|
check_transfer_support! :generic
|
33
|
-
request(:put, "/transfers/#{id}/confirm", {}, options
|
33
|
+
request(:put, "/transfers/#{id}/confirm", {}, options[:headers])
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
data/lib/fidor_api/model.rb
CHANGED
@@ -5,9 +5,11 @@ module FidorApi
|
|
5
5
|
autoload :Card, 'fidor_api/model/card'
|
6
6
|
autoload :ConfirmableAction, 'fidor_api/model/confirmable_action'
|
7
7
|
autoload :Customer, 'fidor_api/model/customer'
|
8
|
+
autoload :DebitReturn, 'fidor_api/model/debit_return'
|
8
9
|
autoload :Helpers, 'fidor_api/model/helpers'
|
9
10
|
autoload :Message, 'fidor_api/model/message'
|
10
11
|
autoload :Preauth, 'fidor_api/model/preauth'
|
12
|
+
autoload :ScheduledTransfer, 'fidor_api/model/scheduled_transfer'
|
11
13
|
autoload :StandingOrder, 'fidor_api/model/standing_order'
|
12
14
|
autoload :Transaction, 'fidor_api/model/transaction'
|
13
15
|
autoload :Transfer, 'fidor_api/model/transfer'
|
data/lib/fidor_api/model/base.rb
CHANGED
@@ -36,7 +36,8 @@ module FidorApi
|
|
36
36
|
next unless respond_to?(field) || field == :base
|
37
37
|
|
38
38
|
if key
|
39
|
-
|
39
|
+
# https://github.com/rails/rails/issues/28903
|
40
|
+
errors.add(field, key.to_sym, hash.symbolize_keys.except(:message))
|
40
41
|
else
|
41
42
|
errors.add(field, hash.delete('message'), hash.symbolize_keys)
|
42
43
|
end
|
data/lib/fidor_api/model/card.rb
CHANGED
@@ -0,0 +1,55 @@
|
|
1
|
+
require_relative './beneficiary_helper'
|
2
|
+
|
3
|
+
module FidorApi
|
4
|
+
module Model
|
5
|
+
class ScheduledTransfer < Model::Base
|
6
|
+
include BeneficiaryHelper
|
7
|
+
|
8
|
+
attribute :id, :string
|
9
|
+
attribute :account_id, :integer
|
10
|
+
attribute :external_uid, :string
|
11
|
+
attribute :amount, :integer
|
12
|
+
attribute :currency, :string
|
13
|
+
attribute :subject, :string
|
14
|
+
attribute :beneficiary, :json
|
15
|
+
attribute :state, :string
|
16
|
+
attribute :scheduled_date, :string
|
17
|
+
attribute :created_at, :string
|
18
|
+
|
19
|
+
attribute_decimal_methods :amount
|
20
|
+
|
21
|
+
def beneficiary=(value)
|
22
|
+
write_attribute(:beneficiary, value)
|
23
|
+
define_methods_for(SUPPORTED_ROUTING_TYPES[beneficiary['routing_type']])
|
24
|
+
end
|
25
|
+
|
26
|
+
def routing_type
|
27
|
+
@beneficiary ||= {}
|
28
|
+
@beneficiary.dig('routing_type')
|
29
|
+
end
|
30
|
+
|
31
|
+
def routing_type=(type)
|
32
|
+
raise Errors::NotSupported unless SUPPORTED_ROUTING_TYPES.key?(type)
|
33
|
+
|
34
|
+
@beneficiary ||= {}
|
35
|
+
@beneficiary['routing_type'] = type
|
36
|
+
define_methods_for(SUPPORTED_ROUTING_TYPES[type])
|
37
|
+
end
|
38
|
+
|
39
|
+
%w[bank contact].each do |category|
|
40
|
+
%w[name address_line_1 address_line_2 city country].each do |attribute|
|
41
|
+
define_method "#{category}_#{attribute}" do
|
42
|
+
@beneficiary ||= {}
|
43
|
+
@beneficiary.dig(category, attribute)
|
44
|
+
end
|
45
|
+
|
46
|
+
define_method "#{category}_#{attribute}=" do |value|
|
47
|
+
@beneficiary ||= {}
|
48
|
+
@beneficiary[category] ||= {}
|
49
|
+
@beneficiary[category][attribute] = value
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -12,6 +12,7 @@ module FidorApi
|
|
12
12
|
attribute :currency, :string
|
13
13
|
attribute :subject, :string
|
14
14
|
attribute :beneficiary, :json
|
15
|
+
attribute :state, :string
|
15
16
|
attribute :schedule, :json
|
16
17
|
|
17
18
|
attribute_decimal_methods :amount
|
@@ -45,6 +46,21 @@ module FidorApi
|
|
45
46
|
@schedule[attribute] = value
|
46
47
|
end
|
47
48
|
end
|
49
|
+
|
50
|
+
%w[bank contact].each do |category|
|
51
|
+
%w[name address_line_1 address_line_2 city country].each do |attribute|
|
52
|
+
define_method "#{category}_#{attribute}" do
|
53
|
+
@beneficiary ||= {}
|
54
|
+
@beneficiary.dig(category, attribute)
|
55
|
+
end
|
56
|
+
|
57
|
+
define_method "#{category}_#{attribute}=" do |value|
|
58
|
+
@beneficiary ||= {}
|
59
|
+
@beneficiary[category] ||= {}
|
60
|
+
@beneficiary[category][attribute] = value
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
48
64
|
end
|
49
65
|
end
|
50
66
|
end
|
@@ -6,14 +6,14 @@ module FidorApi
|
|
6
6
|
class Generic < Model::Base
|
7
7
|
include BeneficiaryHelper
|
8
8
|
|
9
|
-
attribute :id,
|
10
|
-
attribute :account_id,
|
11
|
-
attribute :external_uid,
|
12
|
-
attribute :amount,
|
13
|
-
attribute :currency,
|
14
|
-
attribute :subject,
|
15
|
-
attribute :beneficiary,
|
16
|
-
attribute :state,
|
9
|
+
attribute :id, :string
|
10
|
+
attribute :account_id, :string
|
11
|
+
attribute :external_uid, :string
|
12
|
+
attribute :amount, :integer
|
13
|
+
attribute :currency, :string
|
14
|
+
attribute :subject, :string
|
15
|
+
attribute :beneficiary, :json
|
16
|
+
attribute :state, :string
|
17
17
|
|
18
18
|
attribute_decimal_methods :amount
|
19
19
|
|
data/lib/fidor_api/version.rb
CHANGED
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fidor_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fidor Solutions AG
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '5.0'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '7'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '5.0'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '7'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: faraday
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,28 +78,28 @@ dependencies:
|
|
72
78
|
requirements:
|
73
79
|
- - "~>"
|
74
80
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
81
|
+
version: '11.0'
|
76
82
|
type: :development
|
77
83
|
prerelease: false
|
78
84
|
version_requirements: !ruby/object:Gem::Requirement
|
79
85
|
requirements:
|
80
86
|
- - "~>"
|
81
87
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
88
|
+
version: '11.0'
|
83
89
|
- !ruby/object:Gem::Dependency
|
84
90
|
name: rake
|
85
91
|
requirement: !ruby/object:Gem::Requirement
|
86
92
|
requirements:
|
87
93
|
- - "~>"
|
88
94
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
95
|
+
version: '13.0'
|
90
96
|
type: :development
|
91
97
|
prerelease: false
|
92
98
|
version_requirements: !ruby/object:Gem::Requirement
|
93
99
|
requirements:
|
94
100
|
- - "~>"
|
95
101
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
102
|
+
version: '13.0'
|
97
103
|
- !ruby/object:Gem::Dependency
|
98
104
|
name: rspec
|
99
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,14 +120,14 @@ dependencies:
|
|
114
120
|
requirements:
|
115
121
|
- - '='
|
116
122
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.
|
123
|
+
version: 0.75.0
|
118
124
|
type: :development
|
119
125
|
prerelease: false
|
120
126
|
version_requirements: !ruby/object:Gem::Requirement
|
121
127
|
requirements:
|
122
128
|
- - '='
|
123
129
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0.
|
130
|
+
version: 0.75.0
|
125
131
|
- !ruby/object:Gem::Dependency
|
126
132
|
name: simplecov
|
127
133
|
requirement: !ruby/object:Gem::Requirement
|
@@ -150,7 +156,7 @@ dependencies:
|
|
150
156
|
- - "~>"
|
151
157
|
- !ruby/object:Gem::Version
|
152
158
|
version: '3.4'
|
153
|
-
description:
|
159
|
+
description:
|
154
160
|
email:
|
155
161
|
- connect@fidor.com
|
156
162
|
executables: []
|
@@ -169,8 +175,10 @@ files:
|
|
169
175
|
- lib/fidor_api/client/dsl/cards.rb
|
170
176
|
- lib/fidor_api/client/dsl/confirmable_actions.rb
|
171
177
|
- lib/fidor_api/client/dsl/core_data.rb
|
178
|
+
- lib/fidor_api/client/dsl/debit_returns.rb
|
172
179
|
- lib/fidor_api/client/dsl/messages.rb
|
173
180
|
- lib/fidor_api/client/dsl/preauths.rb
|
181
|
+
- lib/fidor_api/client/dsl/scheduled_transfers.rb
|
174
182
|
- lib/fidor_api/client/dsl/standing_orders.rb
|
175
183
|
- lib/fidor_api/client/dsl/transactions.rb
|
176
184
|
- lib/fidor_api/client/dsl/transfers.rb
|
@@ -192,11 +200,13 @@ files:
|
|
192
200
|
- lib/fidor_api/model/card.rb
|
193
201
|
- lib/fidor_api/model/confirmable_action.rb
|
194
202
|
- lib/fidor_api/model/customer.rb
|
203
|
+
- lib/fidor_api/model/debit_return.rb
|
195
204
|
- lib/fidor_api/model/helpers.rb
|
196
205
|
- lib/fidor_api/model/helpers/action_view_support.rb
|
197
206
|
- lib/fidor_api/model/helpers/attribute_decimal_methods.rb
|
198
207
|
- lib/fidor_api/model/message.rb
|
199
208
|
- lib/fidor_api/model/preauth.rb
|
209
|
+
- lib/fidor_api/model/scheduled_transfer.rb
|
200
210
|
- lib/fidor_api/model/standing_order.rb
|
201
211
|
- lib/fidor_api/model/transaction.rb
|
202
212
|
- lib/fidor_api/model/transfer.rb
|
@@ -212,7 +222,7 @@ homepage: https://github.com/fidor/fidor_api
|
|
212
222
|
licenses:
|
213
223
|
- MIT
|
214
224
|
metadata: {}
|
215
|
-
post_install_message:
|
225
|
+
post_install_message:
|
216
226
|
rdoc_options: []
|
217
227
|
require_paths:
|
218
228
|
- lib
|
@@ -227,9 +237,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
227
237
|
- !ruby/object:Gem::Version
|
228
238
|
version: '0'
|
229
239
|
requirements: []
|
230
|
-
|
231
|
-
|
232
|
-
signing_key:
|
240
|
+
rubygems_version: 3.2.15
|
241
|
+
signing_key:
|
233
242
|
specification_version: 4
|
234
243
|
summary: Ruby client library to work with Fidor APIs
|
235
244
|
test_files: []
|