tikkie-api 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.
Files changed (42) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +36 -0
  5. data/.travis.yml +7 -0
  6. data/Gemfile +10 -0
  7. data/Gemfile.lock +67 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +150 -0
  10. data/Rakefile +10 -0
  11. data/bin/console +15 -0
  12. data/bin/setup +8 -0
  13. data/lib/tikkie/api.rb +32 -0
  14. data/lib/tikkie/api/access_token.rb +19 -0
  15. data/lib/tikkie/api/authentication.rb +60 -0
  16. data/lib/tikkie/api/client.rb +24 -0
  17. data/lib/tikkie/api/configuration.rb +62 -0
  18. data/lib/tikkie/api/exception.rb +22 -0
  19. data/lib/tikkie/api/request.rb +57 -0
  20. data/lib/tikkie/api/requests/payment_requests.rb +56 -0
  21. data/lib/tikkie/api/requests/platforms.rb +32 -0
  22. data/lib/tikkie/api/requests/users.rb +31 -0
  23. data/lib/tikkie/api/responses/bank_account.rb +22 -0
  24. data/lib/tikkie/api/responses/base.rb +53 -0
  25. data/lib/tikkie/api/responses/error.rb +34 -0
  26. data/lib/tikkie/api/responses/pagination.rb +20 -0
  27. data/lib/tikkie/api/responses/payment.rb +48 -0
  28. data/lib/tikkie/api/responses/payment_request.rb +64 -0
  29. data/lib/tikkie/api/responses/payment_request_created.rb +22 -0
  30. data/lib/tikkie/api/responses/payment_requests.rb +42 -0
  31. data/lib/tikkie/api/responses/platform.rb +44 -0
  32. data/lib/tikkie/api/responses/platforms.rb +30 -0
  33. data/lib/tikkie/api/responses/user.rb +39 -0
  34. data/lib/tikkie/api/responses/users.rb +34 -0
  35. data/lib/tikkie/api/types/payment_request_status.rb +15 -0
  36. data/lib/tikkie/api/types/payment_status.rb +14 -0
  37. data/lib/tikkie/api/types/platform_status.rb +12 -0
  38. data/lib/tikkie/api/types/platform_usage.rb +12 -0
  39. data/lib/tikkie/api/types/user_status.rb +12 -0
  40. data/lib/tikkie/api/version.rb +7 -0
  41. data/tikkie-api.gemspec +31 -0
  42. metadata +168 -0
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bigdecimal'
4
+ require 'time'
5
+
6
+ module Tikkie
7
+ module Api
8
+ module Responses
9
+ # Response for a payment request.
10
+ class PaymentRequest < Base
11
+ def payment_request_token
12
+ data[:paymentRequestToken]
13
+ end
14
+
15
+ def amount
16
+ decimal = BigDecimal.new(data[:amountInCents])
17
+ decimal /= 100.0
18
+ decimal
19
+ end
20
+
21
+ def currency
22
+ data[:currency]
23
+ end
24
+
25
+ def created_at
26
+ Time.parse(data[:created]) if data[:created]
27
+ end
28
+
29
+ def expired_at
30
+ Time.parse(data[:expired]) if data[:expired]
31
+ end
32
+
33
+ # see PaymentRequestStatus
34
+ def status
35
+ data[:status]
36
+ end
37
+
38
+ def expired?
39
+ status == Tikkie::Api::Types::PaymentRequestStatus::EXPIRED
40
+ end
41
+
42
+ def bank_account_yielded_too_fast?
43
+ data[:bankAccountYieldedTooFast]
44
+ end
45
+
46
+ def external_id
47
+ data[:externalId]
48
+ end
49
+
50
+ def payments
51
+ @payments ||= begin
52
+ payments = []
53
+
54
+ data[:payments].each do |data|
55
+ payments << Tikkie::Api::Responses::Payment.new(data)
56
+ end
57
+
58
+ payments
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tikkie
4
+ module Api
5
+ module Responses
6
+ # Response when creating a payment request.
7
+ class PaymentRequestCreated < Base
8
+ def payment_request_url
9
+ data[:paymentRequestUrl]
10
+ end
11
+
12
+ def payment_request_token
13
+ data[:paymentRequestToken]
14
+ end
15
+
16
+ def external_id
17
+ data[:externalId]
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tikkie
4
+ module Api
5
+ module Responses
6
+ # Response when requesting payment requests (list).
7
+ class PaymentRequests < Base
8
+ include Enumerable
9
+ include Tikkie::Api::Responses::Pagination
10
+
11
+ def initialize(response, options = {})
12
+ super(response)
13
+
14
+ @offset = options[:offset]
15
+ @limit = options[:limit]
16
+ @total_elements = data[:totalElements]
17
+ @elements = payment_requests.count
18
+ end
19
+
20
+ def each(&block)
21
+ payment_requests.each(&block)
22
+ end
23
+
24
+ private
25
+
26
+ def payment_requests
27
+ @payment_requests ||= begin
28
+ payment_requests = []
29
+
30
+ if data[:paymentRequests]
31
+ data[:paymentRequests].each do |payment_request|
32
+ payment_requests << Tikkie::Api::Responses::PaymentRequest.new(payment_request)
33
+ end
34
+ end
35
+
36
+ payment_requests
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tikkie
4
+ module Api
5
+ module Responses
6
+ # Response when requesting a platform.
7
+ class Platform < Base
8
+ def platform_token
9
+ data[:platformToken]
10
+ end
11
+
12
+ def name
13
+ data[:name]
14
+ end
15
+
16
+ def phone_number
17
+ data[:phoneNumber]
18
+ end
19
+
20
+ def email
21
+ data[:email]
22
+ end
23
+
24
+ def notification_url
25
+ data[:notificationUrl]
26
+ end
27
+
28
+ # see PlatformStatus
29
+ def status
30
+ data[:status]
31
+ end
32
+
33
+ def active?
34
+ status == Tikkie::Api::Types::PlatformStatus::ACTIVE
35
+ end
36
+
37
+ # see PlatformUsage
38
+ def platform_usage
39
+ data[:platformUsage]
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tikkie
4
+ module Api
5
+ module Responses
6
+ # Response when requesting platforms (list).
7
+ class Platforms < Base
8
+ include Enumerable
9
+
10
+ def each(&block)
11
+ platforms.each(&block)
12
+ end
13
+
14
+ private
15
+
16
+ def platforms
17
+ @platforms ||= begin
18
+ platforms = []
19
+
20
+ data.each do |platform|
21
+ platforms << Tikkie::Api::Responses::Platform.new(platform)
22
+ end
23
+
24
+ platforms
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tikkie
4
+ module Api
5
+ module Responses
6
+ # Response when requesting an user.
7
+ class User < Base
8
+ def user_token
9
+ data[:userToken]
10
+ end
11
+
12
+ def name
13
+ data[:name]
14
+ end
15
+
16
+ # see UserStatus
17
+ def status
18
+ data[:status]
19
+ end
20
+
21
+ def active?
22
+ status == Tikkie::Api::Types::UserStatus::ACTIVE
23
+ end
24
+
25
+ def bank_accounts
26
+ @bank_accounts ||= begin
27
+ bank_accounts = []
28
+
29
+ data[:bankAccounts].each do |data|
30
+ bank_accounts << Tikkie::Api::Responses::BankAccount.new(data)
31
+ end
32
+
33
+ bank_accounts
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tikkie
4
+ module Api
5
+ module Responses
6
+ # Response when requesting users (list).
7
+ class Users < Base
8
+ include Enumerable
9
+
10
+ def initialize(response)
11
+ super(response)
12
+ end
13
+
14
+ def each(&block)
15
+ users.each(&block)
16
+ end
17
+
18
+ private
19
+
20
+ def users
21
+ @users ||= begin
22
+ users = []
23
+
24
+ data.each do |user|
25
+ users << Tikkie::Api::Responses::User.new(user)
26
+ end
27
+
28
+ users
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tikkie
4
+ module Api
5
+ module Types
6
+ module PaymentRequestStatus
7
+ OPEN = "OPEN"
8
+ CLOSED = "CLOSED"
9
+ EXPIRED = "EXPIRED"
10
+ MAX_YIELD_REACHED = "MAX_YIELD_REACHED"
11
+ MAX_SUCCESSFUL_PAYMENTS_REACHED = "MAX_SUCCESSFUL_PAYMENTS_REACHED"
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tikkie
4
+ module Api
5
+ module Types
6
+ module PaymentStatus
7
+ NEW = "NEW"
8
+ PENDING = "PENDING"
9
+ PAID = "PAID"
10
+ NOT_PAID = "NOT_PAID"
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tikkie
4
+ module Api
5
+ module Types
6
+ module PlatformStatus
7
+ ACTIVE = "ACTIVE"
8
+ INACTIVE = "INACTIVE"
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tikkie
4
+ module Api
5
+ module Types
6
+ module PlatformUsage
7
+ FOR_MYSELF = "PAYMENT_REQUEST_FOR_MYSELF"
8
+ FOR_OTHERS = "PAYMENT_REQUEST_FOR_OTHERS"
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tikkie
4
+ module Api
5
+ module Types
6
+ module UserStatus
7
+ ACTIVE = "ACTIVE"
8
+ INACTIVE = "INACTIVE"
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tikkie
4
+ module Api
5
+ VERSION = "0.1.0"
6
+ end
7
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path("../lib", __FILE__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require "tikkie/api/version"
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = "tikkie-api"
9
+ spec.version = Tikkie::Api::VERSION
10
+ spec.authors = ["Kentaa BV"]
11
+ spec.email = ["support@kentaa.nl"]
12
+
13
+ spec.summary = "Ruby library for communicating with the Tikkie API"
14
+ spec.homepage = "https://github.com/KentaaNL/tikkie-api"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
+ f.match(%r{^(test|spec|features)/})
19
+ end
20
+ spec.bindir = "exe"
21
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
+ spec.require_paths = ["lib"]
23
+
24
+ spec.add_dependency "jwt", ">= 1.0"
25
+
26
+ spec.add_development_dependency "bundler", "~> 1.16"
27
+ spec.add_development_dependency "rake", "~> 10.0"
28
+ spec.add_development_dependency "rspec", "~> 3.0"
29
+ spec.add_development_dependency "timecop", "~> 0.9"
30
+ spec.add_development_dependency "webmock", "~> 2.3"
31
+ end
metadata ADDED
@@ -0,0 +1,168 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tikkie-api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Kentaa BV
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2018-02-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jwt
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.16'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.16'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: timecop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.9'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.9'
83
+ - !ruby/object:Gem::Dependency
84
+ name: webmock
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.3'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.3'
97
+ description:
98
+ email:
99
+ - support@kentaa.nl
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".gitignore"
105
+ - ".rspec"
106
+ - ".rubocop.yml"
107
+ - ".travis.yml"
108
+ - Gemfile
109
+ - Gemfile.lock
110
+ - LICENSE.txt
111
+ - README.md
112
+ - Rakefile
113
+ - bin/console
114
+ - bin/setup
115
+ - lib/tikkie/api.rb
116
+ - lib/tikkie/api/access_token.rb
117
+ - lib/tikkie/api/authentication.rb
118
+ - lib/tikkie/api/client.rb
119
+ - lib/tikkie/api/configuration.rb
120
+ - lib/tikkie/api/exception.rb
121
+ - lib/tikkie/api/request.rb
122
+ - lib/tikkie/api/requests/payment_requests.rb
123
+ - lib/tikkie/api/requests/platforms.rb
124
+ - lib/tikkie/api/requests/users.rb
125
+ - lib/tikkie/api/responses/bank_account.rb
126
+ - lib/tikkie/api/responses/base.rb
127
+ - lib/tikkie/api/responses/error.rb
128
+ - lib/tikkie/api/responses/pagination.rb
129
+ - lib/tikkie/api/responses/payment.rb
130
+ - lib/tikkie/api/responses/payment_request.rb
131
+ - lib/tikkie/api/responses/payment_request_created.rb
132
+ - lib/tikkie/api/responses/payment_requests.rb
133
+ - lib/tikkie/api/responses/platform.rb
134
+ - lib/tikkie/api/responses/platforms.rb
135
+ - lib/tikkie/api/responses/user.rb
136
+ - lib/tikkie/api/responses/users.rb
137
+ - lib/tikkie/api/types/payment_request_status.rb
138
+ - lib/tikkie/api/types/payment_status.rb
139
+ - lib/tikkie/api/types/platform_status.rb
140
+ - lib/tikkie/api/types/platform_usage.rb
141
+ - lib/tikkie/api/types/user_status.rb
142
+ - lib/tikkie/api/version.rb
143
+ - tikkie-api.gemspec
144
+ homepage: https://github.com/KentaaNL/tikkie-api
145
+ licenses:
146
+ - MIT
147
+ metadata: {}
148
+ post_install_message:
149
+ rdoc_options: []
150
+ require_paths:
151
+ - lib
152
+ required_ruby_version: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
157
+ required_rubygems_version: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
162
+ requirements: []
163
+ rubyforge_project:
164
+ rubygems_version: 2.6.14
165
+ signing_key:
166
+ specification_version: 4
167
+ summary: Ruby library for communicating with the Tikkie API
168
+ test_files: []