bunq_rb 0.0.19 → 0.1.0
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/README.md +11 -1
- data/bunq_rb.gemspec +1 -0
- data/lib/bunq_rb.rb +2 -0
- data/lib/bunq_rb/client.rb +41 -21
- data/lib/bunq_rb/logger.rb +9 -0
- data/lib/bunq_rb/objects/attachment_public.rb +6 -6
- data/lib/bunq_rb/objects/avatar.rb +8 -8
- data/lib/bunq_rb/objects/bunq_me_tab.rb +21 -0
- data/lib/bunq_rb/objects/card.rb +2 -12
- data/lib/bunq_rb/objects/cash_register.rb +4 -11
- data/lib/bunq_rb/objects/device.rb +2 -2
- data/lib/bunq_rb/objects/device_server.rb +2 -2
- data/lib/bunq_rb/objects/installation.rb +2 -2
- data/lib/bunq_rb/objects/{monetary_account.rb → monetary_account_bank.rb} +12 -8
- data/lib/bunq_rb/objects/payment.rb +4 -6
- data/lib/bunq_rb/objects/permitted_ip.rb +9 -18
- data/lib/bunq_rb/objects/request_inquiry.rb +6 -7
- data/lib/bunq_rb/objects/user.rb +2 -2
- data/lib/bunq_rb/version.rb +1 -1
- metadata +19 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adeb4222d853387f782b2a0419dcd2e2bc8d9be6
|
4
|
+
data.tar.gz: 485b94b9039508f7437116240d142eadc04515a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0402358accffc3c200357cc337fe192f7ca8ef99d76a5c116a2c9e09c8f40484a5e84810ea80d48519a5b3ba6c72dc3e6d7326964fc7331d4b1dc58f93622c7
|
7
|
+
data.tar.gz: 92036e5a55c9494636433ced9b8e86585130c0139f6d552809a9e1fd85c369e5b1ffa92e6e89ea115543f3ce10feff521456084655e7a15664f524d1e31e32f2
|
data/README.md
CHANGED
@@ -265,7 +265,17 @@ TODO
|
|
265
265
|
|
266
266
|
##### LIST
|
267
267
|
|
268
|
-
|
268
|
+
```ruby
|
269
|
+
user_id = 1913
|
270
|
+
monetary_account_id = 1933
|
271
|
+
bunq_me_tabs = BunqRb::BunqMeTab.all(user_id, monetary_account_id)
|
272
|
+
|
273
|
+
# OR
|
274
|
+
|
275
|
+
user = BunqRb::User.find(1913)
|
276
|
+
monetary_accounts = user.monetary_accounts
|
277
|
+
bunq_me_tabs = monetary_accounts.first.bunq_me_tabs
|
278
|
+
```
|
269
279
|
|
270
280
|
### DRAFT PAYMENTS
|
271
281
|
|
data/bunq_rb.gemspec
CHANGED
data/lib/bunq_rb.rb
CHANGED
data/lib/bunq_rb/client.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require "addressable/uri"
|
2
1
|
require "securerandom"
|
3
2
|
require "faraday"
|
4
3
|
require "faraday_middleware"
|
@@ -17,32 +16,47 @@ module BunqRb
|
|
17
16
|
calls.each do |call|
|
18
17
|
case call
|
19
18
|
when :get
|
20
|
-
|
21
|
-
full_uri = [uri, args.first].join("/")
|
22
|
-
response = Client.send_method(:get, full_uri)
|
23
|
-
new(response[0].values.first)
|
24
|
-
end
|
19
|
+
implements_get
|
25
20
|
when :list
|
26
|
-
|
27
|
-
page_size = BunqRb.configuration.page_size
|
28
|
-
response = Client.send_method(:get, "#{uri}?count=#{page_size}")
|
29
|
-
response.map { |resp| new(resp.values.first) }
|
30
|
-
end
|
31
|
-
when :post
|
32
|
-
define_singleton_method(:create) do |*args|
|
33
|
-
response = Client.send_method(:post, uri, args)
|
34
|
-
new(response[0]["Id"])
|
35
|
-
end
|
36
|
-
when :put
|
37
|
-
define_singleton_method(:update) do |*args|
|
38
|
-
response = Client.send_method(:post, uri, args)
|
39
|
-
new(response[0]["Id"])
|
40
|
-
end
|
21
|
+
implements_list
|
41
22
|
else
|
42
23
|
puts "ERROR for: #{call}"
|
43
24
|
end
|
44
25
|
end
|
45
26
|
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def implements_get
|
31
|
+
define_singleton_method(:find) do |*args|
|
32
|
+
id = args.pop
|
33
|
+
full_uri = [url(*args), id].join("/")
|
34
|
+
response = Client.send_method(:get, full_uri)
|
35
|
+
new(response[0].values.first)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def implements_list
|
40
|
+
define_singleton_method(:all) do |*args|
|
41
|
+
Enumerator.new do |yielder|
|
42
|
+
older_url = counted_url(args)
|
43
|
+
loop do
|
44
|
+
results = Client.raw_send_method(:get, older_url)
|
45
|
+
json = JSON.parse(results.body)
|
46
|
+
json["Response"].map { |item| yielder << new(item.values.first) }
|
47
|
+
raise StopIteration if json["Pagination"].nil? || json["Pagination"]["older_url"].nil?
|
48
|
+
older_url = json["Pagination"]["older_url"]
|
49
|
+
end
|
50
|
+
end.lazy
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def counted_url(args)
|
55
|
+
page_size = BunqRb.configuration.page_size
|
56
|
+
arged_url = Addressable::Template.new("#{url(*args)}{?query*}")
|
57
|
+
params = page_size == 10 ? {} : { count: page_size }
|
58
|
+
arged_url.expand(query: params).to_s
|
59
|
+
end
|
46
60
|
end
|
47
61
|
end
|
48
62
|
end
|
@@ -63,10 +77,16 @@ module BunqRb
|
|
63
77
|
end
|
64
78
|
|
65
79
|
def self.send_method(method, url, payload = {})
|
80
|
+
BunqRb.logger.debug "#{method.upcase} #{url}"
|
66
81
|
faraday_response = connection.send(method, url, payload)
|
67
82
|
json_response = JSON.parse(faraday_response.body)
|
68
83
|
raise json_response["Error"].first["error_description"] if json_response.key?("Error")
|
69
84
|
json_response["Response"]
|
70
85
|
end
|
86
|
+
|
87
|
+
def self.raw_send_method(method, url, payload = {})
|
88
|
+
BunqRb.logger.debug "#{method.upcase} #{url}"
|
89
|
+
connection.send(method, url, payload)
|
90
|
+
end
|
71
91
|
end
|
72
92
|
end
|
@@ -1,7 +1,9 @@
|
|
1
1
|
module BunqRb
|
2
2
|
# AttachmentPublic
|
3
3
|
class AttachmentPublic
|
4
|
-
|
4
|
+
include BunqRb::Shared
|
5
|
+
|
6
|
+
implements :get
|
5
7
|
|
6
8
|
attr_reader :uuid
|
7
9
|
|
@@ -10,14 +12,12 @@ module BunqRb
|
|
10
12
|
end
|
11
13
|
|
12
14
|
def self.create(hash = {})
|
13
|
-
response = Client.send_method(:post,
|
15
|
+
response = Client.send_method(:post, url, hash)
|
14
16
|
new(response[0]["Uuid"])
|
15
17
|
end
|
16
18
|
|
17
|
-
def self.
|
18
|
-
|
19
|
-
response = Client.send_method(:get, uri)
|
20
|
-
new(response[0]["AttachmentPublic"])
|
19
|
+
def self.url
|
20
|
+
"/v1/attachment-public"
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
@@ -1,7 +1,9 @@
|
|
1
1
|
module BunqRb
|
2
2
|
# Avatar
|
3
3
|
class Avatar
|
4
|
-
|
4
|
+
include BunqRb::Shared
|
5
|
+
|
6
|
+
implements :get
|
5
7
|
|
6
8
|
attr_reader :uuid
|
7
9
|
|
@@ -9,15 +11,13 @@ module BunqRb
|
|
9
11
|
@uuid = hsh["uuid"]
|
10
12
|
end
|
11
13
|
|
12
|
-
def self.
|
13
|
-
|
14
|
-
new(response[0]["Uuid"])
|
14
|
+
def self.url
|
15
|
+
"/v1/avatar"
|
15
16
|
end
|
16
17
|
|
17
|
-
def self.
|
18
|
-
|
19
|
-
response
|
20
|
-
new(response[0]["Avatar"])
|
18
|
+
def self.create(hash = {})
|
19
|
+
response = Client.send_method(:post, url, hash)
|
20
|
+
new(response[0]["Uuid"])
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module BunqRb
|
2
|
+
# Avatar
|
3
|
+
class BunqMeTab
|
4
|
+
include BunqRb::Shared
|
5
|
+
|
6
|
+
implements :list
|
7
|
+
|
8
|
+
attr_reader :id, :created, :updated, :status
|
9
|
+
|
10
|
+
def initialize(hsh = {})
|
11
|
+
@id = hsh["id"]
|
12
|
+
@status = hsh["status"]
|
13
|
+
@created = Time.parse(hsh["created"])
|
14
|
+
@updated = Time.parse(hsh["updated"])
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.url(user_id, monetary_account_id)
|
18
|
+
"/v1/user/#{user_id}/monetary-account/#{monetary_account_id}/bunqme-tab"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/bunq_rb/objects/card.rb
CHANGED
@@ -3,26 +3,16 @@ module BunqRb
|
|
3
3
|
class Card
|
4
4
|
include BunqRb::Shared
|
5
5
|
|
6
|
+
implements :list, :get
|
7
|
+
|
6
8
|
attr_reader :id
|
7
9
|
|
8
10
|
def initialize(hsh = {})
|
9
11
|
@id = hsh["id"]
|
10
12
|
end
|
11
13
|
|
12
|
-
def self.all(user_id)
|
13
|
-
page_size = BunqRb.configuration.page_size
|
14
|
-
response = Client.send_method(:get, "#{url(user_id)}?count=#{page_size}")
|
15
|
-
response.map { |resp| new(resp["CardDebit"]) }
|
16
|
-
end
|
17
|
-
|
18
14
|
def self.url(user_id)
|
19
15
|
"/v1/user/#{user_id}/card"
|
20
16
|
end
|
21
|
-
|
22
|
-
def self.find(user_id, id)
|
23
|
-
uri = [url(user_id), id].join("/")
|
24
|
-
response = Client.send_method(:get, uri)
|
25
|
-
new(response[0]["CardDebit"])
|
26
|
-
end
|
27
17
|
end
|
28
18
|
end
|
@@ -3,7 +3,7 @@ module BunqRb
|
|
3
3
|
class CashRegister
|
4
4
|
include BunqRb::Shared
|
5
5
|
|
6
|
-
implements :
|
6
|
+
implements :list, :get
|
7
7
|
|
8
8
|
attr_reader :id, :name, :status
|
9
9
|
|
@@ -13,20 +13,13 @@ module BunqRb
|
|
13
13
|
@status = hsh["status"]
|
14
14
|
end
|
15
15
|
|
16
|
-
def self.find(id, user_id, monetary_account_id)
|
17
|
-
url = uri(user_id, monetary_account_id)
|
18
|
-
full_path = [url, id].join("/")
|
19
|
-
response = Client.send_method(:get, full_path)
|
20
|
-
new(response[0]["CashRegister"])
|
21
|
-
end
|
22
|
-
|
23
16
|
def self.create(hsh = {}, user_id, monetary_account_id)
|
24
|
-
|
25
|
-
response = Client.send_method(:post,
|
17
|
+
uri = url(user_id, monetary_account_id)
|
18
|
+
response = Client.send_method(:post, uri, hsh)
|
26
19
|
response[0]["Id"]
|
27
20
|
end
|
28
21
|
|
29
|
-
def self.
|
22
|
+
def self.url(user_id, monetary_account_id)
|
30
23
|
"/v1/user/#{user_id}/monetary-account/#{monetary_account_id}/cash-register"
|
31
24
|
end
|
32
25
|
end
|
@@ -11,12 +11,12 @@ module BunqRb
|
|
11
11
|
@id = hsh["id"]
|
12
12
|
end
|
13
13
|
|
14
|
-
def self.
|
14
|
+
def self.url
|
15
15
|
"/v1/device-server"
|
16
16
|
end
|
17
17
|
|
18
18
|
def self.create(hash = {})
|
19
|
-
response = Client.send_method(:post,
|
19
|
+
response = Client.send_method(:post, url, hash)
|
20
20
|
new(response[0]["Id"])
|
21
21
|
end
|
22
22
|
end
|
@@ -17,11 +17,11 @@ module BunqRb
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def self.create(hash = {})
|
20
|
-
response = Client.send_method(:post,
|
20
|
+
response = Client.send_method(:post, url, hash)
|
21
21
|
[new(response[0]["Id"]), response[1]["Token"], response[2]["ServerPublicKey"]]
|
22
22
|
end
|
23
23
|
|
24
|
-
def self.
|
24
|
+
def self.url
|
25
25
|
"/v1/installation"
|
26
26
|
end
|
27
27
|
end
|
@@ -1,9 +1,14 @@
|
|
1
1
|
module BunqRb
|
2
|
-
#
|
3
|
-
class
|
2
|
+
# MonetaryAccountBank
|
3
|
+
class MonetaryAccountBank
|
4
|
+
include BunqRb::Shared
|
5
|
+
|
6
|
+
implements :list
|
7
|
+
|
4
8
|
attr_reader :id, :currency, :description
|
5
9
|
|
6
10
|
def initialize(hsh = {})
|
11
|
+
# puts hsh
|
7
12
|
@id = hsh["id"]
|
8
13
|
@user_id = hsh["user_id"]
|
9
14
|
@currency = hsh["currency"]
|
@@ -11,16 +16,15 @@ module BunqRb
|
|
11
16
|
end
|
12
17
|
|
13
18
|
def self.url(user_id)
|
14
|
-
"/v1/user/#{user_id}/monetary-account"
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.all(user_id)
|
18
|
-
response = Client.send_method(:get, url(user_id))
|
19
|
-
response.map { |resp| new(resp["MonetaryAccountBank"]) }
|
19
|
+
"/v1/user/#{user_id}/monetary-account-bank"
|
20
20
|
end
|
21
21
|
|
22
22
|
def payments
|
23
23
|
BunqRb::Payment.all(@user_id, @id)
|
24
24
|
end
|
25
|
+
|
26
|
+
def bunq_me_tabs
|
27
|
+
BunqRb::BunqMeTab.all(@user_id, @id)
|
28
|
+
end
|
25
29
|
end
|
26
30
|
end
|
@@ -1,6 +1,10 @@
|
|
1
1
|
module BunqRb
|
2
2
|
# Payment
|
3
3
|
class Payment
|
4
|
+
include BunqRb::Shared
|
5
|
+
|
6
|
+
implements :list
|
7
|
+
|
4
8
|
attr_reader :id, :created, :updated, :description, :amount
|
5
9
|
|
6
10
|
def initialize(hsh = {})
|
@@ -14,11 +18,5 @@ module BunqRb
|
|
14
18
|
def self.url(user_id, monetary_account_id)
|
15
19
|
"/v1/user/#{user_id}/monetary-account/#{monetary_account_id}/payment"
|
16
20
|
end
|
17
|
-
|
18
|
-
def self.all(user_id, monetary_account_id)
|
19
|
-
page_size = BunqRb.configuration.page_size
|
20
|
-
response = Client.send_method(:get, "#{url(user_id, monetary_account_id)}?count=#{page_size}")
|
21
|
-
response.map { |resp| new(resp["Payment"]) }
|
22
|
-
end
|
23
21
|
end
|
24
22
|
end
|
@@ -1,6 +1,10 @@
|
|
1
1
|
module BunqRb
|
2
2
|
# PermittedIp
|
3
3
|
class PermittedIp
|
4
|
+
include BunqRb::Shared
|
5
|
+
|
6
|
+
implements :get, :list
|
7
|
+
|
4
8
|
attr_reader :ip, :status, :id
|
5
9
|
|
6
10
|
def initialize(hsh = {})
|
@@ -9,32 +13,19 @@ module BunqRb
|
|
9
13
|
@status = hsh["status"]
|
10
14
|
end
|
11
15
|
|
12
|
-
def self.
|
16
|
+
def self.url(user_id, credential_password_id)
|
13
17
|
"/v1/user/#{user_id}/credential-password-ip/#{credential_password_id}/ip"
|
14
18
|
end
|
15
19
|
|
16
20
|
def self.create(hsh = {}, user_id, credential_password_id)
|
17
|
-
|
18
|
-
response = Client.send_method(:post,
|
21
|
+
uri = url(user_id, credential_password_id)
|
22
|
+
response = Client.send_method(:post, uri, hsh)
|
19
23
|
response[0]["Id"]
|
20
24
|
end
|
21
25
|
|
22
|
-
def self.all(user_id, credential_password_id)
|
23
|
-
url = uri(user_id, credential_password_id)
|
24
|
-
response = Client.send_method(:get, url)
|
25
|
-
response.map { |resp| new(resp["PermittedIp"]) }
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.find(id, user_id, credential_password_id)
|
29
|
-
url = uri(user_id, credential_password_id)
|
30
|
-
full_path = [url, id].join("/")
|
31
|
-
response = Client.send_method(:get, full_path)
|
32
|
-
new(response[0]["PermittedIp"])
|
33
|
-
end
|
34
|
-
|
35
26
|
def update(hsh = {}, user_id, credential_password_id)
|
36
|
-
|
37
|
-
full_path = [
|
27
|
+
uri = self.class.url(user_id, credential_password_id)
|
28
|
+
full_path = [uri, id].join("/")
|
38
29
|
response = Client.send_method(:put, full_path, hsh)
|
39
30
|
response[0]["Id"]
|
40
31
|
end
|
@@ -1,6 +1,10 @@
|
|
1
1
|
module BunqRb
|
2
2
|
# RequestInquiry
|
3
3
|
class RequestInquiry
|
4
|
+
include BunqRb::Shared
|
5
|
+
|
6
|
+
implements :get
|
7
|
+
|
4
8
|
attr_reader :id, :status
|
5
9
|
|
6
10
|
def initialize(hsh = {})
|
@@ -8,13 +12,8 @@ module BunqRb
|
|
8
12
|
@status = hsh["status"]
|
9
13
|
end
|
10
14
|
|
11
|
-
def self.url(user_id, monetary_account_id
|
12
|
-
"/v1/user/#{user_id}/monetary-account/#{monetary_account_id}/request-inquiry
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.find(id)
|
16
|
-
response = Client.send_method(:get, url(1913, 1933, id))
|
17
|
-
new(response[0]["RequestInquiry"])
|
15
|
+
def self.url(user_id, monetary_account_id)
|
16
|
+
"/v1/user/#{user_id}/monetary-account/#{monetary_account_id}/request-inquiry"
|
18
17
|
end
|
19
18
|
|
20
19
|
def self.create(hash = {})
|
data/lib/bunq_rb/objects/user.rb
CHANGED
@@ -12,12 +12,12 @@ module BunqRb
|
|
12
12
|
@display_name = hsh["display_name"]
|
13
13
|
end
|
14
14
|
|
15
|
-
def self.
|
15
|
+
def self.url
|
16
16
|
"/v1/user"
|
17
17
|
end
|
18
18
|
|
19
19
|
def monetary_accounts
|
20
|
-
BunqRb::
|
20
|
+
BunqRb::MonetaryAccountBank.all(@id)
|
21
21
|
end
|
22
22
|
|
23
23
|
def cards
|
data/lib/bunq_rb/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bunq_rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dunya Kirkali
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-03-
|
12
|
+
date: 2018-03-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: spyke
|
@@ -39,6 +39,20 @@ dependencies:
|
|
39
39
|
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: addressable
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
42
56
|
description: Bunq API Client
|
43
57
|
email:
|
44
58
|
- dunyakirkali@gmail.com
|
@@ -64,16 +78,18 @@ files:
|
|
64
78
|
- lib/bunq_rb/client/headers.rb
|
65
79
|
- lib/bunq_rb/client/sign_request.rb
|
66
80
|
- lib/bunq_rb/configuration.rb
|
81
|
+
- lib/bunq_rb/logger.rb
|
67
82
|
- lib/bunq_rb/objects/attachment_monetary_account.rb
|
68
83
|
- lib/bunq_rb/objects/attachment_public.rb
|
69
84
|
- lib/bunq_rb/objects/avatar.rb
|
85
|
+
- lib/bunq_rb/objects/bunq_me_tab.rb
|
70
86
|
- lib/bunq_rb/objects/card.rb
|
71
87
|
- lib/bunq_rb/objects/cash_register.rb
|
72
88
|
- lib/bunq_rb/objects/device.rb
|
73
89
|
- lib/bunq_rb/objects/device_server.rb
|
74
90
|
- lib/bunq_rb/objects/installation.rb
|
75
91
|
- lib/bunq_rb/objects/installation_server_public_key.rb
|
76
|
-
- lib/bunq_rb/objects/
|
92
|
+
- lib/bunq_rb/objects/monetary_account_bank.rb
|
77
93
|
- lib/bunq_rb/objects/payment.rb
|
78
94
|
- lib/bunq_rb/objects/permitted_ip.rb
|
79
95
|
- lib/bunq_rb/objects/request_inquiry.rb
|