modulr-api 0.0.1 → 0.0.2

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
  SHA256:
3
- metadata.gz: 3be26f94ee469da0f933065d0840bc32db148bac2956b482ea99f1c8a09adfab
4
- data.tar.gz: fc2825106eee34ff90f82a176a2ce82617601ee4622ebf4fd6a0b3071295aa8c
3
+ metadata.gz: b54a833f3b383b74ce980e0dc7ee4cdf7d06357bc6eea4738dc09632a96155ab
4
+ data.tar.gz: 347912768a625128baedcd11a7bc8613f4ba49947a8f398839940ad338760f95
5
5
  SHA512:
6
- metadata.gz: cedec2c32074b66b9ebe2141340dce522ec8eea28fbc75595a43262cc44376da3ebbd4cc904ad35ca45d46f3a8b66af97666f6e280ce4eade667f332a90d3111
7
- data.tar.gz: 1ff92c2a5adb6d75d6ec4288cba1dd75483ec19d776cb31503cdf659d6e87699567e714f8b2821f62b898262f3ae3512e30f333aac407ec0bc5da8bddba3ac49
6
+ metadata.gz: 1adb50d3fbdb36417081a48548d786943afcf0fb4e03275cabf80c080e72c60445b64900691d581b86cdd18b25a3a794f6515caed8e71997e2a96609ab5dcd3b
7
+ data.tar.gz: ef156ce246324903b9f3c6aa113de55a69a8cc8572c9663437091a29fb6bc20c80d848813f0bddd0ddcd9968c069a5ac8a1ea453ec85945692055530aa25669c
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- modulr-api (0.0.1)
4
+ modulr-api (0.0.2)
5
5
  faraday (~> 1.0)
6
6
  faraday_middleware (~> 1.0)
7
7
 
@@ -10,29 +10,33 @@ GEM
10
10
  specs:
11
11
  ast (2.4.2)
12
12
  diff-lcs (1.5.0)
13
- faraday (1.8.0)
13
+ faraday (1.10.0)
14
14
  faraday-em_http (~> 1.0)
15
15
  faraday-em_synchrony (~> 1.0)
16
16
  faraday-excon (~> 1.1)
17
- faraday-httpclient (~> 1.0.1)
17
+ faraday-httpclient (~> 1.0)
18
+ faraday-multipart (~> 1.0)
18
19
  faraday-net_http (~> 1.0)
19
- faraday-net_http_persistent (~> 1.1)
20
+ faraday-net_http_persistent (~> 1.0)
20
21
  faraday-patron (~> 1.0)
21
22
  faraday-rack (~> 1.0)
22
- multipart-post (>= 1.2, < 3)
23
+ faraday-retry (~> 1.0)
23
24
  ruby2_keywords (>= 0.0.4)
24
25
  faraday-em_http (1.0.0)
25
26
  faraday-em_synchrony (1.0.0)
26
27
  faraday-excon (1.1.0)
27
28
  faraday-httpclient (1.0.1)
29
+ faraday-multipart (1.0.4)
30
+ multipart-post (~> 2)
28
31
  faraday-net_http (1.0.1)
29
32
  faraday-net_http_persistent (1.2.0)
30
33
  faraday-patron (1.0.0)
31
34
  faraday-rack (1.0.0)
35
+ faraday-retry (1.0.3)
32
36
  faraday_middleware (1.2.0)
33
37
  faraday (~> 1.0)
34
38
  json (2.6.2)
35
- multipart-post (2.1.1)
39
+ multipart-post (2.2.3)
36
40
  parallel (1.22.1)
37
41
  parser (3.1.2.0)
38
42
  ast (~> 2.4.1)
@@ -78,6 +82,7 @@ GEM
78
82
  unicode-display_width (2.2.0)
79
83
 
80
84
  PLATFORMS
85
+ x86_64-darwin-20
81
86
  x86_64-linux
82
87
 
83
88
  DEPENDENCIES
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Modulr
4
+ module API
5
+ class PaymentsService < Service
6
+ def create( # rubocop:disable Metrics/ParameterLists
7
+ account_id:,
8
+ currency:,
9
+ amount:,
10
+ destination:,
11
+ reference:,
12
+ options: {}
13
+ )
14
+ data = {
15
+ sourceAccountId: account_id,
16
+ currency: currency,
17
+ amount: amount,
18
+ reference: reference,
19
+ destination: {
20
+ type: destination[:type],
21
+ iban: destination[:iban],
22
+ name: destination[:name],
23
+ },
24
+ }
25
+ data[:externalReference] = options[:external_reference] if options[:external_reference]
26
+
27
+ response = client.post("/payments", data, options)
28
+ Resources::Payments::Payment.new(response, response.body[:data])
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,11 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "service"
4
+ require_relative "accounts_service"
5
+ require_relative "payments_service"
6
+
3
7
  module Modulr
