truelayer 0.1.0 → 0.1.1
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/Gemfile.lock +1 -1
- data/lib/truelayer/account.rb +1 -1
- data/lib/truelayer/card.rb +20 -0
- data/lib/truelayer/cards_repository.rb +49 -0
- data/lib/truelayer/client.rb +4 -0
- data/lib/truelayer/configuration.rb +1 -0
- data/lib/truelayer/errors.rb +4 -0
- data/lib/truelayer/token.rb +4 -0
- data/lib/truelayer/transaction.rb +3 -3
- data/lib/truelayer/version.rb +1 -1
- data/lib/truelayer/webhook_payload.rb +2 -2
- data/lib/truelayer.rb +1 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f918a55249b4f60e7cfd0db32e7882dc83882d59a17ec852c77e453bd2107ab
|
4
|
+
data.tar.gz: 633d1c7b52a4c1ee58ed9726f7ce6ced3f833b62d5df41b54e5426e830b77a1a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f9ff9a540971e21488b44ff00a28c9226d6819115879fbbc47fe09917f3696e54b02afa558aaae50c532ef24be676e972829b9a0f9d30951a16079f2f21d1ae
|
7
|
+
data.tar.gz: 97040c921587b73c3f2cb12c1156ef98ff69c4260e1dd861172ffe0e123194ce18c4bb2ca513a5484bd1ab281c7aeb3c8d5f462bacc078a86a4eda7284af4ffc
|
data/Gemfile.lock
CHANGED
data/lib/truelayer/account.rb
CHANGED
@@ -7,7 +7,7 @@ require 'truelayer/account_number'
|
|
7
7
|
module Truelayer
|
8
8
|
class Account < BaseModel
|
9
9
|
attributes :update_timestamp, :account_id, :account_type, :display_name,
|
10
|
-
|
10
|
+
:currency, :account_number, :provider, :provider_id
|
11
11
|
|
12
12
|
def self.build(json:)
|
13
13
|
super.tap do |record|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'time'
|
4
|
+
require 'truelayer/base_model'
|
5
|
+
|
6
|
+
module Truelayer
|
7
|
+
class Card < BaseModel
|
8
|
+
attributes :update_timestamp, :account_id, :card_type,
|
9
|
+
:card_network, :partial_card_number, :name_on_card,
|
10
|
+
:valid_from, :valid_to, :display_name,
|
11
|
+
:currency, :provider, :provider_id
|
12
|
+
|
13
|
+
def self.build(json:)
|
14
|
+
super.tap do |record|
|
15
|
+
record.update_timestamp = Time.parse(record.update_timestamp) if record.update_timestamp
|
16
|
+
record.provider_id = record.provider[:provider_id] if record.provider
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'truelayer/base_repository'
|
4
|
+
require 'truelayer/response'
|
5
|
+
require 'truelayer/card'
|
6
|
+
require 'truelayer/balance'
|
7
|
+
require 'truelayer/transaction'
|
8
|
+
|
9
|
+
module Truelayer
|
10
|
+
class CardsRepository < BaseRepository
|
11
|
+
def all_cards(webhook_uri: nil)
|
12
|
+
response = get('/data/v1/cards', params: async_params(webhook_uri))
|
13
|
+
|
14
|
+
Response.build_with_results(json: response.body, results_class: Card)
|
15
|
+
end
|
16
|
+
|
17
|
+
def find_card(card_id, webhook_uri: nil)
|
18
|
+
url = format_url('/data/v1/cards/:card_id', card_id: card_id)
|
19
|
+
response = get(url, params: async_params(webhook_uri))
|
20
|
+
|
21
|
+
Response.build_with_results(json: response.body, results_class: Card)
|
22
|
+
end
|
23
|
+
|
24
|
+
def current_balance(card_id, webhook_uri: nil)
|
25
|
+
url = format_url('/data/v1/cards/:card_id/balance', card_id: card_id)
|
26
|
+
response = get(url, params: async_params(webhook_uri))
|
27
|
+
|
28
|
+
Response.build_with_results(json: response.body, results_class: Balance)
|
29
|
+
end
|
30
|
+
|
31
|
+
def transactions(card_id, from: nil, to: nil, webhook_uri: nil)
|
32
|
+
url = format_url('/data/v1/cards/:card_id/transactions', card_id: card_id)
|
33
|
+
response = get(url, params: { from: from, to: to }.merge(async_params(webhook_uri)))
|
34
|
+
|
35
|
+
Response.build_with_results(json: response.body, results_class: Transaction)
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def async_params(webhook_uri)
|
41
|
+
{}.tap do |params|
|
42
|
+
if webhook_uri
|
43
|
+
params[:async] = true
|
44
|
+
params[:webhook_uri] = webhook_uri
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/lib/truelayer/client.rb
CHANGED
@@ -50,8 +50,12 @@ module Truelayer
|
|
50
50
|
raise InvalidRequestError, response.body
|
51
51
|
when 401
|
52
52
|
raise UnauthorizedError, response.body
|
53
|
+
when 403
|
54
|
+
raise AccessDeniedError, response.body
|
53
55
|
when 404
|
54
56
|
raise NotFoundError, response.body
|
57
|
+
when 501
|
58
|
+
raise EndpointNotSupportedError, response.body
|
55
59
|
else
|
56
60
|
raise GenericError, "#{response.status}: #{response.body}"
|
57
61
|
end
|
data/lib/truelayer/errors.rb
CHANGED
data/lib/truelayer/token.rb
CHANGED
@@ -8,9 +8,9 @@ require 'truelayer/transaction_meta'
|
|
8
8
|
module Truelayer
|
9
9
|
class Transaction < BaseModel
|
10
10
|
attributes :transaction_id, :normalised_provider_transaction_id, :provider_transaction_id,
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
:timestamp, :description, :amount, :currency,
|
12
|
+
:transaction_type, :transaction_category, :transaction_classification,
|
13
|
+
:merchant_name, :running_balance, :meta
|
14
14
|
|
15
15
|
def self.build(json:)
|
16
16
|
super.tap do |record|
|
data/lib/truelayer/version.rb
CHANGED
@@ -5,8 +5,8 @@ require 'truelayer/base_model'
|
|
5
5
|
module Truelayer
|
6
6
|
class WebhookPayload < BaseModel
|
7
7
|
attributes :request_timestamp, :request_uri,
|
8
|
-
|
9
|
-
|
8
|
+
:credentials_id, :results_uri, :status, :task_id,
|
9
|
+
:error, :error_description
|
10
10
|
|
11
11
|
def success?
|
12
12
|
status == 'Succeeded'
|
data/lib/truelayer.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: truelayer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Finpoint
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-06-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -190,6 +190,8 @@ files:
|
|
190
190
|
- lib/truelayer/balance.rb
|
191
191
|
- lib/truelayer/base_model.rb
|
192
192
|
- lib/truelayer/base_repository.rb
|
193
|
+
- lib/truelayer/card.rb
|
194
|
+
- lib/truelayer/cards_repository.rb
|
193
195
|
- lib/truelayer/client.rb
|
194
196
|
- lib/truelayer/configuration.rb
|
195
197
|
- lib/truelayer/errors.rb
|