square.rb 6.3.0.20200826 → 17.1.0.20220120
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/LICENSE +1 -1
- data/README.md +86 -51
- data/lib/square/api/apple_pay_api.rb +12 -9
- data/lib/square/api/bank_accounts_api.rb +21 -24
- data/lib/square/api/base_api.rb +20 -9
- data/lib/square/api/bookings_api.rb +391 -0
- data/lib/square/api/cards_api.rb +170 -0
- data/lib/square/api/cash_drawers_api.rb +13 -6
- data/lib/square/api/catalog_api.rb +195 -85
- data/lib/square/api/checkout_api.rb +7 -5
- data/lib/square/api/customer_groups_api.rb +34 -16
- data/lib/square/api/customer_segments_api.rb +21 -9
- data/lib/square/api/customers_api.rb +102 -55
- data/lib/square/api/devices_api.rb +20 -8
- data/lib/square/api/disputes_api.rb +156 -144
- data/lib/square/api/employees_api.rb +7 -3
- data/lib/square/api/gift_card_activities_api.rb +133 -0
- data/lib/square/api/gift_cards_api.rb +297 -0
- data/lib/square/api/inventory_api.rb +290 -37
- data/lib/square/api/invoices_api.rb +61 -57
- data/lib/square/api/labor_api.rb +127 -93
- data/lib/square/api/locations_api.rb +36 -25
- data/lib/square/api/loyalty_api.rb +134 -87
- data/lib/square/api/merchants_api.rb +8 -4
- data/lib/square/api/mobile_authorization_api.rb +9 -7
- data/lib/square/api/o_auth_api.rb +41 -32
- data/lib/square/api/orders_api.rb +132 -54
- data/lib/square/api/payments_api.rb +133 -75
- data/lib/square/api/refunds_api.rb +51 -30
- data/lib/square/api/sites_api.rb +43 -0
- data/lib/square/api/snippets_api.rb +146 -0
- data/lib/square/api/subscriptions_api.rb +216 -26
- data/lib/square/api/team_api.rb +81 -65
- data/lib/square/api/terminal_api.rb +166 -16
- data/lib/square/api/transactions_api.rb +32 -194
- data/lib/square/api/v1_transactions_api.rb +53 -103
- data/lib/square/api_helper.rb +38 -43
- data/lib/square/client.rb +54 -24
- data/lib/square/configuration.rb +61 -21
- data/lib/square/http/api_response.rb +3 -1
- data/lib/square/http/faraday_client.rb +34 -5
- data/lib/square/utilities/date_time_helper.rb +151 -0
- data/lib/square/utilities/file_wrapper.rb +1 -2
- data/lib/square.rb +65 -61
- data/spec/user_journey_spec.rb +2 -5
- data/test/api/api_test_base.rb +1 -6
- data/test/api/test_catalog_api.rb +1 -4
- data/test/api/test_customers_api.rb +1 -4
- data/test/api/test_employees_api.rb +1 -4
- data/test/api/test_labor_api.rb +2 -6
- data/test/api/test_locations_api.rb +21 -35
- data/test/api/test_merchants_api.rb +1 -4
- data/test/api/test_payments_api.rb +3 -6
- data/test/api/test_refunds_api.rb +3 -6
- data/test/http_response_catcher.rb +0 -5
- data/test/test_helper.rb +1 -6
- metadata +40 -18
- data/lib/square/api/v1_employees_api.rb +0 -723
- data/lib/square/api/v1_items_api.rb +0 -1686
- data/lib/square/api/v1_locations_api.rb +0 -65
@@ -0,0 +1,151 @@
|
|
1
|
+
require 'date'
|
2
|
+
module Square
|
3
|
+
# A utility that supports dateTime conversion to different formats
|
4
|
+
class DateTimeHelper
|
5
|
+
# Safely converts a DateTime object into a rfc1123 format string
|
6
|
+
# @param [DateTime] The DateTime object
|
7
|
+
# @return [String] The rfc1123 formatted datetime string
|
8
|
+
def self.to_rfc1123(date_time)
|
9
|
+
date_time&.httpdate
|
10
|
+
end
|
11
|
+
|
12
|
+
# Safely converts a map of DateTime objects into a map of rfc1123 format string
|
13
|
+
# @param [hash] a map of DateTime objects
|
14
|
+
# @return [hash] a map of rfc1123 formatted datetime string
|
15
|
+
def self.to_rfc1123_map(date_time, hash, key)
|
16
|
+
return if date_time.nil?
|
17
|
+
|
18
|
+
hash[key] = {}
|
19
|
+
date_time.each do |k, v|
|
20
|
+
hash[key][k] =
|
21
|
+
if v.is_a?(BaseModel)
|
22
|
+
v.to_hash
|
23
|
+
else
|
24
|
+
v.is_a?(DateTime) ? DateTimeHelper.to_rfc1123(v) : v
|
25
|
+
end
|
26
|
+
end
|
27
|
+
hash[key]
|
28
|
+
end
|
29
|
+
|
30
|
+
# Safely converts an array of DateTime objects into an array of rfc1123 format string
|
31
|
+
# @param [Array] an array of DateTime objects
|
32
|
+
# @return [Array] an array of rfc1123 formatted datetime string
|
33
|
+
def self.to_rfc1123_array(date_time, hash, key)
|
34
|
+
return if date_time.nil?
|
35
|
+
|
36
|
+
hash[key] = date_time.map do |v|
|
37
|
+
if v.is_a?(BaseModel)
|
38
|
+
v.to_hash
|
39
|
+
else
|
40
|
+
v.is_a?(DateTime) ? DateTimeHelper.to_rfc1123(v) : v
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
# Safely converts a DateTime object into a unix format string
|
46
|
+
# @param [DateTime] The DateTime object
|
47
|
+
# @return [String] The unix formatted datetime string
|
48
|
+
def self.to_unix(date_time)
|
49
|
+
date_time.to_time.utc.to_i unless date_time.nil?
|
50
|
+
end
|
51
|
+
|
52
|
+
# Safely converts a map of DateTime objects into a map of unix format string
|
53
|
+
# @param [hash] a map of DateTime objects
|
54
|
+
# @return [hash] a map of unix formatted datetime string
|
55
|
+
def self.to_unix_map(date_time, hash, key)
|
56
|
+
return if date_time.nil?
|
57
|
+
|
58
|
+
hash[key] = {}
|
59
|
+
date_time.each do |k, v|
|
60
|
+
hash[key][k] =
|
61
|
+
if v.is_a?(BaseModel)
|
62
|
+
v.to_hash
|
63
|
+
else
|
64
|
+
v.is_a?(DateTime) ? DateTimeHelper.to_unix(v) : v
|
65
|
+
end
|
66
|
+
end
|
67
|
+
hash[key]
|
68
|
+
end
|
69
|
+
|
70
|
+
# Safely converts an array of DateTime objects into a map of unix format string
|
71
|
+
# @param [hash] an array of DateTime objects
|
72
|
+
# @return [hash] an array of unix formatted datetime string
|
73
|
+
def self.to_unix_array(date_time, hash, key)
|
74
|
+
return if date_time.nil?
|
75
|
+
|
76
|
+
hash[key] = date_time.map do |v|
|
77
|
+
if v.is_a?(BaseModel)
|
78
|
+
v.to_hash
|
79
|
+
else
|
80
|
+
v.is_a?(DateTime) ? DateTimeHelper.to_unix(v) : v
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
# Safely converts a DateTime object into a rfc3339 format string
|
86
|
+
# @param [DateTime] The DateTime object
|
87
|
+
# @return [String] The rfc3339 formatted datetime string
|
88
|
+
def self.to_rfc3339(date_time)
|
89
|
+
date_time&.rfc3339
|
90
|
+
end
|
91
|
+
|
92
|
+
# Safely converts a map of DateTime objects into a map of rfc1123 format string
|
93
|
+
# @param [hash] a map of DateTime objects
|
94
|
+
# @return [hash] a map of rfc1123 formatted datetime string
|
95
|
+
def self.to_rfc3339_map(date_time, hash, key)
|
96
|
+
return if date_time.nil?
|
97
|
+
|
98
|
+
hash[key] = {}
|
99
|
+
date_time.each do |k, v|
|
100
|
+
hash[key][k] =
|
101
|
+
if v.is_a?(BaseModel)
|
102
|
+
v.to_hash
|
103
|
+
else
|
104
|
+
v.is_a?(DateTime) ? DateTimeHelper.to_rfc3339(v) : v
|
105
|
+
end
|
106
|
+
end
|
107
|
+
hash[key]
|
108
|
+
end
|
109
|
+
|
110
|
+
# Safely converts an array of DateTime objects into an array of rfc1123 format string
|
111
|
+
# @param [Array] an array of DateTime objects
|
112
|
+
# @return [Array] an array of rfc1123 formatted datetime string
|
113
|
+
def self.to_rfc3339_array(date_time, hash, key)
|
114
|
+
return if date_time.nil?
|
115
|
+
|
116
|
+
hash[key] = date_time.map do |v|
|
117
|
+
if v.is_a?(BaseModel)
|
118
|
+
v.to_hash
|
119
|
+
else
|
120
|
+
v.is_a?(DateTime) ? DateTimeHelper.to_rfc3339(v) : v
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
# Safely converts a rfc1123 format string into a DateTime object
|
126
|
+
# @param [String] The rfc1123 formatted datetime string
|
127
|
+
# @return [DateTime] A DateTime object
|
128
|
+
def self.from_rfc1123(date_time)
|
129
|
+
DateTime.httpdate(date_time)
|
130
|
+
end
|
131
|
+
|
132
|
+
# Safely converts a unix format string into a DateTime object
|
133
|
+
# @param [String] The unix formatted datetime string
|
134
|
+
# @return [DateTime] A DateTime object
|
135
|
+
def self.from_unix(date_time)
|
136
|
+
Time.at(date_time.to_i).utc.to_datetime
|
137
|
+
end
|
138
|
+
|
139
|
+
# Safely converts a rfc3339 format string into a DateTime object
|
140
|
+
# @param [String] The rfc3339 formatted datetime string
|
141
|
+
# @return [DateTime] A DateTime object
|
142
|
+
def self.from_rfc3339(date_time)
|
143
|
+
# missing timezone information
|
144
|
+
if date_time.end_with?('Z') || date_time.index('+')
|
145
|
+
DateTime.rfc3339(date_time)
|
146
|
+
else
|
147
|
+
DateTime.rfc3339("#{date_time}Z")
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
data/lib/square.rb
CHANGED
@@ -1,61 +1,65 @@
|
|
1
|
-
require 'date'
|
2
|
-
require 'json'
|
3
|
-
require 'faraday'
|
4
|
-
require 'certifi'
|
5
|
-
require 'logging'
|
6
|
-
|
7
|
-
require_relative 'square/api_helper
|
8
|
-
require_relative 'square/client
|
9
|
-
|
10
|
-
# Utilities
|
11
|
-
require_relative 'square/utilities/file_wrapper
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
require_relative 'square/http/
|
16
|
-
require_relative 'square/http/
|
17
|
-
require_relative 'square/http/
|
18
|
-
require_relative 'square/http/
|
19
|
-
require_relative 'square/http/
|
20
|
-
require_relative 'square/http/
|
21
|
-
require_relative 'square/http/
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
require_relative 'square/api/
|
33
|
-
require_relative 'square/api/
|
34
|
-
require_relative 'square/api/
|
35
|
-
require_relative 'square/api/
|
36
|
-
require_relative 'square/api/
|
37
|
-
require_relative 'square/api/
|
38
|
-
require_relative 'square/api/
|
39
|
-
require_relative 'square/api/
|
40
|
-
require_relative 'square/api/cash_drawers_api
|
41
|
-
require_relative 'square/api/catalog_api
|
42
|
-
require_relative 'square/api/customers_api
|
43
|
-
require_relative 'square/api/customer_groups_api
|
44
|
-
require_relative 'square/api/customer_segments_api
|
45
|
-
require_relative 'square/api/devices_api
|
46
|
-
require_relative 'square/api/disputes_api
|
47
|
-
require_relative 'square/api/employees_api
|
48
|
-
require_relative 'square/api/
|
49
|
-
require_relative 'square/api/
|
50
|
-
require_relative 'square/api/
|
51
|
-
require_relative 'square/api/
|
52
|
-
require_relative 'square/api/
|
53
|
-
require_relative 'square/api/
|
54
|
-
require_relative 'square/api/
|
55
|
-
require_relative 'square/api/
|
56
|
-
require_relative 'square/api/
|
57
|
-
require_relative 'square/api/
|
58
|
-
require_relative 'square/api/
|
59
|
-
require_relative 'square/api/
|
60
|
-
require_relative 'square/api/
|
61
|
-
require_relative 'square/api/
|
1
|
+
require 'date'
|
2
|
+
require 'json'
|
3
|
+
require 'faraday'
|
4
|
+
require 'certifi'
|
5
|
+
require 'logging'
|
6
|
+
|
7
|
+
require_relative 'square/api_helper'
|
8
|
+
require_relative 'square/client'
|
9
|
+
|
10
|
+
# Utilities
|
11
|
+
require_relative 'square/utilities/file_wrapper'
|
12
|
+
require_relative 'square/utilities/date_time_helper'
|
13
|
+
|
14
|
+
# Http
|
15
|
+
require_relative 'square/http/api_response'
|
16
|
+
require_relative 'square/http/http_call_back'
|
17
|
+
require_relative 'square/http/http_client'
|
18
|
+
require_relative 'square/http/faraday_client'
|
19
|
+
require_relative 'square/http/http_method_enum'
|
20
|
+
require_relative 'square/http/http_request'
|
21
|
+
require_relative 'square/http/http_response'
|
22
|
+
require_relative 'square/http/auth/o_auth2'
|
23
|
+
|
24
|
+
# Models
|
25
|
+
|
26
|
+
# Exceptions
|
27
|
+
require_relative 'square/exceptions/api_exception'
|
28
|
+
|
29
|
+
require_relative 'square/configuration'
|
30
|
+
|
31
|
+
# Controllers
|
32
|
+
require_relative 'square/api/base_api'
|
33
|
+
require_relative 'square/api/mobile_authorization_api'
|
34
|
+
require_relative 'square/api/o_auth_api'
|
35
|
+
require_relative 'square/api/v1_transactions_api'
|
36
|
+
require_relative 'square/api/apple_pay_api'
|
37
|
+
require_relative 'square/api/bank_accounts_api'
|
38
|
+
require_relative 'square/api/bookings_api'
|
39
|
+
require_relative 'square/api/cards_api'
|
40
|
+
require_relative 'square/api/cash_drawers_api'
|
41
|
+
require_relative 'square/api/catalog_api'
|
42
|
+
require_relative 'square/api/customers_api'
|
43
|
+
require_relative 'square/api/customer_groups_api'
|
44
|
+
require_relative 'square/api/customer_segments_api'
|
45
|
+
require_relative 'square/api/devices_api'
|
46
|
+
require_relative 'square/api/disputes_api'
|
47
|
+
require_relative 'square/api/employees_api'
|
48
|
+
require_relative 'square/api/gift_cards_api'
|
49
|
+
require_relative 'square/api/gift_card_activities_api'
|
50
|
+
require_relative 'square/api/inventory_api'
|
51
|
+
require_relative 'square/api/invoices_api'
|
52
|
+
require_relative 'square/api/labor_api'
|
53
|
+
require_relative 'square/api/locations_api'
|
54
|
+
require_relative 'square/api/checkout_api'
|
55
|
+
require_relative 'square/api/transactions_api'
|
56
|
+
require_relative 'square/api/loyalty_api'
|
57
|
+
require_relative 'square/api/merchants_api'
|
58
|
+
require_relative 'square/api/orders_api'
|
59
|
+
require_relative 'square/api/payments_api'
|
60
|
+
require_relative 'square/api/refunds_api'
|
61
|
+
require_relative 'square/api/sites_api'
|
62
|
+
require_relative 'square/api/snippets_api'
|
63
|
+
require_relative 'square/api/subscriptions_api'
|
64
|
+
require_relative 'square/api/team_api'
|
65
|
+
require_relative 'square/api/terminal_api'
|
data/spec/user_journey_spec.rb
CHANGED
@@ -121,11 +121,8 @@ describe "UserJourney" do
|
|
121
121
|
|
122
122
|
# list
|
123
123
|
response = sq.customers.list_customers
|
124
|
-
|
125
|
-
|
126
|
-
assert_equal response.status_code, 200
|
127
|
-
end
|
128
|
-
|
124
|
+
assert_equal response.data.to_h.keys, %i[customers]
|
125
|
+
assert_equal response.status_code, 200
|
129
126
|
|
130
127
|
# update
|
131
128
|
response = sq.customers.update_customer(customer_id: created_customer[:id], body: customer2)
|
data/test/api/api_test_base.rb
CHANGED
@@ -1,8 +1,3 @@
|
|
1
|
-
# square
|
2
|
-
#
|
3
|
-
# This file was automatically generated by APIMATIC v2.0
|
4
|
-
# ( https://apimatic.io ).
|
5
|
-
|
6
1
|
require 'json'
|
7
2
|
require 'minitest/autorun'
|
8
3
|
require 'minitest/hell'
|
@@ -19,6 +14,6 @@ class ApiTestBase < Minitest::Test
|
|
19
14
|
# Create configuration and set any test parameters
|
20
15
|
CONFIG = Configuration.new(
|
21
16
|
access_token: ENV.fetch('SQUARE_SANDBOX_TOKEN', 'AccessToken'),
|
22
|
-
environment:
|
17
|
+
environment: 'sandbox'
|
23
18
|
)
|
24
19
|
end
|
data/test/api/test_labor_api.rb
CHANGED
@@ -1,7 +1,4 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
# This file was automatically generated by APIMATIC v2.0
|
4
|
-
# ( https://apimatic.io ).
|
1
|
+
|
5
2
|
|
6
3
|
require_relative 'api_test_base'
|
7
4
|
|
@@ -35,12 +32,11 @@ class LaborApiTests < ApiTestBase
|
|
35
32
|
# Returns a paginated list of `EmployeeWage` instances for a business.
|
36
33
|
def test_list_employee_wages()
|
37
34
|
# Parameters for the API call
|
38
|
-
employee_id = nil
|
39
35
|
limit = nil
|
40
36
|
cursor = nil
|
41
37
|
|
42
38
|
# Perform the API call through the SDK function
|
43
|
-
result = @controller.list_employee_wages(
|
39
|
+
result = @controller.list_employee_wages(limit: limit, cursor: cursor)
|
44
40
|
|
45
41
|
# Test response code
|
46
42
|
assert_equal(200, @response_catcher.response.status_code)
|
@@ -1,35 +1,21 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
#
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
# Perform the API call through the SDK function
|
23
|
-
result = @controller.list_locations()
|
24
|
-
|
25
|
-
# Test response code
|
26
|
-
assert_equal(200, @response_catcher.response.status_code)
|
27
|
-
|
28
|
-
# Test headers
|
29
|
-
expected_headers = {}
|
30
|
-
expected_headers['content-type'] = 'application/json'
|
31
|
-
|
32
|
-
assert(TestHelper.match_headers(expected_headers, @response_catcher.response.headers))
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
1
|
+
require_relative 'api_test_base'
|
2
|
+
|
3
|
+
class LocationsApiTests < ApiTestBase
|
4
|
+
# Called only once for the class before any test has executed
|
5
|
+
def setup
|
6
|
+
@response_catcher = HttpResponseCatcher.new
|
7
|
+
@controller = LocationsApi.new CONFIG, http_call_back: @response_catcher
|
8
|
+
end
|
9
|
+
|
10
|
+
# Provides details about all of the seller's [locations](https://developer.squareup.com/docs/locations-api),
|
11
|
+
#including those with an inactive status.
|
12
|
+
def test_list_locations()
|
13
|
+
|
14
|
+
# Perform the API call through the SDK function
|
15
|
+
result = @controller.list_locations()
|
16
|
+
|
17
|
+
# Test response code
|
18
|
+
assert_equal(200, @response_catcher.response.status_code)
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -1,7 +1,4 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
# This file was automatically generated by APIMATIC v2.0
|
4
|
-
# ( https://apimatic.io ).
|
1
|
+
|
5
2
|
|
6
3
|
require_relative 'api_test_base'
|
7
4
|
|
@@ -12,8 +9,8 @@ class PaymentsApiTests < ApiTestBase
|
|
12
9
|
@controller = PaymentsApi.new CONFIG, http_call_back: @response_catcher
|
13
10
|
end
|
14
11
|
|
15
|
-
# Retrieves a list of payments taken by the account making the request.
|
16
|
-
#
|
12
|
+
# Retrieves a list of payments taken by the account making the request.
|
13
|
+
#
|
17
14
|
#Max results per page: 100
|
18
15
|
def test_test_list_payments()
|
19
16
|
# Parameters for the API call
|
@@ -1,7 +1,4 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
# This file was automatically generated by APIMATIC v2.0
|
4
|
-
# ( https://apimatic.io ).
|
1
|
+
|
5
2
|
|
6
3
|
require_relative 'api_test_base'
|
7
4
|
|
@@ -12,8 +9,8 @@ class RefundsApiTests < ApiTestBase
|
|
12
9
|
@controller = RefundsApi.new CONFIG, http_call_back: @response_catcher
|
13
10
|
end
|
14
11
|
|
15
|
-
# Retrieves a list of refunds for the account making the request.
|
16
|
-
#
|
12
|
+
# Retrieves a list of refunds for the account making the request.
|
13
|
+
#
|
17
14
|
#Max results per page: 100
|
18
15
|
def test_test_list_payment_refunds()
|
19
16
|
# Parameters for the API call
|
data/test/test_helper.rb
CHANGED
@@ -1,8 +1,3 @@
|
|
1
|
-
# square
|
2
|
-
#
|
3
|
-
# This file was automatically generated by APIMATIC v2.0
|
4
|
-
# ( https://apimatic.io ).
|
5
|
-
|
6
1
|
require 'tempfile'
|
7
2
|
require 'open-uri'
|
8
3
|
|
@@ -87,7 +82,7 @@ class TestHelper
|
|
87
82
|
unless @cache.keys.include? url
|
88
83
|
@cache[url] = Tempfile.new('APIMatic')
|
89
84
|
@cache[url].binmode
|
90
|
-
@cache[url].write(open(url, {ssl_ca_cert: Certifi.where}).read)
|
85
|
+
@cache[url].write(URI.open(url, {ssl_ca_cert: Certifi.where}).read)
|
91
86
|
end
|
92
87
|
return @cache[url].path
|
93
88
|
end
|