4
8
  module API
5
9
  module Services
6
10
  def accounts
7
11
  @services[:accounts] ||= API::AccountsService.new(self)
8
12
  end
13
+
14
+ def payments
15
+ @services[:payments] ||= API::PaymentsService.new(self)
16
+ end
9
17
  end
10
18
  end
11
19
  end
data/lib/modulr/client.rb CHANGED
@@ -4,11 +4,15 @@ require "faraday"
4
4
  require "faraday_middleware"
5
5
  require "json"
6
6
 
7
+ require_relative "api/services"
8
+ require_relative "resources/base"
9
+
7
10
  module Modulr
8
11
  class Client
9
12
  include Modulr::API::Services
10
13
 
11
- BASE_URL = "https://api-sandbox.modulrfinance.com/api-sandbox"
14
+ SANDBOX_URL = "https://api-sandbox.modulrfinance.com/api-sandbox"
15
+ BASE_URL = SANDBOX_URL
12
16
 
13
17
  attr_reader :base_url, :origin, :proxy, :username, :logger_enabled
14
18
 
@@ -70,6 +74,16 @@ module Modulr
70
74
  end
71
75
 
72
76
  def add_auth_options!(options)
77
+ return sandbox_auth_options(options) if @base_url.eql?(SANDBOX_URL)
78
+
79
+ auth_options(options)
80
+ end
81
+
82
+ def sandbox_auth_options(options)
83
+ options[:headers][:authorization] = @apikey
84
+ end
85
+
86
+ def auth_options(options)
73
87
  signature = Auth::Signature.calculate(apikey: @apikey, apisecret: @apisecret)
74
88
  options[:headers][:authorization] = signature.authorization
75
89
  options[:headers][:date] = signature.timestamp
@@ -23,3 +23,7 @@ module Modulr
23
23
  end
24
24
  end
25
25
  end
26
+
27
+ require_relative "collection"
28
+ require_relative "accounts/account"
29
+ require_relative "payments/payment"
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Modulr
4
+ module Resources
5
+ module Payments
6
+ class Payment < Base
7
+ map :id, [:id, :payment_reference_id]
8
+ map :status, :status
9
+ map :externalReference, :external_reference
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Modulr
4
- VERSION = "0.0.1"
4
+ VERSION = "0.0.2"
5
5
  end
data/lib/modulr.rb CHANGED
@@ -3,17 +3,6 @@
3
3
  require_relative "modulr/version"
4
4
 
5
5
  require_relative "modulr/auth/signature"
6
-
7
- require_relative "modulr/api/service"
8
- require_relative "modulr/api/services"
9
- require_relative "modulr/api/accounts_service"
10
-
11
- require_relative "modulr/resources/base"
12
- require_relative "modulr/resources/collection"
13
- require_relative "modulr/resources/accounts/account"
14
- require_relative "modulr/resources/accounts/identifier"
15
- require_relative "modulr/resources/accounts/identifiers"
16
-
17
6
  require_relative "modulr/client"
18
7
 
19
8
  module Modulr
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: modulr-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aitor García Rey
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-16 00:00:00.000000000 Z
11
+ date: 2022-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -157,6 +157,7 @@ files:
157
157
  - bin/setup
158
158
  - lib/modulr.rb
159
159
  - lib/modulr/api/accounts_service.rb
160
+ - lib/modulr/api/payments_service.rb
160
161
  - lib/modulr/api/service.rb
161
162
  - lib/modulr/api/services.rb
162
163
  - lib/modulr/auth/signature.rb
@@ -166,6 +167,7 @@ files:
166
167
  - lib/modulr/resources/accounts/identifiers.rb
167
168
  - lib/modulr/resources/base.rb
168
169
  - lib/modulr/resources/collection.rb
170
+ - lib/modulr/resources/payments/payment.rb
169
171
  - lib/modulr/version.rb
170
172
  - modulr.gemspec
171
173
  - sig/modulr.rbs