column_api 0.0.2 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -1
- data/Gemfile +3 -0
- data/Gemfile.lock +10 -1
- data/README.md +38 -8
- data/lib/column_api/client.rb +8 -0
- data/lib/column_api/object.rb +7 -1
- data/lib/column_api/objects/ach_transfer.rb +6 -0
- data/lib/column_api/objects/bank_account.rb +6 -0
- data/lib/column_api/resource.rb +1 -1
- data/lib/column_api/resources/ach_transfer_resource.rb +29 -0
- data/lib/column_api/resources/bank_account_resource.rb +33 -0
- data/lib/column_api/version.rb +1 -1
- data/lib/column_api.rb +4 -0
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a503efefcfe39d720cbb939f82acfe1d564c6335746d516d75d96e7e79e35a6f
|
4
|
+
data.tar.gz: 012c38bed66d9f244b61be505991595c1543d3958bac7b71ed99b1074a5a84ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a905c02a3672a528bb39297ad1ca12d3e1969d610f2af95236c47a71fbfe1632600bcd4bfd54501d12916feb0cbd354c85e5f44d5e02a36dbb732505321064e
|
7
|
+
data.tar.gz: 106db37b864694cc854e0e43ab3fc7816f0b42a3c718e70e7511b701627559529a0da2d711e38bf9fba3b929ec11ee650b29246838daf7c61bd5ece99e476374
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,18 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
-
## [0.
|
3
|
+
## [0.0.4] - 2024-01-02
|
4
|
+
|
5
|
+
- Add ACH Tranfer endpoints
|
6
|
+
|
7
|
+
## [0.0.3] - 2024-01-02
|
8
|
+
|
9
|
+
- Add Bank Account endpoints
|
10
|
+
|
11
|
+
## [0.0.2] - 2023-12-31
|
12
|
+
|
13
|
+
- Add Entity endpoints
|
14
|
+
|
15
|
+
## [0.0.1] - 2023-12-29
|
4
16
|
|
5
17
|
- Initial release
|
18
|
+
- Add Faraday client
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
column_api (0.0.
|
4
|
+
column_api (0.0.4)
|
5
5
|
faraday (~> 2.8.1)
|
6
6
|
faraday-parse_dates (~> 0.1.1)
|
7
7
|
|
@@ -15,6 +15,7 @@ GEM
|
|
15
15
|
crack (0.4.5)
|
16
16
|
rexml
|
17
17
|
diff-lcs (1.5.0)
|
18
|
+
docile (1.4.0)
|
18
19
|
faraday (2.8.1)
|
19
20
|
base64
|
20
21
|
faraday-net_http (>= 2.0, < 3.1)
|
@@ -63,6 +64,12 @@ GEM
|
|
63
64
|
parser (>= 3.2.1.0)
|
64
65
|
ruby-progressbar (1.13.0)
|
65
66
|
ruby2_keywords (0.0.5)
|
67
|
+
simplecov (0.22.0)
|
68
|
+
docile (~> 1.1)
|
69
|
+
simplecov-html (~> 0.11)
|
70
|
+
simplecov_json_formatter (~> 0.1)
|
71
|
+
simplecov-html (0.12.3)
|
72
|
+
simplecov_json_formatter (0.1.4)
|
66
73
|
unicode-display_width (2.5.0)
|
67
74
|
webmock (3.19.1)
|
68
75
|
addressable (>= 2.8.0)
|
@@ -78,6 +85,8 @@ DEPENDENCIES
|
|
78
85
|
rake (~> 13.0)
|
79
86
|
rspec (~> 3.0)
|
80
87
|
rubocop (~> 1.21)
|
88
|
+
simplecov (~> 0.22)
|
89
|
+
simplecov_json_formatter
|
81
90
|
webmock (~> 3.19, >= 3.19.1)
|
82
91
|
|
83
92
|
BUNDLED WITH
|
data/README.md
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
+
[![Gem Version](https://badge.fury.io/rb/column_api.svg)](https://badge.fury.io/rb/column_api) [![Maintainability](https://api.codeclimate.com/v1/badges/43aa9279fa11d33f6fa3/maintainability)](https://codeclimate.com/github/matiasleidemer/column_api/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/43aa9279fa11d33f6fa3/test_coverage)](https://codeclimate.com/github/matiasleidemer/column_api/test_coverage)
|
2
|
+
|
1
3
|
# ColumnApi
|
2
4
|
|
3
5
|
_This gem is under development and the API is unstable._
|
4
6
|
|
5
|
-
[![Gem Version](https://badge.fury.io/rb/column_api.svg)](https://badge.fury.io/rb/column_api)
|
6
|
-
|
7
7
|
Ruby bindings for [Column's API](https://column.com/docs/api).
|
8
8
|
|
9
9
|
## Installation
|
10
10
|
|
11
11
|
```ruby
|
12
|
-
gem 'column_api', '~> 0.0.
|
12
|
+
gem 'column_api', '~> 0.0.4'
|
13
13
|
```
|
14
14
|
|
15
15
|
## Usage
|
@@ -17,8 +17,13 @@ gem 'column_api', '~> 0.0.2'
|
|
17
17
|
```ruby
|
18
18
|
client = ColumnApi::Client.new(api_key: ENV["COLUMN_API_KEY"])
|
19
19
|
|
20
|
-
client.entities.retrieve(entity_id: "enti_2aELWf6D")
|
21
|
-
# =>
|
20
|
+
person = client.entities.retrieve(entity_id: "enti_2aELWf6D")
|
21
|
+
person.id # => enti_2Q1ctiJm1NypVqCt8UBC8e4xTfH
|
22
|
+
person.person_details.email # => oliver@column.com
|
23
|
+
|
24
|
+
bank_accounts = client.bank_accounts.list({ limit: 2 })
|
25
|
+
bank_accounts.data # => [#<ColumnApi::BankAccount>, #<ColumnApi::BankAccount>]
|
26
|
+
bank_accounts.has_more # => true
|
22
27
|
```
|
23
28
|
|
24
29
|
Alternatively, you can query the endpoints directly:
|
@@ -41,13 +46,38 @@ https://column.com/docs/api/#entity/object
|
|
41
46
|
|
42
47
|
```ruby
|
43
48
|
client.entities.list({})
|
44
|
-
client.entities.retrieve(entity_id:
|
49
|
+
client.entities.retrieve(entity_id:)
|
45
50
|
client.entities.create_person({})
|
46
51
|
client.entities.create_business({})
|
47
52
|
client.entities.update_person(entity_id:, params: {})
|
48
53
|
client.entities.update_business(entity_id:, params: {})
|
49
|
-
client.entities.delete(entity_id:
|
50
|
-
client.entities.submit_document(entity_id
|
54
|
+
client.entities.delete(entity_id:)
|
55
|
+
client.entities.submit_document(entity_id:, params: {})
|
56
|
+
```
|
57
|
+
|
58
|
+
### Bank Accounts
|
59
|
+
|
60
|
+
https://column.com/docs/api/#bank-account/object
|
61
|
+
|
62
|
+
```ruby
|
63
|
+
client.bank_accounts.list({})
|
64
|
+
client.bank_accounts.retrieve(bank_account_id:)
|
65
|
+
client.bank_accounts.create({})
|
66
|
+
client.bank_accounts.update(bank_account_id:, params: {})
|
67
|
+
client.bank_accounts.delete(bank_account_id:)
|
68
|
+
client.bank_accounts.history(bank_account_id:, from_date: Date, to_date: Date)
|
69
|
+
```
|
70
|
+
|
71
|
+
### ACH Transfers
|
72
|
+
|
73
|
+
https://column.com/docs/api/#ach-transfer/object
|
74
|
+
|
75
|
+
```ruby
|
76
|
+
client.ach_transfers.list({})
|
77
|
+
client.ach_transfers.retrieve(ach_transfer_id:)
|
78
|
+
client.ach_transfers.create({})
|
79
|
+
client.ach_transfers.cancel(ach_transfer_id:)
|
80
|
+
client.ach_transfers.reverse(ach_transfer_id:, reason:, description: "")
|
51
81
|
```
|
52
82
|
|
53
83
|
## Development
|
data/lib/column_api/client.rb
CHANGED
@@ -10,10 +10,18 @@ module ColumnApi
|
|
10
10
|
@adapter = adapter
|
11
11
|
end
|
12
12
|
|
13
|
+
def ach_transfers
|
14
|
+
AchTransferResource.new(self)
|
15
|
+
end
|
16
|
+
|
13
17
|
def entities
|
14
18
|
EntityResource.new(self)
|
15
19
|
end
|
16
20
|
|
21
|
+
def bank_accounts
|
22
|
+
BankAccountResource.new(self)
|
23
|
+
end
|
24
|
+
|
17
25
|
def connection
|
18
26
|
@connection ||= Faraday.new(BASE_URL) do |conn|
|
19
27
|
conn.request :authorization, :basic, "", api_key
|
data/lib/column_api/object.rb
CHANGED
@@ -10,7 +10,13 @@ module ColumnApi
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def to_ostruct(obj)
|
13
|
-
|
13
|
+
if obj.is_a?(Hash)
|
14
|
+
OpenStruct.new(obj.transform_values { |val| to_ostruct(val) })
|
15
|
+
elsif obj.is_a?(Array)
|
16
|
+
obj.map { |o| to_ostruct(o) }
|
17
|
+
else # Assumed to be a primitive value
|
18
|
+
obj
|
19
|
+
end
|
14
20
|
end
|
15
21
|
end
|
16
22
|
end
|
data/lib/column_api/resource.rb
CHANGED
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ColumnApi
|
4
|
+
class AchTransferResource < Resource
|
5
|
+
def list(params = {})
|
6
|
+
response = get_request("transfers/ach", params: params).body
|
7
|
+
Collection.from_response(response, key: "transfers", type: AchTransfer)
|
8
|
+
end
|
9
|
+
|
10
|
+
def retrieve(ach_transfer_id:)
|
11
|
+
AchTransfer.new get_request("transfers/ach/#{ach_transfer_id}").body
|
12
|
+
end
|
13
|
+
|
14
|
+
def create(params)
|
15
|
+
AchTransfer.new post_request("transfers/ach", body: params).body
|
16
|
+
end
|
17
|
+
|
18
|
+
def cancel(ach_transfer_id:)
|
19
|
+
AchTransfer.new post_request("transfers/ach/#{ach_transfer_id}/cancel").body
|
20
|
+
end
|
21
|
+
|
22
|
+
def reverse(ach_transfer_id:, reason:, description: "")
|
23
|
+
AchTransfer.new(
|
24
|
+
post_request("transfers/ach/#{ach_transfer_id}/reverse",
|
25
|
+
body: { reason: reason, description: description }).body
|
26
|
+
)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ColumnApi
|
4
|
+
class BankAccountResource < Resource
|
5
|
+
def list(params = {})
|
6
|
+
response = get_request("bank-accounts", params: params).body
|
7
|
+
Collection.from_response(response, key: "bank_accounts", type: BankAccount)
|
8
|
+
end
|
9
|
+
|
10
|
+
def retrieve(bank_account_id:)
|
11
|
+
BankAccount.new get_request("bank-accounts/#{bank_account_id}").body
|
12
|
+
end
|
13
|
+
|
14
|
+
def create(params)
|
15
|
+
BankAccount.new post_request("bank-accounts", body: params).body
|
16
|
+
end
|
17
|
+
|
18
|
+
def update(bank_account_id:, params:)
|
19
|
+
BankAccount.new patch_request("bank-accounts/#{bank_account_id}", body: params).body
|
20
|
+
end
|
21
|
+
|
22
|
+
def delete(bank_account_id:)
|
23
|
+
delete_request("bank-accounts/#{bank_account_id}")
|
24
|
+
true
|
25
|
+
end
|
26
|
+
|
27
|
+
def history(bank_account_id:, from_date:, to_date:)
|
28
|
+
params = { from_date: from_date.strftime("%Y-%m-%d"), to_date: to_date.strftime("%Y-%m-%d") }
|
29
|
+
|
30
|
+
BankAccount.new get_request("bank-accounts/#{bank_account_id}/history", params: params).body
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/column_api/version.rb
CHANGED
data/lib/column_api.rb
CHANGED
@@ -15,9 +15,13 @@ module ColumnApi
|
|
15
15
|
autoload :Resource, "column_api/resource"
|
16
16
|
|
17
17
|
# Objects
|
18
|
+
autoload :AchTransfer, "column_api/objects/ach_transfer"
|
19
|
+
autoload :BankAccount, "column_api/objects/bank_account"
|
18
20
|
autoload :BusinessEntity, "column_api/objects/business_entity"
|
19
21
|
autoload :PersonEntity, "column_api/objects/person_entity"
|
20
22
|
|
21
23
|
# Resources
|
24
|
+
autoload :AchTransferResource, "column_api/resources/ach_transfer_resource"
|
25
|
+
autoload :BankAccountResource, "column_api/resources/bank_account_resource"
|
22
26
|
autoload :EntityResource, "column_api/resources/entity_resource"
|
23
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: column_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matias Leidemer
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -59,9 +59,13 @@ files:
|
|
59
59
|
- lib/column_api/collection.rb
|
60
60
|
- lib/column_api/errors.rb
|
61
61
|
- lib/column_api/object.rb
|
62
|
+
- lib/column_api/objects/ach_transfer.rb
|
63
|
+
- lib/column_api/objects/bank_account.rb
|
62
64
|
- lib/column_api/objects/business_entity.rb
|
63
65
|
- lib/column_api/objects/person_entity.rb
|
64
66
|
- lib/column_api/resource.rb
|
67
|
+
- lib/column_api/resources/ach_transfer_resource.rb
|
68
|
+
- lib/column_api/resources/bank_account_resource.rb
|
65
69
|
- lib/column_api/resources/entity_resource.rb
|
66
70
|
- lib/column_api/version.rb
|
67
71
|
- sig/column_api.rbs
|
@@ -85,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
85
89
|
- !ruby/object:Gem::Version
|
86
90
|
version: '0'
|
87
91
|
requirements: []
|
88
|
-
rubygems_version: 3.4.
|
92
|
+
rubygems_version: 3.4.6
|
89
93
|
signing_key:
|
90
94
|
specification_version: 4
|
91
95
|
summary: Ruby bindings for Column API
|