gonebusy-ruby-client 0.0.9 → 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.
- checksums.yaml +4 -4
- data/README.md +29 -68
- data/lib/gonebusy/api_helper.rb +181 -149
- data/lib/gonebusy/configuration.rb +51 -16
- data/lib/gonebusy/controllers/base_controller.rb +46 -45
- data/lib/gonebusy/controllers/bookings_controller.rb +257 -293
- data/lib/gonebusy/controllers/categories_controller.rb +151 -180
- data/lib/gonebusy/controllers/pricing_models_controller.rb +202 -241
- data/lib/gonebusy/controllers/resources_controller.rb +295 -355
- data/lib/gonebusy/controllers/schedules_controller.rb +361 -428
- data/lib/gonebusy/controllers/search_controller.rb +52 -63
- data/lib/gonebusy/controllers/services_controller.rb +310 -367
- data/lib/gonebusy/controllers/users_controller.rb +199 -239
- data/lib/gonebusy/exceptions/api_exception.rb +16 -16
- data/lib/gonebusy/exceptions/entities_error_error_exception.rb +27 -0
- data/lib/gonebusy/exceptions/entities_error_exception.rb +26 -26
- data/lib/gonebusy/gonebusy_client.rb +58 -58
- data/lib/gonebusy/http/auth/custom_auth.rb +15 -15
- data/lib/gonebusy/http/faraday_client.rb +43 -41
- data/lib/gonebusy/http/http_call_back.rb +17 -17
- data/lib/gonebusy/http/http_client.rb +84 -82
- data/lib/gonebusy/http/http_context.rb +15 -15
- data/lib/gonebusy/http/http_method_enum.rb +7 -7
- data/lib/gonebusy/http/http_request.rb +44 -44
- data/lib/gonebusy/http/http_response.rb +19 -19
- data/lib/gonebusy/models/base_model.rb +31 -31
- data/lib/gonebusy/models/cancel_booking_by_id_response.rb +35 -35
- data/lib/gonebusy/models/create_booking_body.rb +134 -80
- data/lib/gonebusy/models/create_booking_response.rb +35 -35
- data/lib/gonebusy/models/create_category_body.rb +71 -71
- data/lib/gonebusy/models/create_category_response.rb +35 -35
- data/lib/gonebusy/models/create_pricing_model_body.rb +80 -80
- data/lib/gonebusy/models/create_pricing_model_response.rb +35 -35
- data/lib/gonebusy/models/create_resource_body.rb +89 -89
- data/lib/gonebusy/models/create_resource_response.rb +35 -35
- data/lib/gonebusy/models/create_schedule_body.rb +143 -144
- data/lib/gonebusy/models/create_schedule_response.rb +35 -35
- data/lib/gonebusy/models/create_schedule_time_window_body.rb +116 -117
- data/lib/gonebusy/models/create_schedule_time_window_response.rb +35 -35
- data/lib/gonebusy/models/create_service_body.rb +107 -107
- data/lib/gonebusy/models/create_service_response.rb +35 -35
- data/lib/gonebusy/models/create_user_body.rb +89 -89
- data/lib/gonebusy/models/create_user_response.rb +35 -35
- data/lib/gonebusy/models/date_recurs_by_enum.rb +12 -12
- data/lib/gonebusy/models/delete_resource_by_id_response.rb +35 -35
- data/lib/gonebusy/models/delete_schedule_by_id_response.rb +35 -35
- data/lib/gonebusy/models/delete_schedule_time_window_by_id_response.rb +35 -35
- data/lib/gonebusy/models/delete_service_by_id_response.rb +35 -35
- data/lib/gonebusy/models/entities_address_entity.rb +116 -116
- data/lib/gonebusy/models/entities_availability_response.rb +58 -58
- data/lib/gonebusy/models/entities_booking_response.rb +71 -71
- data/lib/gonebusy/models/entities_category_response.rb +98 -98
- data/lib/gonebusy/models/entities_pricing_model_response.rb +89 -89
- data/lib/gonebusy/models/entities_resource_availabilities.rb +49 -49
- data/lib/gonebusy/models/entities_resource_response.rb +107 -107
- data/lib/gonebusy/models/entities_schedule_response.rb +76 -76
- data/lib/gonebusy/models/entities_search_response.rb +54 -54
- data/lib/gonebusy/models/entities_service_response.rb +134 -130
- data/lib/gonebusy/models/entities_slots.rb +44 -45
- data/lib/gonebusy/models/entities_thing_type_response.rb +44 -44
- data/lib/gonebusy/models/entities_time_window_response.rb +134 -135
- data/lib/gonebusy/models/entities_user_response.rb +152 -152
- data/lib/gonebusy/models/frequency_enum.rb +17 -17
- data/lib/gonebusy/models/gender_enum.rb +9 -9
- data/lib/gonebusy/models/get_booking_by_id_response.rb +35 -35
- data/lib/gonebusy/models/get_bookings_response.rb +40 -40
- data/lib/gonebusy/models/get_categories_response.rb +40 -40
- data/lib/gonebusy/models/get_category_by_id_response.rb +35 -35
- data/lib/gonebusy/models/get_pricing_model_by_id_response.rb +35 -35
- data/lib/gonebusy/models/get_pricing_models_response.rb +40 -40
- data/lib/gonebusy/models/get_resource_by_id_response.rb +35 -35
- data/lib/gonebusy/models/get_resource_things_response.rb +40 -40
- data/lib/gonebusy/models/get_resources_response.rb +40 -40
- data/lib/gonebusy/models/get_schedule_by_id_response.rb +35 -35
- data/lib/gonebusy/models/get_schedules_response.rb +40 -40
- data/lib/gonebusy/models/get_service_available_slots_by_id_response.rb +35 -35
- data/lib/gonebusy/models/get_service_by_id_response.rb +35 -35
- data/lib/gonebusy/models/get_services_response.rb +40 -40
- data/lib/gonebusy/models/get_user_by_id_response.rb +35 -35
- data/lib/gonebusy/models/get_users_response.rb +40 -40
- data/lib/gonebusy/models/occurrence_enum.rb +21 -21
- data/lib/gonebusy/models/recurs_by_enum.rb +15 -15
- data/lib/gonebusy/models/search_query_response.rb +35 -35
- data/lib/gonebusy/models/update_booking_by_id_body.rb +116 -0
- data/lib/gonebusy/models/update_booking_by_id_response.rb +35 -35
- data/lib/gonebusy/models/update_pricing_model_by_id_body.rb +62 -62
- data/lib/gonebusy/models/update_pricing_model_by_id_response.rb +35 -35
- data/lib/gonebusy/models/update_resource_by_id_body.rb +71 -71
- data/lib/gonebusy/models/update_resource_by_id_response.rb +35 -35
- data/lib/gonebusy/models/update_schedule_time_window_by_id_body.rb +116 -117
- data/lib/gonebusy/models/update_schedule_time_window_by_id_response.rb +35 -35
- data/lib/gonebusy/models/update_service_by_id_body.rb +98 -98
- data/lib/gonebusy/models/update_service_by_id_response.rb +35 -35
- data/lib/gonebusy/models/update_user_by_id_body.rb +89 -89
- data/lib/gonebusy/models/update_user_by_id_response.rb +35 -35
- data/lib/gonebusy.rb +108 -104
- metadata +53 -17
@@ -1,16 +1,51 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
#
|
7
|
-
@
|
8
|
-
|
9
|
-
#
|
10
|
-
class
|
11
|
-
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
|
16
|
-
|
1
|
+
# This file was automatically generated by APIMATIC v2.0 ( https://apimatic.io ).
|
2
|
+
|
3
|
+
module Gonebusy
|
4
|
+
class Configuration
|
5
|
+
# Set the array parameter serialization method
|
6
|
+
# (allowed: indexed, unindexed, plain, csv, tsv, psv)
|
7
|
+
@array_serialization = 'indexed'
|
8
|
+
|
9
|
+
# An enum for SDK environments
|
10
|
+
class Environment
|
11
|
+
#SANDBOX: https://sandbox.gonebusy.com/api/v1
|
12
|
+
ENVIRONMENT = [PRODUCTION = 0, SANDBOX = 1]
|
13
|
+
end
|
14
|
+
|
15
|
+
# An enum for API servers
|
16
|
+
class Server
|
17
|
+
SERVER = [DEFAULT = 0]
|
18
|
+
end
|
19
|
+
|
20
|
+
# The environment in which the SDK is running
|
21
|
+
@environment = Environment::PRODUCTION
|
22
|
+
|
23
|
+
# Set Authorization to "Token <your API key>"
|
24
|
+
@authorization = 'Token <your API key>'
|
25
|
+
|
26
|
+
# All the environments the SDK can run in
|
27
|
+
@environments = {
|
28
|
+
Environment::PRODUCTION => {
|
29
|
+
Server::DEFAULT => 'https://beta.gonebusy.com/api/v1',
|
30
|
+
},
|
31
|
+
Environment::SANDBOX => {
|
32
|
+
Server::DEFAULT => 'https://sandbox.gonebusy.com/api/v1',
|
33
|
+
},
|
34
|
+
}
|
35
|
+
|
36
|
+
# Generates the appropriate base URI for the environment and the server.
|
37
|
+
# @param [Configuration::Server] The server enum for which the base URI is required.
|
38
|
+
# @return [String] The base URI.
|
39
|
+
def self.get_base_uri(server = Server::DEFAULT)
|
40
|
+
environments[environment][server]
|
41
|
+
end
|
42
|
+
|
43
|
+
# The attribute accessors for public properties
|
44
|
+
class << self
|
45
|
+
attr_accessor :array_serialization
|
46
|
+
attr_accessor :environment
|
47
|
+
attr_accessor :environments
|
48
|
+
attr_accessor :authorization
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -1,45 +1,46 @@
|
|
1
|
-
# This file was automatically generated
|
2
|
-
|
3
|
-
module Gonebusy
|
4
|
-
class BaseController
|
5
|
-
attr_accessor :http_client, :http_call_back
|
6
|
-
|
7
|
-
@@http_client = FaradayClient.new
|
8
|
-
|
9
|
-
@@global_headers = {
|
10
|
-
'user-agent' => 'APIMATIC 2.0'
|
11
|
-
}
|
12
|
-
|
13
|
-
def initialize(http_client: nil, http_call_back: nil)
|
14
|
-
@http_client = http_client ||= @@http_client
|
15
|
-
@http_call_back = http_call_back
|
16
|
-
end
|
17
|
-
|
18
|
-
def validate_parameters(args)
|
19
|
-
args.each do |
|
20
|
-
if value
|
21
|
-
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def execute_request(request, binary: false)
|
27
|
-
@http_call_back.on_before_request(request) if @http_call_back
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
end
|
1
|
+
# This file was automatically generated by APIMATIC v2.0 ( https://apimatic.io ).
|
2
|
+
|
3
|
+
module Gonebusy
|
4
|
+
class BaseController
|
5
|
+
attr_accessor :http_client, :http_call_back
|
6
|
+
|
7
|
+
@@http_client = FaradayClient.new
|
8
|
+
|
9
|
+
@@global_headers = {
|
10
|
+
'user-agent' => 'APIMATIC 2.0'
|
11
|
+
}
|
12
|
+
|
13
|
+
def initialize(http_client: nil, http_call_back: nil)
|
14
|
+
@http_client = http_client ||= @@http_client
|
15
|
+
@http_call_back = http_call_back
|
16
|
+
end
|
17
|
+
|
18
|
+
def validate_parameters(args)
|
19
|
+
args.each do |_name, value|
|
20
|
+
if value.nil?
|
21
|
+
raise ArgumentError.new 'Required parameter #{name} cannot be nil.'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def execute_request(request, binary: false)
|
27
|
+
@http_call_back.on_before_request(request) if @http_call_back
|
28
|
+
|
29
|
+
APIHelper.clean_hash(request.headers)
|
30
|
+
request.headers = @@global_headers.clone.merge(request.headers)
|
31
|
+
|
32
|
+
response = binary ? @http_client.execute_as_binary(request) : @http_client.execute_as_string(request)
|
33
|
+
context = HttpContext.new(request, response)
|
34
|
+
|
35
|
+
@http_call_back.on_after_response(context) if @http_call_back
|
36
|
+
|
37
|
+
return context
|
38
|
+
end
|
39
|
+
|
40
|
+
def validate_response(context)
|
41
|
+
if !context.response.status_code.between?(200, 208) #[200,208] = HTTP OK
|
42
|
+
raise APIException.new 'HTTP Response Not OK', context
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -1,298 +1,262 @@
|
|
1
|
-
# This file was automatically generated
|
2
|
-
|
3
|
-
module Gonebusy
|
4
|
-
class BookingsController < BaseController
|
5
|
-
@@instance = BookingsController.new
|
6
|
-
# Singleton instance of the controller class
|
7
|
-
def self.instance
|
8
|
-
@@instance
|
9
|
-
end
|
10
|
-
|
11
|
-
# Create a Booking with params
|
12
|
-
# @param [String] authorization Required parameter: A valid API key, in the format 'Token API_KEY'
|
13
|
-
# @param [CreateBookingBody] create_booking_body Required parameter: the content of the request
|
14
|
-
# @return CreateBookingResponse response from the API call
|
15
|
-
def create_booking(options = Hash.new)
|
16
|
-
|
17
|
-
# the base uri for api requests
|
18
|
-
_query_builder = Configuration.base_uri.dup
|
19
|
-
|
20
|
-
# prepare query string for API call
|
21
|
-
_query_builder << '/bookings/new'
|
22
|
-
|
23
|
-
# validate and preprocess url
|
24
|
-
_query_url = APIHelper.clean_url _query_builder
|
25
|
-
|
26
|
-
# prepare headers
|
27
|
-
_headers = {
|
28
|
-
'accept' => 'application/json',
|
29
|
-
'content-type' => 'application/json; charset=utf-8',
|
30
|
-
'Authorization' => Configuration.authorization,
|
31
|
-
'Authorization' => options['authorization']
|
32
|
-
}
|
1
|
+
# This file was automatically generated by APIMATIC v2.0 ( https://apimatic.io ).
|
33
2
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
_context = execute_request(_request)
|
42
|
-
|
43
|
-
# endpoint error handling using HTTP status codes.
|
44
|
-
if _context.response.status_code == 400
|
45
|
-
raise EntitiesErrorException.new '400 - Bad Request', _context
|
46
|
-
elsif _context.response.status_code == 401
|
47
|
-
raise EntitiesErrorException.new '401 - Unauthorized/Missing Token', _context
|
48
|
-
elsif _context.response.status_code == 403
|
49
|
-
raise EntitiesErrorException.new '403 - Forbidden', _context
|
50
|
-
elsif _context.response.status_code == 422
|
51
|
-
raise EntitiesErrorException.new '422 - Unprocessable Entity', _context
|
52
|
-
elsif _context.response.status_code == 500
|
53
|
-
raise APIException.new '500 - Unexpected error', _context
|
54
|
-
end
|
55
|
-
|
56
|
-
# global error handling using HTTP status codes.
|
57
|
-
validate_response(_context)
|
58
|
-
|
59
|
-
# return appropriate response type
|
60
|
-
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
61
|
-
return CreateBookingResponse.from_hash(decoded)
|
62
|
-
end
|
63
|
-
|
64
|
-
# Return list of Bookings.
|
65
|
-
# @param [String] authorization Required parameter: A valid API key, in the format 'Token API_KEY'
|
66
|
-
# @param [Integer] page Optional parameter: Page offset to fetch.
|
67
|
-
# @param [Integer] per_page Optional parameter: Number of results to return per page.
|
68
|
-
# @param [String] states Optional parameter: Comma-separated list of Booking states to retrieve only Bookings in those states. Leave blank to retrieve all Bookings.
|
69
|
-
# @param [Integer] user_id Optional parameter: Retrieve Bookings owned only by this User Id. You must be authorized to manage this User Id.
|
70
|
-
# @return GetBookingsResponse response from the API call
|
71
|
-
def get_bookings(options = Hash.new)
|
72
|
-
|
73
|
-
# the base uri for api requests
|
74
|
-
_query_builder = Configuration.base_uri.dup
|
75
|
-
|
76
|
-
# prepare query string for API call
|
77
|
-
_query_builder << '/bookings'
|
78
|
-
|
79
|
-
# process optional query parameters
|
80
|
-
_query_builder = APIHelper.append_url_with_query_parameters _query_builder, {
|
81
|
-
'page' => options['page'],
|
82
|
-
'per_page' => options['per_page'],
|
83
|
-
'states' => options['states'],
|
84
|
-
'user_id' => options['user_id']
|
85
|
-
}
|
86
|
-
|
87
|
-
# validate and preprocess url
|
88
|
-
_query_url = APIHelper.clean_url _query_builder
|
89
|
-
|
90
|
-
# prepare headers
|
91
|
-
_headers = {
|
92
|
-
'accept' => 'application/json',
|
93
|
-
'Authorization' => Configuration.authorization,
|
94
|
-
'Authorization' => options['authorization']
|
95
|
-
}
|
3
|
+
module Gonebusy
|
4
|
+
class BookingsController < BaseController
|
5
|
+
@@instance = BookingsController.new
|
6
|
+
# Singleton instance of the controller class
|
7
|
+
def self.instance
|
8
|
+
@@instance
|
9
|
+
end
|
96
10
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
elsif _context.response.status_code == 403
|
110
|
-
raise EntitiesErrorException.new '403 - Forbidden', _context
|
111
|
-
elsif _context.response.status_code == 404
|
112
|
-
raise EntitiesErrorException.new '404 - Not Found', _context
|
113
|
-
elsif _context.response.status_code == 500
|
114
|
-
raise APIException.new '500 - Unexpected error', _context
|
115
|
-
end
|
116
|
-
|
117
|
-
# global error handling using HTTP status codes.
|
118
|
-
validate_response(_context)
|
119
|
-
|
120
|
-
# return appropriate response type
|
121
|
-
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
122
|
-
return GetBookingsResponse.from_hash(decoded)
|
123
|
-
end
|
124
|
-
|
125
|
-
# Cancel a Booking by id
|
126
|
-
# @param [String] authorization Required parameter: A valid API key, in the format 'Token API_KEY'
|
127
|
-
# @param [String] id Required parameter: Example:
|
128
|
-
# @return CancelBookingByIdResponse response from the API call
|
129
|
-
def cancel_booking_by_id(options = Hash.new)
|
130
|
-
|
131
|
-
# the base uri for api requests
|
132
|
-
_query_builder = Configuration.base_uri.dup
|
133
|
-
|
134
|
-
# prepare query string for API call
|
135
|
-
_query_builder << '/bookings/{id}'
|
136
|
-
|
137
|
-
# process optional query parameters
|
138
|
-
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
139
|
-
'id' => options['id']
|
140
|
-
}
|
141
|
-
|
142
|
-
# validate and preprocess url
|
143
|
-
_query_url = APIHelper.clean_url _query_builder
|
144
|
-
|
145
|
-
# prepare headers
|
146
|
-
_headers = {
|
147
|
-
'accept' => 'application/json',
|
148
|
-
'Authorization' => Configuration.authorization,
|
149
|
-
'Authorization' => options['authorization']
|
150
|
-
}
|
11
|
+
# Return list of Bookings.
|
12
|
+
# @param [String] authorization Required parameter: A valid API key, in the format 'Token API_KEY'
|
13
|
+
# @param [Integer] page Optional parameter: Page offset to fetch.
|
14
|
+
# @param [Integer] per_page Optional parameter: Number of results to return per page.
|
15
|
+
# @param [String] states Optional parameter: Comma-separated list of Booking states to retrieve only Bookings in those states. Leave blank to retrieve all Bookings.
|
16
|
+
# @param [Integer] user_id Optional parameter: Retrieve Bookings owned only by this User Id. You must be authorized to manage this User Id.
|
17
|
+
# @return GetBookingsResponse response from the API call
|
18
|
+
def get_bookings(authorization,
|
19
|
+
page = 1,
|
20
|
+
per_page = 10,
|
21
|
+
states = nil,
|
22
|
+
user_id = nil)
|
151
23
|
|
152
|
-
#
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
if _context.response.status_code == 400
|
163
|
-
raise EntitiesErrorException.new '400 - Bad Request', _context
|
164
|
-
elsif _context.response.status_code == 401
|
165
|
-
raise EntitiesErrorException.new '401 - Unauthorized/Missing Token', _context
|
166
|
-
elsif _context.response.status_code == 403
|
167
|
-
raise EntitiesErrorException.new '403 - Forbidden', _context
|
168
|
-
elsif _context.response.status_code == 404
|
169
|
-
raise EntitiesErrorException.new '404 - Not Found', _context
|
170
|
-
elsif _context.response.status_code == 500
|
171
|
-
raise APIException.new '500 - Unexpected error', _context
|
172
|
-
end
|
173
|
-
|
174
|
-
# global error handling using HTTP status codes.
|
175
|
-
validate_response(_context)
|
176
|
-
|
177
|
-
# return appropriate response type
|
178
|
-
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
179
|
-
return CancelBookingByIdResponse.from_hash(decoded)
|
180
|
-
end
|
181
|
-
|
182
|
-
# Update a Booking by id
|
183
|
-
# @param [String] authorization Required parameter: A valid API key, in the format 'Token API_KEY'
|
184
|
-
# @param [String] id Required parameter: Example:
|
185
|
-
# @return UpdateBookingByIdResponse response from the API call
|
186
|
-
def update_booking_by_id(options = Hash.new)
|
187
|
-
|
188
|
-
# the base uri for api requests
|
189
|
-
_query_builder = Configuration.base_uri.dup
|
190
|
-
|
191
|
-
# prepare query string for API call
|
192
|
-
_query_builder << '/bookings/{id}'
|
193
|
-
|
194
|
-
# process optional query parameters
|
195
|
-
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
196
|
-
'id' => options['id']
|
197
|
-
}
|
198
|
-
|
199
|
-
# validate and preprocess url
|
200
|
-
_query_url = APIHelper.clean_url _query_builder
|
201
|
-
|
202
|
-
# prepare headers
|
203
|
-
_headers = {
|
204
|
-
'accept' => 'application/json',
|
205
|
-
'Authorization' => Configuration.authorization,
|
206
|
-
'Authorization' => options['authorization']
|
207
|
-
}
|
24
|
+
# prepare query url
|
25
|
+
_query_builder = Configuration.get_base_uri()
|
26
|
+
_query_builder << '/bookings'
|
27
|
+
_query_builder = APIHelper.append_url_with_query_parameters _query_builder, {
|
28
|
+
'page' => page,
|
29
|
+
'per_page' => per_page,
|
30
|
+
'states' => states,
|
31
|
+
'user_id' => user_id
|
32
|
+
}, array_serialization: Configuration.array_serialization
|
33
|
+
_query_url = APIHelper.clean_url _query_builder
|
208
34
|
|
209
|
-
#
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
# execute the request
|
216
|
-
_context = execute_request(_request)
|
217
|
-
|
218
|
-
# endpoint error handling using HTTP status codes.
|
219
|
-
if _context.response.status_code == 400
|
220
|
-
raise EntitiesErrorException.new '400 - Bad Request', _context
|
221
|
-
elsif _context.response.status_code == 401
|
222
|
-
raise EntitiesErrorException.new '401 - Unauthorized/Missing Token', _context
|
223
|
-
elsif _context.response.status_code == 403
|
224
|
-
raise EntitiesErrorException.new '403 - Forbidden', _context
|
225
|
-
elsif _context.response.status_code == 404
|
226
|
-
raise EntitiesErrorException.new '404 - Not Found', _context
|
227
|
-
elsif _context.response.status_code == 422
|
228
|
-
raise EntitiesErrorException.new '422 - Unprocessable Entity', _context
|
229
|
-
elsif _context.response.status_code == 500
|
230
|
-
raise APIException.new '500 - Unexpected error', _context
|
231
|
-
end
|
232
|
-
|
233
|
-
# global error handling using HTTP status codes.
|
234
|
-
validate_response(_context)
|
235
|
-
|
236
|
-
# return appropriate response type
|
237
|
-
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
238
|
-
return UpdateBookingByIdResponse.from_hash(decoded)
|
239
|
-
end
|
240
|
-
|
241
|
-
# Return a Booking by id.
|
242
|
-
# @param [String] authorization Required parameter: A valid API key, in the format 'Token API_KEY'
|
243
|
-
# @param [String] id Required parameter: Example:
|
244
|
-
# @return GetBookingByIdResponse response from the API call
|
245
|
-
def get_booking_by_id(options = Hash.new)
|
246
|
-
|
247
|
-
# the base uri for api requests
|
248
|
-
_query_builder = Configuration.base_uri.dup
|
249
|
-
|
250
|
-
# prepare query string for API call
|
251
|
-
_query_builder << '/bookings/{id}'
|
252
|
-
|
253
|
-
# process optional query parameters
|
254
|
-
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
255
|
-
'id' => options['id']
|
256
|
-
}
|
257
|
-
|
258
|
-
# validate and preprocess url
|
259
|
-
_query_url = APIHelper.clean_url _query_builder
|
260
|
-
|
261
|
-
# prepare headers
|
262
|
-
_headers = {
|
263
|
-
'accept' => 'application/json',
|
264
|
-
'Authorization' => Configuration.authorization,
|
265
|
-
'Authorization' => options['authorization']
|
266
|
-
}
|
35
|
+
# prepare headers
|
36
|
+
_headers = {
|
37
|
+
'accept' => 'application/json',
|
38
|
+
'Authorization' => Configuration.authorization,
|
39
|
+
'Authorization' => authorization
|
40
|
+
}
|
267
41
|
|
268
|
-
#
|
269
|
-
_request = @http_client.get _query_url, headers: _headers
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
raise
|
280
|
-
elsif _context.response.status_code
|
281
|
-
raise
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
42
|
+
# prepare and execute HttpRequest
|
43
|
+
_request = @http_client.get _query_url, headers: _headers
|
44
|
+
CustomAuth.apply(_request)
|
45
|
+
_context = execute_request(_request)
|
46
|
+
|
47
|
+
# validate response against endpoint and global error codes
|
48
|
+
if _context.response.status_code == 401
|
49
|
+
raise EntitiesErrorErrorException.new 'Unauthorized/Missing Token', _context
|
50
|
+
elsif _context.response.status_code == 403
|
51
|
+
raise EntitiesErrorErrorException.new 'Forbidden', _context
|
52
|
+
elsif _context.response.status_code == 404
|
53
|
+
raise EntitiesErrorErrorException.new 'Not Found', _context
|
54
|
+
elsif !_context.response.status_code.between?(200, 208)
|
55
|
+
raise APIException.new 'Unexpected error', _context
|
56
|
+
end
|
57
|
+
validate_response(_context)
|
58
|
+
|
59
|
+
# return appropriate response type
|
60
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
61
|
+
return GetBookingsResponse.from_hash(decoded)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Create a Booking with params
|
65
|
+
# @param [String] authorization Required parameter: A valid API key, in the format 'Token API_KEY'
|
66
|
+
# @param [CreateBookingBody] create_booking_body Optional parameter: the content of the request
|
67
|
+
# @return CreateBookingResponse response from the API call
|
68
|
+
def create_booking(authorization,
|
69
|
+
create_booking_body = nil)
|
70
|
+
|
71
|
+
# prepare query url
|
72
|
+
_query_builder = Configuration.get_base_uri()
|
73
|
+
_query_builder << '/bookings/new'
|
74
|
+
_query_url = APIHelper.clean_url _query_builder
|
75
|
+
|
76
|
+
# prepare headers
|
77
|
+
_headers = {
|
78
|
+
'accept' => 'application/json',
|
79
|
+
'content-type' => 'application/json; charset=utf-8',
|
80
|
+
'Authorization' => Configuration.authorization,
|
81
|
+
'Authorization' => authorization
|
82
|
+
}
|
83
|
+
|
84
|
+
# prepare and execute HttpRequest
|
85
|
+
_request = @http_client.post _query_url, headers: _headers, parameters: create_booking_body.to_json
|
86
|
+
CustomAuth.apply(_request)
|
87
|
+
_context = execute_request(_request)
|
88
|
+
|
89
|
+
# validate response against endpoint and global error codes
|
90
|
+
if _context.response.status_code == 400
|
91
|
+
raise EntitiesErrorErrorException.new 'Bad Request', _context
|
92
|
+
elsif _context.response.status_code == 401
|
93
|
+
raise EntitiesErrorErrorException.new 'Unauthorized/Missing Token', _context
|
94
|
+
elsif _context.response.status_code == 403
|
95
|
+
raise EntitiesErrorErrorException.new 'Forbidden', _context
|
96
|
+
elsif _context.response.status_code == 422
|
97
|
+
raise EntitiesErrorErrorException.new 'Unprocessable Entity', _context
|
98
|
+
elsif !_context.response.status_code.between?(200, 208)
|
99
|
+
raise APIException.new 'Unexpected error', _context
|
100
|
+
end
|
101
|
+
validate_response(_context)
|
102
|
+
|
103
|
+
# return appropriate response type
|
104
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
105
|
+
return CreateBookingResponse.from_hash(decoded)
|
106
|
+
end
|
107
|
+
|
108
|
+
# Return a Booking by id.
|
109
|
+
# @param [String] authorization Required parameter: A valid API key, in the format 'Token API_KEY'
|
110
|
+
# @param [String] id Required parameter: Example:
|
111
|
+
# @return GetBookingByIdResponse response from the API call
|
112
|
+
def get_booking_by_id(authorization,
|
113
|
+
id)
|
114
|
+
|
115
|
+
# prepare query url
|
116
|
+
_query_builder = Configuration.get_base_uri()
|
117
|
+
_query_builder << '/bookings/{id}'
|
118
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
119
|
+
'id' => id
|
120
|
+
}
|
121
|
+
_query_url = APIHelper.clean_url _query_builder
|
122
|
+
|
123
|
+
# prepare headers
|
124
|
+
_headers = {
|
125
|
+
'accept' => 'application/json',
|
126
|
+
'Authorization' => Configuration.authorization,
|
127
|
+
'Authorization' => authorization
|
128
|
+
}
|
129
|
+
|
130
|
+
# prepare and execute HttpRequest
|
131
|
+
_request = @http_client.get _query_url, headers: _headers
|
132
|
+
CustomAuth.apply(_request)
|
133
|
+
_context = execute_request(_request)
|
134
|
+
|
135
|
+
# validate response against endpoint and global error codes
|
136
|
+
if _context.response.status_code == 400
|
137
|
+
raise EntitiesErrorErrorException.new 'Bad Request', _context
|
138
|
+
elsif _context.response.status_code == 401
|
139
|
+
raise EntitiesErrorErrorException.new 'Unauthorized/Missing Token', _context
|
140
|
+
elsif _context.response.status_code == 403
|
141
|
+
raise EntitiesErrorErrorException.new 'Forbidden', _context
|
142
|
+
elsif _context.response.status_code == 404
|
143
|
+
raise EntitiesErrorErrorException.new 'Not Found', _context
|
144
|
+
elsif !_context.response.status_code.between?(200, 208)
|
145
|
+
raise APIException.new 'Unexpected error', _context
|
146
|
+
end
|
147
|
+
validate_response(_context)
|
148
|
+
|
149
|
+
# return appropriate response type
|
150
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
151
|
+
return GetBookingByIdResponse.from_hash(decoded)
|
152
|
+
end
|
153
|
+
|
154
|
+
# Update a Booking by id
|
155
|
+
# @param [String] authorization Required parameter: A valid API key, in the format 'Token API_KEY'
|
156
|
+
# @param [String] id Required parameter: Example:
|
157
|
+
# @param [UpdateBookingByIdBody] update_booking_by_id_body Optional parameter: the content of the request
|
158
|
+
# @return UpdateBookingByIdResponse response from the API call
|
159
|
+
def update_booking_by_id(authorization,
|
160
|
+
id,
|
161
|
+
update_booking_by_id_body = nil)
|
162
|
+
|
163
|
+
# prepare query url
|
164
|
+
_query_builder = Configuration.get_base_uri()
|
165
|
+
_query_builder << '/bookings/{id}'
|
166
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
167
|
+
'id' => id
|
168
|
+
}
|
169
|
+
_query_url = APIHelper.clean_url _query_builder
|
170
|
+
|
171
|
+
# prepare headers
|
172
|
+
_headers = {
|
173
|
+
'accept' => 'application/json',
|
174
|
+
'content-type' => 'application/json; charset=utf-8',
|
175
|
+
'Authorization' => Configuration.authorization,
|
176
|
+
'Authorization' => authorization
|
177
|
+
}
|
178
|
+
|
179
|
+
# prepare and execute HttpRequest
|
180
|
+
_request = @http_client.put _query_url, headers: _headers, parameters: update_booking_by_id_body.to_json
|
181
|
+
CustomAuth.apply(_request)
|
182
|
+
_context = execute_request(_request)
|
183
|
+
|
184
|
+
# validate response against endpoint and global error codes
|
185
|
+
if _context.response.status_code == 400
|
186
|
+
raise EntitiesErrorErrorException.new 'Bad Request', _context
|
187
|
+
elsif _context.response.status_code == 401
|
188
|
+
raise EntitiesErrorErrorException.new 'Unauthorized/Missing Token', _context
|
189
|
+
elsif _context.response.status_code == 403
|
190
|
+
raise EntitiesErrorErrorException.new 'Forbidden', _context
|
191
|
+
elsif _context.response.status_code == 404
|
192
|
+
raise EntitiesErrorErrorException.new 'Not Found', _context
|
193
|
+
elsif _context.response.status_code == 422
|
194
|
+
raise EntitiesErrorErrorException.new 'Unprocessable Entity', _context
|
195
|
+
elsif !_context.response.status_code.between?(200, 208)
|
196
|
+
raise APIException.new 'Unexpected error', _context
|
197
|
+
end
|
198
|
+
validate_response(_context)
|
199
|
+
|
200
|
+
# return appropriate response type
|
201
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
202
|
+
return UpdateBookingByIdResponse.from_hash(decoded)
|
203
|
+
end
|
204
|
+
|
205
|
+
# Cancel a Booking by id
|
206
|
+
# @param [String] authorization Required parameter: A valid API key, in the format 'Token API_KEY'
|
207
|
+
# @param [String] id Required parameter: Example:
|
208
|
+
# @param [String] cancel_recurring Optional parameter: When a recurring booking, one of: ['instance', 'all', 'infinite']
|
209
|
+
# @param [Date] date Optional parameter: If a recurring booking, the date of an instance to cancel. Several formats are supported: '2014-10-31', 'October 31, 2014'
|
210
|
+
# @param [Date] end_date Optional parameter: If recurring, cancel up to :end_date or leave blank for infinite booking. Several formats are supported: '2014-10-31', 'October 31, 2014'.
|
211
|
+
# @return CancelBookingByIdResponse response from the API call
|
212
|
+
def cancel_booking_by_id(authorization,
|
213
|
+
id,
|
214
|
+
cancel_recurring = nil,
|
215
|
+
date = nil,
|
216
|
+
end_date = nil)
|
217
|
+
|
218
|
+
# prepare query url
|
219
|
+
_query_builder = Configuration.get_base_uri()
|
220
|
+
_query_builder << '/bookings/{id}'
|
221
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
222
|
+
'id' => id
|
223
|
+
}
|
224
|
+
_query_builder = APIHelper.append_url_with_query_parameters _query_builder, {
|
225
|
+
'cancel_recurring' => cancel_recurring,
|
226
|
+
'date' => date,
|
227
|
+
'end_date' => end_date
|
228
|
+
}, array_serialization: Configuration.array_serialization
|
229
|
+
_query_url = APIHelper.clean_url _query_builder
|
230
|
+
|
231
|
+
# prepare headers
|
232
|
+
_headers = {
|
233
|
+
'accept' => 'application/json',
|
234
|
+
'Authorization' => Configuration.authorization,
|
235
|
+
'Authorization' => authorization
|
236
|
+
}
|
237
|
+
|
238
|
+
# prepare and execute HttpRequest
|
239
|
+
_request = @http_client.delete _query_url, headers: _headers
|
240
|
+
CustomAuth.apply(_request)
|
241
|
+
_context = execute_request(_request)
|
242
|
+
|
243
|
+
# validate response against endpoint and global error codes
|
244
|
+
if _context.response.status_code == 400
|
245
|
+
raise EntitiesErrorErrorException.new 'Bad Request', _context
|
246
|
+
elsif _context.response.status_code == 401
|
247
|
+
raise EntitiesErrorErrorException.new 'Unauthorized/Missing Token', _context
|
248
|
+
elsif _context.response.status_code == 403
|
249
|
+
raise EntitiesErrorErrorException.new 'Forbidden', _context
|
250
|
+
elsif _context.response.status_code == 404
|
251
|
+
raise EntitiesErrorErrorException.new 'Not Found', _context
|
252
|
+
elsif !_context.response.status_code.between?(200, 208)
|
253
|
+
raise APIException.new 'Unexpected error', _context
|
254
|
+
end
|
255
|
+
validate_response(_context)
|
256
|
+
|
257
|
+
# return appropriate response type
|
258
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
259
|
+
return CancelBookingByIdResponse.from_hash(decoded)
|
260
|
+
end
|
261
|
+
end
|
262
|
+
end
|