square 0.0.2 → 0.0.3
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 +41 -2
- data/VERSION +1 -1
- data/lib/square/connect/bank_account.rb +3 -2
- data/lib/square/connect/connections/bank_accounts.rb +16 -0
- data/lib/square/connect/connections/payments.rb +9 -0
- data/lib/square/connect/connections/settlements.rb +9 -0
- data/lib/square/connect/merchant.rb +1 -2
- data/lib/square/connect/node.rb +1 -1
- data/lib/square/connect/payment.rb +3 -3
- data/lib/square/connect/refund.rb +18 -19
- data/lib/square/connect/settlement.rb +4 -1
- data/spec/mock_response/bank_account/mine.json +10 -0
- data/spec/mock_response/settlements/single.json +11 -0
- data/spec/square/connect/bank_account_spec.rb +31 -0
- data/spec/square/connect/merchant_spec.rb +10 -0
- data/spec/square/connect/node_spec.rb +0 -4
- data/spec/square/connect/payment_spec.rb +1 -1
- data/spec/square/connect/settlement_spec.rb +31 -0
- data/square.gemspec +1 -0
- metadata +20 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 97640cf10444f7f9e41bb8fc733f6e4a058a5334
|
4
|
+
data.tar.gz: f564a55d6901749b0955f43e0d7fa69aa1f1e4c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ca3a04861c402d4770a156b4a0c371d449e75519a352ab67f95e70bccebdca813f825c4396f32ebbb23ae6f7f85201956d8f9949e6d204a60421c76f7a23655
|
7
|
+
data.tar.gz: 8c6f1eb1b9f612bb30f4c3655ca7c371ebc2e45d6336a67863102fb7fdbdb1f7081df2f055e70238d1a7d92bdade5a5fe7626fae49a5702564b8a88acdecf6be
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# Square
|
2
2
|
|
3
|
-
|
3
|
+
Square API Client
|
4
|
+
|
5
|
+
https://connect.squareup.com
|
4
6
|
|
5
7
|
## Installation
|
6
8
|
|
@@ -18,7 +20,44 @@ Or install it yourself as:
|
|
18
20
|
|
19
21
|
## Usage
|
20
22
|
|
21
|
-
|
23
|
+
### OAuth 2.0
|
24
|
+
|
25
|
+
client = Square::Client.new(
|
26
|
+
'<your-client-id>',
|
27
|
+
redirect_uri: 'https://example.client.com/callback'
|
28
|
+
)
|
29
|
+
|
30
|
+
## Authorization Request
|
31
|
+
redirect_to client.authorization_uri
|
32
|
+
|
33
|
+
## Token Request
|
34
|
+
client.authorization_code = '<your-authorization-code>'
|
35
|
+
access_token = client.access_token!
|
36
|
+
|
37
|
+
### Connect API
|
38
|
+
|
39
|
+
me = Square::Connect::Merchant.me access_token
|
40
|
+
|
41
|
+
## Merchant API
|
42
|
+
me = me.fetch
|
43
|
+
|
44
|
+
## Payments API
|
45
|
+
payments = me.payments
|
46
|
+
|
47
|
+
## Payment API
|
48
|
+
payment = me.payment '<payment-id>'
|
49
|
+
|
50
|
+
## Refunds API
|
51
|
+
refunds = me.refunds
|
52
|
+
|
53
|
+
## Settlements API
|
54
|
+
settlements = me.settlements
|
55
|
+
|
56
|
+
## Settlement API
|
57
|
+
settlement = me.settlement '<settlement-id>'
|
58
|
+
|
59
|
+
## Bank Account API
|
60
|
+
bank_account = me.bank_account '<bank-accout-id>'
|
22
61
|
|
23
62
|
## Contributing
|
24
63
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
@@ -6,9 +6,9 @@ module Square
|
|
6
6
|
def initialize(*args)
|
7
7
|
super do |attributes|
|
8
8
|
self.merchant = if attributes[:merchant_id]
|
9
|
-
Merchant.new attributes[:merchant_id]
|
9
|
+
Merchant.new attributes[:merchant_id], access_token
|
10
10
|
else
|
11
|
-
Merchant.
|
11
|
+
Merchant.me access_token
|
12
12
|
end
|
13
13
|
self.bank_name = attributes[:bank_name]
|
14
14
|
self.name = attributes[:name]
|
@@ -16,6 +16,7 @@ module Square
|
|
16
16
|
self.routing_number = attributes[:routing_number]
|
17
17
|
self.account_number_suffix = attributes[:account_number_suffix]
|
18
18
|
self.currency_code = attributes[:currency_code]
|
19
|
+
self.endpoint = endpoint_for merchant.identifier, :bank_accounts, identifier
|
19
20
|
end
|
20
21
|
end
|
21
22
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Square
|
2
|
+
module Connect
|
3
|
+
module Connections
|
4
|
+
module BankAccounts
|
5
|
+
def bank_account(bank_account_id, params = nil)
|
6
|
+
access_token_required!
|
7
|
+
BankAccount.new(
|
8
|
+
bank_account_id,
|
9
|
+
merchant_id: identifier,
|
10
|
+
access_token: access_token
|
11
|
+
).fetch
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -1,11 +1,10 @@
|
|
1
|
-
require 'square/connect/connections'
|
2
|
-
|
3
1
|
module Square
|
4
2
|
module Connect
|
5
3
|
class Merchant < Node
|
6
4
|
include Connections::Payments
|
7
5
|
include Connections::Refunds
|
8
6
|
include Connections::Settlements
|
7
|
+
include Connections::BankAccounts
|
9
8
|
|
10
9
|
attr_accessor :name, :email, :country_code, :language_code
|
11
10
|
|
data/lib/square/connect/node.rb
CHANGED
@@ -7,8 +7,8 @@ module Square
|
|
7
7
|
attributes = args.extract_options!
|
8
8
|
self.identifier = attributes[:id] || attributes[:identifier] || args.first
|
9
9
|
self.access_token = tokenize attributes[:access_token] || args.second
|
10
|
-
self.endpoint = endpoint_for identifier
|
11
10
|
yield attributes if block_given?
|
11
|
+
self.endpoint ||= endpoint_for identifier
|
12
12
|
end
|
13
13
|
|
14
14
|
def fetch
|
@@ -26,12 +26,12 @@ module Square
|
|
26
26
|
def initialize(*args)
|
27
27
|
super do |attributes|
|
28
28
|
self.merchant = if attributes[:merchant_id]
|
29
|
-
Merchant.new attributes[:merchant_id]
|
29
|
+
Merchant.new attributes[:merchant_id], access_token
|
30
30
|
else
|
31
|
-
Merchant.
|
31
|
+
Merchant.me access_token
|
32
32
|
end
|
33
33
|
self.creator = if attributes[:creator_id]
|
34
|
-
Merchant.new attributes[:creator_id]
|
34
|
+
Merchant.new attributes[:creator_id], access_token
|
35
35
|
end
|
36
36
|
self.created_at = if attributes[:created_at]
|
37
37
|
Time.parse attributes[:created_at]
|
@@ -1,27 +1,26 @@
|
|
1
1
|
module Square
|
2
2
|
module Connect
|
3
|
-
class Refund
|
4
|
-
attr_accessor :type, :reason, :refunded_money, :created_at, :processed_at, :payment
|
3
|
+
class Refund
|
4
|
+
attr_accessor :identifier, :type, :reason, :refunded_money, :created_at, :processed_at, :payment
|
5
5
|
|
6
|
-
def initialize(
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
self.payment = if attributes[:payment_id]
|
22
|
-
Payment.new attributes[:payment_id]
|
6
|
+
def initialize(attributes = {})
|
7
|
+
self.identifier = attributes[:id]
|
8
|
+
self.type = attributes[:type]
|
9
|
+
self.reason = attributes[:reason]
|
10
|
+
self.refunded_money = if attributes[:refunded_money].present?
|
11
|
+
Money.new attributes[:refunded_money]
|
12
|
+
end
|
13
|
+
[
|
14
|
+
:created_at,
|
15
|
+
:processed_at
|
16
|
+
].each do |time_key|
|
17
|
+
if attributes[time_key]
|
18
|
+
self.send "#{time_key}=", Time.parse(attributes[time_key])
|
23
19
|
end
|
24
20
|
end
|
21
|
+
self.payment = if attributes[:payment_id]
|
22
|
+
Payment.new attributes[:payment_id]
|
23
|
+
end
|
25
24
|
end
|
26
25
|
end
|
27
26
|
end
|
@@ -10,7 +10,7 @@ module Square
|
|
10
10
|
Time.parse attributes[:initiated_at]
|
11
11
|
end
|
12
12
|
self.bank_account = if attributes[:bank_account_id]
|
13
|
-
BankAccount.new attributes[:bank_account_id]
|
13
|
+
BankAccount.new attributes[:bank_account_id], access_token
|
14
14
|
end
|
15
15
|
self.total_money = if attributes[:total_money]
|
16
16
|
Money.new attributes[:total_money]
|
@@ -18,6 +18,9 @@ module Square
|
|
18
18
|
self.entries = Array(attributes[:entries]).collect do |entry_attributes|
|
19
19
|
SettlementEntry.new entry_attributes
|
20
20
|
end
|
21
|
+
|
22
|
+
merchnat_id = attributes[:merchant_id] || :me
|
23
|
+
self.endpoint = endpoint_for merchnat_id, :settlements, identifier
|
21
24
|
end
|
22
25
|
end
|
23
26
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Square::Connect::BankAccount do
|
4
|
+
let(:klass) { Square::Connect::BankAccount }
|
5
|
+
let(:identifier) { 'bank_account_id' }
|
6
|
+
let(:merchant_id) { 'merchant_id' }
|
7
|
+
let(:access_token) { 'access_token' }
|
8
|
+
|
9
|
+
describe '#initialize' do
|
10
|
+
context 'when merchant_id given' do
|
11
|
+
subject { klass.new identifier, merchant_id: merchant_id }
|
12
|
+
its(:endpoint) { should == File.join(Square::Connect::ROOT_URL, "#{merchant_id}/bank_accounts/#{identifier}") }
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'otherwise' do
|
16
|
+
subject { klass.new identifier }
|
17
|
+
its(:endpoint) { should == File.join(Square::Connect::ROOT_URL, "me/bank_accounts/#{identifier}") }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe '#fetch' do
|
22
|
+
let(:instance) { klass.new identifier, access_token }
|
23
|
+
|
24
|
+
it do
|
25
|
+
settlement = mock_request "me/bank_accounts/#{identifier}", 'bank_account/mine' do
|
26
|
+
instance.fetch
|
27
|
+
end
|
28
|
+
settlement.should be_a klass
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -42,6 +42,16 @@ describe Square::Connect::Merchant do
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
+
describe '#fetch' do
|
46
|
+
it do
|
47
|
+
merchant = mock_request identifier, 'merchant/me' do
|
48
|
+
instance = klass.new identifier, access_token
|
49
|
+
instance.fetch
|
50
|
+
end
|
51
|
+
merchant.should be_a klass
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
45
55
|
describe '.me' do
|
46
56
|
subject { klass.me access_token }
|
47
57
|
its(:identifier) { should == :me }
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Square::Connect::Settlement do
|
4
|
+
let(:klass) { Square::Connect::Settlement }
|
5
|
+
let(:identifier) { 'settlement_id' }
|
6
|
+
let(:merchant_id) { 'merchant_id' }
|
7
|
+
let(:access_token) { 'access_token' }
|
8
|
+
|
9
|
+
describe '#initialize' do
|
10
|
+
context 'when merchant_id given' do
|
11
|
+
subject { klass.new identifier, access_token, merchant_id: merchant_id }
|
12
|
+
its(:endpoint) { should == File.join(Square::Connect::ROOT_URL, "#{merchant_id}/settlements/#{identifier}") }
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'otherwise' do
|
16
|
+
subject { klass.new identifier, access_token }
|
17
|
+
its(:endpoint) { should == File.join(Square::Connect::ROOT_URL, "me/settlements/#{identifier}") }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe '#fetch' do
|
22
|
+
let(:instance) { klass.new identifier, access_token }
|
23
|
+
|
24
|
+
it do
|
25
|
+
settlement = mock_request "me/settlements/#{identifier}", 'settlements/single' do
|
26
|
+
instance.fetch
|
27
|
+
end
|
28
|
+
settlement.should be_a klass
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/square.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: square
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nov
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: webmock
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
description: Square API client
|
84
98
|
email:
|
85
99
|
- nov@matake.jp
|
@@ -98,6 +112,7 @@ files:
|
|
98
112
|
- lib/square/connect.rb
|
99
113
|
- lib/square/connect/bank_account.rb
|
100
114
|
- lib/square/connect/connections.rb
|
115
|
+
- lib/square/connect/connections/bank_accounts.rb
|
101
116
|
- lib/square/connect/connections/payments.rb
|
102
117
|
- lib/square/connect/connections/refunds.rb
|
103
118
|
- lib/square/connect/connections/settlements.rb
|
@@ -118,6 +133,7 @@ files:
|
|
118
133
|
- lib/square/oauth2/access_token.rb
|
119
134
|
- lib/square/oauth2/client.rb
|
120
135
|
- spec/helpers/webmock_helper.rb
|
136
|
+
- spec/mock_response/bank_account/mine.json
|
121
137
|
- spec/mock_response/error/unauthorized.json
|
122
138
|
- spec/mock_response/invalid_grant.json
|
123
139
|
- spec/mock_response/merchant/me.json
|
@@ -125,14 +141,17 @@ files:
|
|
125
141
|
- spec/mock_response/payments/single.json
|
126
142
|
- spec/mock_response/refunds/list.json
|
127
143
|
- spec/mock_response/settlements/list.json
|
144
|
+
- spec/mock_response/settlements/single.json
|
128
145
|
- spec/mock_response/token.json
|
129
146
|
- spec/spec_helper.rb
|
147
|
+
- spec/square/connect/bank_account_spec.rb
|
130
148
|
- spec/square/connect/connections/payments_spec.rb
|
131
149
|
- spec/square/connect/connections/refunds_spec.rb
|
132
150
|
- spec/square/connect/connections/settlements_spec.rb
|
133
151
|
- spec/square/connect/merchant_spec.rb
|
134
152
|
- spec/square/connect/node_spec.rb
|
135
153
|
- spec/square/connect/payment_spec.rb
|
154
|
+
- spec/square/connect/settlement_spec.rb
|
136
155
|
- spec/square/oauth2/access_token_spec.rb
|
137
156
|
- spec/square/oauth2/client_spec.rb
|
138
157
|
- square.gemspec
|