square.rb 3.3.0.20191217
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +10 -0
- data/README.md +285 -0
- data/lib/square/api/apple_pay_api.rb +50 -0
- data/lib/square/api/base_api.rb +43 -0
- data/lib/square/api/cash_drawers_api.rb +150 -0
- data/lib/square/api/catalog_api.rb +545 -0
- data/lib/square/api/checkout_api.rb +49 -0
- data/lib/square/api/customers_api.rb +327 -0
- data/lib/square/api/employees_api.rb +86 -0
- data/lib/square/api/inventory_api.rb +295 -0
- data/lib/square/api/labor_api.rb +553 -0
- data/lib/square/api/locations_api.rb +146 -0
- data/lib/square/api/merchants_api.rb +82 -0
- data/lib/square/api/mobile_authorization_api.rb +52 -0
- data/lib/square/api/o_auth_api.rb +163 -0
- data/lib/square/api/orders_api.rb +266 -0
- data/lib/square/api/payments_api.rb +277 -0
- data/lib/square/api/refunds_api.rb +144 -0
- data/lib/square/api/reporting_api.rb +138 -0
- data/lib/square/api/transactions_api.rb +377 -0
- data/lib/square/api/v1_employees_api.rb +715 -0
- data/lib/square/api/v1_items_api.rb +2046 -0
- data/lib/square/api/v1_locations_api.rb +83 -0
- data/lib/square/api/v1_transactions_api.rb +568 -0
- data/lib/square/api_helper.rb +276 -0
- data/lib/square/client.rb +156 -0
- data/lib/square/configuration.rb +93 -0
- data/lib/square/exceptions/api_exception.rb +15 -0
- data/lib/square/http/api_response.rb +45 -0
- data/lib/square/http/auth/o_auth2.rb +12 -0
- data/lib/square/http/faraday_client.rb +59 -0
- data/lib/square/http/http_call_back.rb +19 -0
- data/lib/square/http/http_client.rb +99 -0
- data/lib/square/http/http_method_enum.rb +8 -0
- data/lib/square/http/http_request.rb +45 -0
- data/lib/square/http/http_response.rb +24 -0
- data/lib/square.rb +49 -0
- data/spec/user_journey_spec.rb +145 -0
- data/test/api/api_test_base.rb +24 -0
- data/test/api/test_catalog_api.rb +59 -0
- data/test/api/test_customers_api.rb +45 -0
- data/test/api/test_employees_api.rb +36 -0
- data/test/api/test_labor_api.rb +74 -0
- data/test/api/test_locations_api.rb +35 -0
- data/test/api/test_merchants_api.rb +40 -0
- data/test/api/test_payments_api.rb +42 -0
- data/test/api/test_refunds_api.rb +41 -0
- data/test/http_response_catcher.rb +19 -0
- data/test/test_helper.rb +94 -0
- metadata +190 -0
@@ -0,0 +1,99 @@
|
|
1
|
+
module Square
|
2
|
+
# An interface for the methods that an HTTP Client must implement.
|
3
|
+
#
|
4
|
+
# This class should not be instantiated but should be used as a base class
|
5
|
+
# for HTTP Client classes.
|
6
|
+
class HttpClient
|
7
|
+
# Execute an HttpRequest when the response is expected to be a string.
|
8
|
+
# @param [HttpRequest] The HttpRequest to be executed.
|
9
|
+
def execute_as_string(_http_request)
|
10
|
+
raise NotImplementedError, 'This method needs
|
11
|
+
to be implemented in a child class.'
|
12
|
+
end
|
13
|
+
|
14
|
+
# Execute an HttpRequest when the response is expected to be binary.
|
15
|
+
# @param [HttpRequest] The HttpRequest to be executed.
|
16
|
+
def execute_as_binary(_http_request)
|
17
|
+
raise NotImplementedError, 'This method needs
|
18
|
+
to be implemented in a child class.'
|
19
|
+
end
|
20
|
+
|
21
|
+
# Converts the HTTP Response from the client to an HttpResponse object.
|
22
|
+
# @param [Dynamic] The response object received from the client.
|
23
|
+
def convert_response(_response)
|
24
|
+
raise NotImplementedError, 'This method needs
|
25
|
+
to be implemented in a child class.'
|
26
|
+
end
|
27
|
+
|
28
|
+
# Get a GET HttpRequest object.
|
29
|
+
# @param [String] The URL to send the request to.
|
30
|
+
# @param [Hash, Optional] The headers for the HTTP Request.
|
31
|
+
def get(query_url,
|
32
|
+
headers: {})
|
33
|
+
HttpRequest.new(HttpMethodEnum::GET,
|
34
|
+
query_url,
|
35
|
+
headers: headers)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Get a HEAD HttpRequest object.
|
39
|
+
# @param [String] The URL to send the request to.
|
40
|
+
# @param [Hash, Optional] The headers for the HTTP Request.
|
41
|
+
def head(query_url,
|
42
|
+
headers: {})
|
43
|
+
HttpRequest.new(HttpMethodEnum::HEAD,
|
44
|
+
query_url,
|
45
|
+
headers: headers)
|
46
|
+
end
|
47
|
+
|
48
|
+
# Get a POST HttpRequest object.
|
49
|
+
# @param [String] The URL to send the request to.
|
50
|
+
# @param [Hash, Optional] The headers for the HTTP Request.
|
51
|
+
# @param [Hash, Optional] The parameters for the HTTP Request.
|
52
|
+
def post(query_url,
|
53
|
+
headers: {},
|
54
|
+
parameters: {})
|
55
|
+
HttpRequest.new(HttpMethodEnum::POST,
|
56
|
+
query_url,
|
57
|
+
headers: headers,
|
58
|
+
parameters: parameters)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Get a PUT HttpRequest object.
|
62
|
+
# @param [String] The URL to send the request to.
|
63
|
+
# @param [Hash, Optional] The headers for the HTTP Request.
|
64
|
+
# @param [Hash, Optional] The parameters for the HTTP Request.
|
65
|
+
def put(query_url,
|
66
|
+
headers: {},
|
67
|
+
parameters: {})
|
68
|
+
HttpRequest.new(HttpMethodEnum::PUT,
|
69
|
+
query_url,
|
70
|
+
headers: headers,
|
71
|
+
parameters: parameters)
|
72
|
+
end
|
73
|
+
|
74
|
+
# Get a PATCH HttpRequest object.
|
75
|
+
# @param [String] The URL to send the request to.
|
76
|
+
# @param [Hash, Optional] The headers for the HTTP Request.
|
77
|
+
# @param [Hash, Optional] The parameters for the HTTP Request.
|
78
|
+
def patch(query_url,
|
79
|
+
headers: {},
|
80
|
+
parameters: {})
|
81
|
+
HttpRequest.new(HttpMethodEnum::PATCH,
|
82
|
+
query_url,
|
83
|
+
headers: headers,
|
84
|
+
parameters: parameters)
|
85
|
+
end
|
86
|
+
|
87
|
+
# Get a DELETE HttpRequest object.
|
88
|
+
# @param [String] The URL to send the request to.
|
89
|
+
# @param [Hash, Optional] The headers for the HTTP Request.
|
90
|
+
def delete(query_url,
|
91
|
+
headers: {},
|
92
|
+
parameters: {})
|
93
|
+
HttpRequest.new(HttpMethodEnum::DELETE,
|
94
|
+
query_url,
|
95
|
+
headers: headers,
|
96
|
+
parameters: parameters)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Square
|
2
|
+
# Represents a single Http Request.
|
3
|
+
class HttpRequest
|
4
|
+
attr_accessor :http_method, :query_url, :headers,
|
5
|
+
:parameters, :username, :password
|
6
|
+
|
7
|
+
# The constructor.
|
8
|
+
# @param [HttpMethodEnum] The HTTP method.
|
9
|
+
# @param [String] The URL to send the request to.
|
10
|
+
# @param [Hash, Optional] The headers for the HTTP Request.
|
11
|
+
# @param [Hash, Optional] The parameters for the HTTP Request.
|
12
|
+
def initialize(http_method,
|
13
|
+
query_url,
|
14
|
+
headers: {},
|
15
|
+
parameters: {})
|
16
|
+
@http_method = http_method
|
17
|
+
@query_url = query_url
|
18
|
+
@headers = headers
|
19
|
+
@parameters = parameters
|
20
|
+
end
|
21
|
+
|
22
|
+
# Add a header to the HttpRequest.
|
23
|
+
# @param [String] The name of the header.
|
24
|
+
# @param [String] The value of the header.
|
25
|
+
def add_header(name, value)
|
26
|
+
@headers[name] = value
|
27
|
+
end
|
28
|
+
|
29
|
+
# Add a parameter to the HttpRequest.
|
30
|
+
# @param [String] The name of the parameter.
|
31
|
+
# @param [String] The value of the parameter.
|
32
|
+
def add_parameter(name, value)
|
33
|
+
@parameters[name] = value
|
34
|
+
end
|
35
|
+
|
36
|
+
# Add a query parameter to the HttpRequest.
|
37
|
+
# @param [String] The name of the query parameter.
|
38
|
+
# @param [String] The value of the query parameter.
|
39
|
+
def add_query_parameter(name, value)
|
40
|
+
@query_url = APIHelper.append_url_with_query_parameters(@query_url,
|
41
|
+
name => value)
|
42
|
+
@query_url = APIHelper.clean_url(@query_url)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Square
|
2
|
+
# Http response received.
|
3
|
+
class HttpResponse
|
4
|
+
attr_reader :status_code, :reason_phrase, :headers, :raw_body, :request
|
5
|
+
|
6
|
+
# The constructor
|
7
|
+
# @param [Integer] The status code returned by the server.
|
8
|
+
# @param [String] The reason phrase returned by the server.
|
9
|
+
# @param [Hash] The headers sent by the server in the response.
|
10
|
+
# @param [String] The raw body of the response.
|
11
|
+
# @param [HttpRequest] The request that resulted in this response.
|
12
|
+
def initialize(status_code,
|
13
|
+
reason_phrase,
|
14
|
+
headers,
|
15
|
+
raw_body,
|
16
|
+
request)
|
17
|
+
@status_code = status_code
|
18
|
+
@reason_phrase = reason_phrase
|
19
|
+
@headers = headers
|
20
|
+
@raw_body = raw_body
|
21
|
+
@request = request
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/square.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'date'
|
2
|
+
require 'json'
|
3
|
+
require 'faraday'
|
4
|
+
require 'certifi'
|
5
|
+
require 'logging'
|
6
|
+
|
7
|
+
require_relative 'square/api_helper.rb'
|
8
|
+
require_relative 'square/client.rb'
|
9
|
+
|
10
|
+
# Http
|
11
|
+
require_relative 'square/http/api_response.rb'
|
12
|
+
require_relative 'square/http/http_call_back.rb'
|
13
|
+
require_relative 'square/http/http_client.rb'
|
14
|
+
require_relative 'square/http/faraday_client.rb'
|
15
|
+
require_relative 'square/http/http_method_enum.rb'
|
16
|
+
require_relative 'square/http/http_request.rb'
|
17
|
+
require_relative 'square/http/http_response.rb'
|
18
|
+
require_relative 'square/http/auth/o_auth2.rb'
|
19
|
+
|
20
|
+
# Models
|
21
|
+
|
22
|
+
# Exceptions
|
23
|
+
require_relative 'square/exceptions/api_exception.rb'
|
24
|
+
|
25
|
+
require_relative 'square/configuration.rb'
|
26
|
+
|
27
|
+
# Controllers
|
28
|
+
require_relative 'square/api/base_api.rb'
|
29
|
+
require_relative 'square/api/mobile_authorization_api.rb'
|
30
|
+
require_relative 'square/api/o_auth_api.rb'
|
31
|
+
require_relative 'square/api/v1_locations_api.rb'
|
32
|
+
require_relative 'square/api/v1_employees_api.rb'
|
33
|
+
require_relative 'square/api/v1_transactions_api.rb'
|
34
|
+
require_relative 'square/api/v1_items_api.rb'
|
35
|
+
require_relative 'square/api/apple_pay_api.rb'
|
36
|
+
require_relative 'square/api/cash_drawers_api.rb'
|
37
|
+
require_relative 'square/api/catalog_api.rb'
|
38
|
+
require_relative 'square/api/customers_api.rb'
|
39
|
+
require_relative 'square/api/employees_api.rb'
|
40
|
+
require_relative 'square/api/inventory_api.rb'
|
41
|
+
require_relative 'square/api/labor_api.rb'
|
42
|
+
require_relative 'square/api/locations_api.rb'
|
43
|
+
require_relative 'square/api/reporting_api.rb'
|
44
|
+
require_relative 'square/api/checkout_api.rb'
|
45
|
+
require_relative 'square/api/orders_api.rb'
|
46
|
+
require_relative 'square/api/transactions_api.rb'
|
47
|
+
require_relative 'square/api/merchants_api.rb'
|
48
|
+
require_relative 'square/api/payments_api.rb'
|
49
|
+
require_relative 'square/api/refunds_api.rb'
|
@@ -0,0 +1,145 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../test/api/api_test_base'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
describe "UserJourney" do
|
7
|
+
let(:access_token) { ApiTestBase::CONFIG.access_token }
|
8
|
+
let(:environment) { ApiTestBase::CONFIG.environment }
|
9
|
+
|
10
|
+
let(:phone_number) { "1-212-555-4240" }
|
11
|
+
let(:phone_number2) { "1-917-500-1000" }
|
12
|
+
let(:postal_code) { "10003" }
|
13
|
+
let(:postal_code2) { "98100" }
|
14
|
+
|
15
|
+
let :customer do
|
16
|
+
{
|
17
|
+
"given_name": "Amelia",
|
18
|
+
"family_name": "Earhart",
|
19
|
+
"phone_number": phone_number,
|
20
|
+
"note": "a customer",
|
21
|
+
"address": {
|
22
|
+
"address_line_1": "500 Electric Ave",
|
23
|
+
"address_line_2": "Suite 600",
|
24
|
+
"locality": "New York",
|
25
|
+
"administrative_district_level_1": "NY",
|
26
|
+
"postal_code": postal_code,
|
27
|
+
"country": "US"
|
28
|
+
}
|
29
|
+
}
|
30
|
+
end
|
31
|
+
|
32
|
+
let :sq do
|
33
|
+
Square::Client.new(access_token: access_token, environment: environment)
|
34
|
+
end
|
35
|
+
|
36
|
+
let :unauthoerized_sq do
|
37
|
+
Square::Client.new(access_token: "bad_token")
|
38
|
+
end
|
39
|
+
|
40
|
+
let :customer2 do
|
41
|
+
tmp_customer = customer.clone
|
42
|
+
tmp_customer[:phone_number] = phone_number2
|
43
|
+
tmp_customer[:address][:postal_code] = postal_code2
|
44
|
+
tmp_customer
|
45
|
+
end
|
46
|
+
|
47
|
+
describe 'Response Object Verification' do
|
48
|
+
it "should contain following fields" do
|
49
|
+
response = sq.locations.list_locations
|
50
|
+
assert_equal response.status_code, 200
|
51
|
+
assert_includes response.body.to_h.keys, :locations
|
52
|
+
assert_equal response.data.to_h.keys, %i[locations]
|
53
|
+
assert_nil response.errors
|
54
|
+
assert_nil response.cursor
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
describe 'ListLocations' do
|
59
|
+
it 'should return success 200' do
|
60
|
+
assert_equal sq.locations.list_locations.status_code, 200
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe 'API Call Error' do
|
65
|
+
it 'should return error' do
|
66
|
+
response = unauthoerized_sq.locations.list_locations
|
67
|
+
assert_equal response.status_code, 401
|
68
|
+
assert_instance_of Array, response.errors
|
69
|
+
refute_nil response.errors
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
# There is no sandbox support for V1 endpoints as production token is required for the following tests
|
74
|
+
# describe 'V1 Category' do
|
75
|
+
# it 'should succeed for each endpoint call' do
|
76
|
+
# location_id = "your_location_id"
|
77
|
+
# access_token = "your_production_access_token"
|
78
|
+
# name1 = "fruit"
|
79
|
+
# name2 = "drink"
|
80
|
+
# api = Square::Client.new(access_token: access_token).v1_items
|
81
|
+
#
|
82
|
+
# # create
|
83
|
+
# response = api.create_category(location_id: location_id, body: {name: name1})
|
84
|
+
# assert_equal response.data.name, name1
|
85
|
+
# assert_nil response.errors
|
86
|
+
# assert_equal response.status_code, 200
|
87
|
+
#
|
88
|
+
# created_id = response.data.id
|
89
|
+
#
|
90
|
+
# # list
|
91
|
+
# response = api.list_categories(location_id: location_id)
|
92
|
+
# assert_instance_of Array, response.data
|
93
|
+
# assert_equal response.status_code, 200
|
94
|
+
#
|
95
|
+
# # update
|
96
|
+
# response = api.update_category(location_id: location_id, category_id: created_id, body: {name: name2})
|
97
|
+
# assert_equal response.data.name, name2
|
98
|
+
# assert_equal response.status_code, 200
|
99
|
+
#
|
100
|
+
# # delete
|
101
|
+
# response = api.delete_category(location_id: location_id, category_id: created_id)
|
102
|
+
# assert_nil response.data
|
103
|
+
# assert_equal response.status_code, 200
|
104
|
+
# end
|
105
|
+
# end
|
106
|
+
|
107
|
+
describe 'V2 Customers' do
|
108
|
+
it 'should succeed for each endpoint call' do
|
109
|
+
# create
|
110
|
+
response = sq.customers.create_customer(body: customer)
|
111
|
+
assert_equal response.data.customer[:phone_number], phone_number
|
112
|
+
|
113
|
+
assert_equal response.status_code, 200
|
114
|
+
created_customer = response.data.customer
|
115
|
+
|
116
|
+
# retrieve
|
117
|
+
response = sq.customers.retrieve_customer(customer_id: created_customer[:id])
|
118
|
+
assert_equal response.data.customer[:phone_number], phone_number
|
119
|
+
assert_equal response.data.customer[:address][:postal_code], postal_code
|
120
|
+
assert_equal response.status_code, 200
|
121
|
+
|
122
|
+
# list
|
123
|
+
response = sq.customers.list_customers
|
124
|
+
assert_equal response.data.to_h.keys, %i[customers]
|
125
|
+
assert_equal response.status_code, 200
|
126
|
+
|
127
|
+
# update
|
128
|
+
response = sq.customers.update_customer(customer_id: created_customer[:id], body: customer2)
|
129
|
+
assert_equal response.data.customer[:phone_number], phone_number2
|
130
|
+
assert_equal response.data.customer[:address][:postal_code], postal_code2
|
131
|
+
assert_equal response.status_code, 200
|
132
|
+
|
133
|
+
# retrieve
|
134
|
+
response = sq.customers.retrieve_customer(customer_id: created_customer[:id])
|
135
|
+
assert_equal response.data.customer[:phone_number], phone_number2
|
136
|
+
assert_equal response.data.customer[:address][:postal_code], postal_code2
|
137
|
+
assert_equal response.status_code, 200
|
138
|
+
|
139
|
+
# delete
|
140
|
+
response = sq.customers.delete_customer(customer_id: created_customer[:id])
|
141
|
+
assert_equal response.data.to_h, {}
|
142
|
+
assert_equal response.status_code, 200
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# square
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
require 'json'
|
7
|
+
require 'minitest/autorun'
|
8
|
+
require 'minitest/hell'
|
9
|
+
require 'minitest/pride'
|
10
|
+
require 'minitest/proveit'
|
11
|
+
require 'square'
|
12
|
+
require_relative '../test_helper'
|
13
|
+
require_relative '../http_response_catcher'
|
14
|
+
|
15
|
+
class ApiTestBase < Minitest::Test
|
16
|
+
parallelize_me!
|
17
|
+
include Square
|
18
|
+
|
19
|
+
# Create configuration and set any test parameters
|
20
|
+
CONFIG = Configuration.new(
|
21
|
+
access_token: ENV.fetch('SQUARE_SANDBOX_TOKEN', 'AccessToken'),
|
22
|
+
environment: "sandbox"
|
23
|
+
)
|
24
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# square
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
require_relative 'api_test_base'
|
7
|
+
|
8
|
+
class CatalogApiTests < ApiTestBase
|
9
|
+
# Called only once for the class before any test has executed
|
10
|
+
def setup
|
11
|
+
@response_catcher = HttpResponseCatcher.new
|
12
|
+
@controller = CatalogApi.new CONFIG, http_call_back: @response_catcher
|
13
|
+
end
|
14
|
+
|
15
|
+
# Returns information about the Square Catalog API, such as batch size
|
16
|
+
#limits for `BatchUpsertCatalogObjects`.
|
17
|
+
def test_test_catalog_info()
|
18
|
+
|
19
|
+
# Perform the API call through the SDK function
|
20
|
+
result = @controller.catalog_info()
|
21
|
+
|
22
|
+
# Test response code
|
23
|
+
assert_equal(200, @response_catcher.response.status_code)
|
24
|
+
|
25
|
+
# Test headers
|
26
|
+
expected_headers = {}
|
27
|
+
expected_headers['content-type'] = 'application/json'
|
28
|
+
|
29
|
+
assert(TestHelper.match_headers(expected_headers, @response_catcher.response.headers))
|
30
|
+
end
|
31
|
+
|
32
|
+
# Returns a list of [CatalogObject](#type-catalogobject)s that includes
|
33
|
+
#all objects of a set of desired types (for example, all [CatalogItem](#type-catalogitem)
|
34
|
+
#and [CatalogTax](#type-catalogtax) objects) in the catalog. The `types` parameter
|
35
|
+
#is specified as a comma-separated list of valid [CatalogObject](#type-catalogobject) types:
|
36
|
+
#`ITEM`, `ITEM_VARIATION`, `MODIFIER`, `MODIFIER_LIST`, `CATEGORY`, `DISCOUNT`, `TAX`.
|
37
|
+
#
|
38
|
+
#__Important:__ ListCatalog does not return deleted catalog items. To retrieve
|
39
|
+
#deleted catalog items, use SearchCatalogObjects and set `include_deleted_objects`
|
40
|
+
#to `true`.
|
41
|
+
def test_test_list_catalog()
|
42
|
+
# Parameters for the API call
|
43
|
+
cursor = nil
|
44
|
+
types = nil
|
45
|
+
|
46
|
+
# Perform the API call through the SDK function
|
47
|
+
result = @controller.list_catalog(cursor: cursor, types: types)
|
48
|
+
|
49
|
+
# Test response code
|
50
|
+
assert_equal(200, @response_catcher.response.status_code)
|
51
|
+
|
52
|
+
# Test headers
|
53
|
+
expected_headers = {}
|
54
|
+
expected_headers['content-type'] = 'application/json'
|
55
|
+
|
56
|
+
assert(TestHelper.match_headers(expected_headers, @response_catcher.response.headers))
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# square
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
require_relative 'api_test_base'
|
7
|
+
|
8
|
+
class CustomersApiTests < ApiTestBase
|
9
|
+
# Called only once for the class before any test has executed
|
10
|
+
def setup
|
11
|
+
@response_catcher = HttpResponseCatcher.new
|
12
|
+
@controller = CustomersApi.new CONFIG, http_call_back: @response_catcher
|
13
|
+
end
|
14
|
+
|
15
|
+
# Creates a new customer for a business, which can have associated cards on file.
|
16
|
+
#
|
17
|
+
#You must provide __at least one__ of the following values in your request to this
|
18
|
+
#endpoint:
|
19
|
+
#
|
20
|
+
#- `given_name`
|
21
|
+
#- `family_name`
|
22
|
+
#- `company_name`
|
23
|
+
#- `email_address`
|
24
|
+
#- `phone_number`
|
25
|
+
#
|
26
|
+
#This endpoint does not accept an idempotency key. If you accidentally create
|
27
|
+
#a duplicate customer, you can delete it with the
|
28
|
+
#[DeleteCustomer](#endpoint-deletecustomer) endpoint.
|
29
|
+
def test_create_customer()
|
30
|
+
# Parameters for the API call
|
31
|
+
body = APIHelper.json_deserialize(
|
32
|
+
'{"given_name":"Amelia","family_name":"Earhart","email_address":"Amelia.Ear'\
|
33
|
+
'hart@example.com","address":{"address_line_1":"500 Electric Ave","address_l'\
|
34
|
+
'ine_2":"Suite 600","locality":"New York"},"phone_number":"1-212-555-4240","'\
|
35
|
+
'reference_id":"YOUR_REFERENCE_ID","note":"a customer"}'
|
36
|
+
)
|
37
|
+
|
38
|
+
# Perform the API call through the SDK function
|
39
|
+
result = @controller.create_customer(body: body)
|
40
|
+
|
41
|
+
# Test response code
|
42
|
+
assert_equal(200, @response_catcher.response.status_code)
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# square
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
require_relative 'api_test_base'
|
7
|
+
|
8
|
+
class EmployeesApiTests < ApiTestBase
|
9
|
+
# Called only once for the class before any test has executed
|
10
|
+
def setup
|
11
|
+
@response_catcher = HttpResponseCatcher.new
|
12
|
+
@controller = EmployeesApi.new CONFIG, http_call_back: @response_catcher
|
13
|
+
end
|
14
|
+
|
15
|
+
# Gets a list of `Employee` objects for a business.
|
16
|
+
def test_test_list_employees()
|
17
|
+
# Parameters for the API call
|
18
|
+
location_id = nil
|
19
|
+
status = nil
|
20
|
+
limit = nil
|
21
|
+
cursor = nil
|
22
|
+
|
23
|
+
# Perform the API call through the SDK function
|
24
|
+
result = @controller.list_employees(location_id: location_id, status: status, limit: limit, cursor: cursor)
|
25
|
+
|
26
|
+
# Test response code
|
27
|
+
assert_equal(200, @response_catcher.response.status_code)
|
28
|
+
|
29
|
+
# Test headers
|
30
|
+
expected_headers = {}
|
31
|
+
expected_headers['content-type'] = 'application/json'
|
32
|
+
|
33
|
+
assert(TestHelper.match_headers(expected_headers, @response_catcher.response.headers))
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# square
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
require_relative 'api_test_base'
|
7
|
+
|
8
|
+
class LaborApiTests < ApiTestBase
|
9
|
+
# Called only once for the class before any test has executed
|
10
|
+
def setup
|
11
|
+
@response_catcher = HttpResponseCatcher.new
|
12
|
+
@controller = LaborApi.new CONFIG, http_call_back: @response_catcher
|
13
|
+
end
|
14
|
+
|
15
|
+
# Returns a paginated list of `BreakType` instances for a business.
|
16
|
+
def test_list_break_types()
|
17
|
+
# Parameters for the API call
|
18
|
+
location_id = nil
|
19
|
+
limit = nil
|
20
|
+
cursor = nil
|
21
|
+
|
22
|
+
# Perform the API call through the SDK function
|
23
|
+
result = @controller.list_break_types(location_id: location_id, limit: limit, cursor: cursor)
|
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
|
+
# Returns a paginated list of `EmployeeWage` instances for a business.
|
36
|
+
def test_list_employee_wages()
|
37
|
+
# Parameters for the API call
|
38
|
+
employee_id = nil
|
39
|
+
limit = nil
|
40
|
+
cursor = nil
|
41
|
+
|
42
|
+
# Perform the API call through the SDK function
|
43
|
+
result = @controller.list_employee_wages(employee_id: employee_id, limit: limit, cursor: cursor)
|
44
|
+
|
45
|
+
# Test response code
|
46
|
+
assert_equal(200, @response_catcher.response.status_code)
|
47
|
+
|
48
|
+
# Test headers
|
49
|
+
expected_headers = {}
|
50
|
+
expected_headers['content-type'] = 'application/json'
|
51
|
+
|
52
|
+
assert(TestHelper.match_headers(expected_headers, @response_catcher.response.headers))
|
53
|
+
end
|
54
|
+
|
55
|
+
# Returns a list of `WorkweekConfig` instances for a business.
|
56
|
+
def test_list_workweek_configs()
|
57
|
+
# Parameters for the API call
|
58
|
+
limit = nil
|
59
|
+
cursor = nil
|
60
|
+
|
61
|
+
# Perform the API call through the SDK function
|
62
|
+
result = @controller.list_workweek_configs(limit: limit, cursor: cursor)
|
63
|
+
|
64
|
+
# Test response code
|
65
|
+
assert_equal(200, @response_catcher.response.status_code)
|
66
|
+
|
67
|
+
# Test headers
|
68
|
+
expected_headers = {}
|
69
|
+
expected_headers['content-type'] = 'application/json'
|
70
|
+
|
71
|
+
assert(TestHelper.match_headers(expected_headers, @response_catcher.response.headers))
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# square
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
require_relative 'api_test_base'
|
7
|
+
|
8
|
+
class LocationsApiTests < ApiTestBase
|
9
|
+
# Called only once for the class before any test has executed
|
10
|
+
def setup
|
11
|
+
@response_catcher = HttpResponseCatcher.new
|
12
|
+
@controller = LocationsApi.new CONFIG, http_call_back: @response_catcher
|
13
|
+
end
|
14
|
+
|
15
|
+
# Provides the details for all of a business's locations.
|
16
|
+
#
|
17
|
+
#Most other Connect API endpoints have a required `location_id` path parameter.
|
18
|
+
#The `id` field of the [`Location`](#type-location) objects returned by this
|
19
|
+
#endpoint correspond to that `location_id` parameter.
|
20
|
+
def test_test_list_locations()
|
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
|