gonebusy-ruby-client 0.0.2
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 +7 -0
- data/LICENSE +28 -0
- data/README.md +1963 -0
- data/lib/gonebusy/api_helper.rb +149 -0
- data/lib/gonebusy/configuration.rb +16 -0
- data/lib/gonebusy/controllers/base_controller.rb +45 -0
- data/lib/gonebusy/controllers/bookings_controller.rb +298 -0
- data/lib/gonebusy/controllers/categories_controller.rb +180 -0
- data/lib/gonebusy/controllers/pricing_models_controller.rb +241 -0
- data/lib/gonebusy/controllers/resources_controller.rb +355 -0
- data/lib/gonebusy/controllers/schedules_controller.rb +426 -0
- data/lib/gonebusy/controllers/search_controller.rb +64 -0
- data/lib/gonebusy/controllers/services_controller.rb +367 -0
- data/lib/gonebusy/controllers/users_controller.rb +288 -0
- data/lib/gonebusy/exceptions/api_exception.rb +16 -0
- data/lib/gonebusy/exceptions/entities_error_exception.rb +27 -0
- data/lib/gonebusy/gonebusy_client.rb +58 -0
- data/lib/gonebusy/http/auth/custom_auth.rb +16 -0
- data/lib/gonebusy/http/faraday_client.rb +41 -0
- data/lib/gonebusy/http/http_call_back.rb +17 -0
- data/lib/gonebusy/http/http_client.rb +82 -0
- data/lib/gonebusy/http/http_context.rb +15 -0
- data/lib/gonebusy/http/http_method_enum.rb +7 -0
- data/lib/gonebusy/http/http_request.rb +44 -0
- data/lib/gonebusy/http/http_response.rb +19 -0
- data/lib/gonebusy/models/base_model.rb +32 -0
- data/lib/gonebusy/models/cancel_booking_by_id_response.rb +35 -0
- data/lib/gonebusy/models/create_booking_body.rb +80 -0
- data/lib/gonebusy/models/create_booking_response.rb +35 -0
- data/lib/gonebusy/models/create_category_body.rb +71 -0
- data/lib/gonebusy/models/create_category_response.rb +35 -0
- data/lib/gonebusy/models/create_pricing_model_body.rb +80 -0
- data/lib/gonebusy/models/create_pricing_model_response.rb +35 -0
- data/lib/gonebusy/models/create_resource_body.rb +89 -0
- data/lib/gonebusy/models/create_resource_response.rb +35 -0
- data/lib/gonebusy/models/create_schedule_body.rb +144 -0
- data/lib/gonebusy/models/create_schedule_response.rb +35 -0
- data/lib/gonebusy/models/create_schedule_time_window_body.rb +117 -0
- data/lib/gonebusy/models/create_schedule_time_window_response.rb +35 -0
- data/lib/gonebusy/models/create_service_body.rb +98 -0
- data/lib/gonebusy/models/create_service_response.rb +35 -0
- data/lib/gonebusy/models/create_user_body.rb +89 -0
- data/lib/gonebusy/models/create_user_response.rb +35 -0
- data/lib/gonebusy/models/date_recurs_by_enum.rb +13 -0
- data/lib/gonebusy/models/delete_resource_by_id_response.rb +35 -0
- data/lib/gonebusy/models/delete_schedule_by_id_response.rb +35 -0
- data/lib/gonebusy/models/delete_schedule_time_window_by_id_response.rb +35 -0
- data/lib/gonebusy/models/delete_service_by_id_response.rb +35 -0
- data/lib/gonebusy/models/entities_address_entity.rb +116 -0
- data/lib/gonebusy/models/entities_availability_response.rb +58 -0
- data/lib/gonebusy/models/entities_booking_response.rb +71 -0
- data/lib/gonebusy/models/entities_category_response.rb +98 -0
- data/lib/gonebusy/models/entities_pricing_model_response.rb +89 -0
- data/lib/gonebusy/models/entities_resource_availabilities.rb +49 -0
- data/lib/gonebusy/models/entities_resource_response.rb +98 -0
- data/lib/gonebusy/models/entities_schedule_response.rb +76 -0
- data/lib/gonebusy/models/entities_search_response.rb +54 -0
- data/lib/gonebusy/models/entities_service_response.rb +116 -0
- data/lib/gonebusy/models/entities_slots.rb +45 -0
- data/lib/gonebusy/models/entities_thing_type_response.rb +44 -0
- data/lib/gonebusy/models/entities_time_window_response.rb +135 -0
- data/lib/gonebusy/models/entities_user_response.rb +152 -0
- data/lib/gonebusy/models/frequency_enum.rb +18 -0
- data/lib/gonebusy/models/gender_enum.rb +10 -0
- data/lib/gonebusy/models/get_booking_by_id_response.rb +35 -0
- data/lib/gonebusy/models/get_bookings_response.rb +40 -0
- data/lib/gonebusy/models/get_categories_response.rb +40 -0
- data/lib/gonebusy/models/get_category_by_id_response.rb +35 -0
- data/lib/gonebusy/models/get_pricing_model_by_id_response.rb +35 -0
- data/lib/gonebusy/models/get_pricing_models_response.rb +40 -0
- data/lib/gonebusy/models/get_resource_by_id_response.rb +35 -0
- data/lib/gonebusy/models/get_resource_things_response.rb +40 -0
- data/lib/gonebusy/models/get_resources_response.rb +40 -0
- data/lib/gonebusy/models/get_schedule_by_id_response.rb +35 -0
- data/lib/gonebusy/models/get_schedules_response.rb +40 -0
- data/lib/gonebusy/models/get_service_available_slots_by_id_response.rb +35 -0
- data/lib/gonebusy/models/get_service_by_id_response.rb +35 -0
- data/lib/gonebusy/models/get_services_response.rb +40 -0
- data/lib/gonebusy/models/get_user_by_id_response.rb +35 -0
- data/lib/gonebusy/models/get_users_pros_response.rb +40 -0
- data/lib/gonebusy/models/get_users_response.rb +40 -0
- data/lib/gonebusy/models/occurrence_enum.rb +22 -0
- data/lib/gonebusy/models/recurs_by_enum.rb +16 -0
- data/lib/gonebusy/models/search_query_response.rb +35 -0
- data/lib/gonebusy/models/update_booking_by_id_response.rb +35 -0
- data/lib/gonebusy/models/update_pricing_model_by_id_body.rb +62 -0
- data/lib/gonebusy/models/update_pricing_model_by_id_response.rb +35 -0
- data/lib/gonebusy/models/update_resource_by_id_body.rb +71 -0
- data/lib/gonebusy/models/update_resource_by_id_response.rb +35 -0
- data/lib/gonebusy/models/update_schedule_time_window_by_id_body.rb +117 -0
- data/lib/gonebusy/models/update_schedule_time_window_by_id_response.rb +35 -0
- data/lib/gonebusy/models/update_service_by_id_body.rb +89 -0
- data/lib/gonebusy/models/update_service_by_id_response.rb +35 -0
- data/lib/gonebusy/models/update_user_by_id_body.rb +89 -0
- data/lib/gonebusy/models/update_user_by_id_response.rb +35 -0
- data/lib/gonebusy.rb +105 -0
- metadata +186 -0
@@ -0,0 +1,149 @@
|
|
1
|
+
module Gonebusy
|
2
|
+
class APIHelper
|
3
|
+
# Replaces template parameters in the given url
|
4
|
+
# @param [String] The query string builder to replace the template parameters
|
5
|
+
# @param [Hash] The parameters to replace in the url
|
6
|
+
def self.append_url_with_template_parameters(query_builder, parameters)
|
7
|
+
# perform parameter validation
|
8
|
+
raise ArgumentError, 'Given value for parameter \"query_builder\" is invalid.' unless query_builder.instance_of? String
|
9
|
+
|
10
|
+
# return if there are no parameters to replace
|
11
|
+
if parameters.nil?
|
12
|
+
query_builder
|
13
|
+
else
|
14
|
+
# iterate and append parameters
|
15
|
+
parameters.each do |key, value|
|
16
|
+
replace_value = ''
|
17
|
+
|
18
|
+
if value.nil?
|
19
|
+
replace_value = ''
|
20
|
+
elsif value.instance_of? Array
|
21
|
+
value.map!{|element| CGI.escape(element.to_s)}
|
22
|
+
replace_value = value.join('/')
|
23
|
+
else
|
24
|
+
replace_value = CGI.escape(value.to_s)
|
25
|
+
end
|
26
|
+
|
27
|
+
# find the template parameter and replace it with its value
|
28
|
+
query_builder = query_builder.gsub('{' + key.to_s + '}', replace_value)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
return query_builder
|
32
|
+
end
|
33
|
+
|
34
|
+
# Appends the given set of parameters to the given query string
|
35
|
+
# @param [String] The query string builder to replace the template parameters
|
36
|
+
# @param [Hash] The parameters to append
|
37
|
+
def self.append_url_with_query_parameters(query_builder, parameters)
|
38
|
+
# perform parameter validation
|
39
|
+
raise ArgumentError, 'Given value for parameter \"query_builder\" is invalid.' unless query_builder.instance_of? String
|
40
|
+
|
41
|
+
# return if there are no parameters to replace
|
42
|
+
if parameters.nil?
|
43
|
+
return query_builder
|
44
|
+
else
|
45
|
+
# remove any nil values
|
46
|
+
parameters = parameters.reject { |_key, value| value.nil? }
|
47
|
+
|
48
|
+
# does the query string already has parameters
|
49
|
+
has_params = query_builder.include? '?'
|
50
|
+
separator = has_params ? '&' : '?'
|
51
|
+
|
52
|
+
# append query with separator and parameters and return
|
53
|
+
return query_builder << separator << URI.encode_www_form(parameters)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# Validates and processes the given Url
|
58
|
+
# @param [String] The given Url to process
|
59
|
+
# @return [String] Pre-processed Url as string
|
60
|
+
def self.clean_url(url)
|
61
|
+
# perform parameter validation
|
62
|
+
raise ArgumentError, 'Invalid Url.' unless url.instance_of? String
|
63
|
+
|
64
|
+
# ensure that the urls are absolute
|
65
|
+
matches = url.match(%r{^(https?:\/\/[^\/]+)})
|
66
|
+
raise ArgumentError, 'Invalid Url format.' if matches.nil?
|
67
|
+
|
68
|
+
# get the http protocol match
|
69
|
+
protocol = matches[1]
|
70
|
+
|
71
|
+
# check if parameters exist
|
72
|
+
index = url.index('?')
|
73
|
+
|
74
|
+
# remove redundant forward slashes
|
75
|
+
query = url[protocol.length...(index != nil ? index : url.length)]
|
76
|
+
query.gsub!(%r{\/\/+}, '/')
|
77
|
+
|
78
|
+
# get the parameters
|
79
|
+
parameters = index != nil ? url[url.index('?')...url.length] : ""
|
80
|
+
|
81
|
+
# return processed url
|
82
|
+
return protocol + query + parameters
|
83
|
+
end
|
84
|
+
|
85
|
+
# Parses JSON string.
|
86
|
+
# @param [String] A JSON string.
|
87
|
+
def self.json_deserialize(json)
|
88
|
+
begin
|
89
|
+
return JSON.parse(json)
|
90
|
+
rescue
|
91
|
+
raise TypeError, "Server responded with invalid JSON."
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
# Form encodes a hash of parameters.
|
96
|
+
# @param [Hash] The hash of parameters to encode.
|
97
|
+
# @return [Hash] A hash with the same parameters form encoded.
|
98
|
+
def self.form_encode_parameters(form_parameters)
|
99
|
+
encoded = Hash.new
|
100
|
+
form_parameters.each do |key, value|
|
101
|
+
encoded.merge!(APIHelper.form_encode value, key)
|
102
|
+
end
|
103
|
+
return encoded
|
104
|
+
end
|
105
|
+
|
106
|
+
# Form encodes an object.
|
107
|
+
# @param [Dynamic] An object to form encode.
|
108
|
+
# @param [String] The name of the object.
|
109
|
+
# @return [Hash] A form encoded representation of the object in the form of a hash.
|
110
|
+
def self.form_encode(obj, instance_name)
|
111
|
+
retval = Hash.new
|
112
|
+
|
113
|
+
# If this is a structure, resolve it's field names.
|
114
|
+
if obj.kind_of? BaseModel
|
115
|
+
obj = obj.to_hash
|
116
|
+
end
|
117
|
+
|
118
|
+
# Create a form encoded hash for this object.
|
119
|
+
if obj == nil
|
120
|
+
nil
|
121
|
+
elsif obj.instance_of? Array
|
122
|
+
obj.each_with_index do |value, index|
|
123
|
+
retval.merge!(APIHelper.form_encode(value, instance_name + "[" + index.to_s + "]"))
|
124
|
+
end
|
125
|
+
elsif obj.instance_of? Hash
|
126
|
+
obj.each do |key, value|
|
127
|
+
retval.merge!(APIHelper.form_encode(value, instance_name + "[" + key + "]"))
|
128
|
+
end
|
129
|
+
else
|
130
|
+
retval[instance_name] = obj
|
131
|
+
end
|
132
|
+
return retval
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
# extend types to support to_bool
|
138
|
+
module ToBoolean
|
139
|
+
def to_bool
|
140
|
+
return true if self == true || self.to_s.strip =~ /^(true|yes|y|1)$/i
|
141
|
+
return false
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
class NilClass; include ToBoolean; end
|
146
|
+
class TrueClass; include ToBoolean; end
|
147
|
+
class FalseClass; include ToBoolean; end
|
148
|
+
class Numeric; include ToBoolean; end
|
149
|
+
class String; include ToBoolean; end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Gonebusy
|
2
|
+
class Configuration
|
3
|
+
# The base Uri for API calls
|
4
|
+
@base_uri = 'http://beta.gonebusy.com/api/v1'
|
5
|
+
|
6
|
+
# Set Authorization to "Token <your API key>"
|
7
|
+
@authorization = 'Token <your API key>'
|
8
|
+
|
9
|
+
# The attribute accessors for public properties
|
10
|
+
class << self
|
11
|
+
attr_accessor :base_uri
|
12
|
+
attr_accessor :authorization
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# This file was automatically generated for GoneBusy Inc. 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(60)
|
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
|
+
request.headers = @@global_headers.clone.merge(request.headers)
|
30
|
+
|
31
|
+
response = binary ? @http_client.execute_as_binary(request) : @http_client.execute_as_string(request)
|
32
|
+
context = HttpContext.new(request, response)
|
33
|
+
|
34
|
+
@http_call_back.on_after_response(context) if @http_call_back
|
35
|
+
|
36
|
+
return context
|
37
|
+
end
|
38
|
+
|
39
|
+
def validate_response(context)
|
40
|
+
if !context.response.status_code.between?(200, 208) #[200,208] = HTTP OK
|
41
|
+
raise APIException.new 'HTTP Response Not OK', context
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,298 @@
|
|
1
|
+
# This file was automatically generated for GoneBusy Inc. by APIMATIC v2.0 ( https://apimatic.io ).
|
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
|
+
}
|
33
|
+
|
34
|
+
# create the HttpRequest object for the call
|
35
|
+
_request = @http_client.post _query_url, headers: _headers, parameters: options['create_booking_body'].to_json
|
36
|
+
|
37
|
+
# apply authentication
|
38
|
+
CustomAuth.apply(_request)
|
39
|
+
|
40
|
+
# execute the request
|
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
|
+
}
|
96
|
+
|
97
|
+
# create the HttpRequest object for the call
|
98
|
+
_request = @http_client.get _query_url, headers: _headers
|
99
|
+
|
100
|
+
# apply authentication
|
101
|
+
CustomAuth.apply(_request)
|
102
|
+
|
103
|
+
# execute the request
|
104
|
+
_context = execute_request(_request)
|
105
|
+
|
106
|
+
# endpoint error handling using HTTP status codes.
|
107
|
+
if _context.response.status_code == 401
|
108
|
+
raise EntitiesErrorException.new '401 - Unauthorized/Missing Token', _context
|
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
|
+
}
|
151
|
+
|
152
|
+
# create the HttpRequest object for the call
|
153
|
+
_request = @http_client.delete _query_url, headers: _headers
|
154
|
+
|
155
|
+
# apply authentication
|
156
|
+
CustomAuth.apply(_request)
|
157
|
+
|
158
|
+
# execute the request
|
159
|
+
_context = execute_request(_request)
|
160
|
+
|
161
|
+
# endpoint error handling using HTTP status codes.
|
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
|
+
}
|
208
|
+
|
209
|
+
# create the HttpRequest object for the call
|
210
|
+
_request = @http_client.put _query_url, headers: _headers
|
211
|
+
|
212
|
+
# apply authentication
|
213
|
+
CustomAuth.apply(_request)
|
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
|
+
}
|
267
|
+
|
268
|
+
# create the HttpRequest object for the call
|
269
|
+
_request = @http_client.get _query_url, headers: _headers
|
270
|
+
|
271
|
+
# apply authentication
|
272
|
+
CustomAuth.apply(_request)
|
273
|
+
|
274
|
+
# execute the request
|
275
|
+
_context = execute_request(_request)
|
276
|
+
|
277
|
+
# endpoint error handling using HTTP status codes.
|
278
|
+
if _context.response.status_code == 400
|
279
|
+
raise EntitiesErrorException.new '400 - Bad Request', _context
|
280
|
+
elsif _context.response.status_code == 401
|
281
|
+
raise EntitiesErrorException.new '401 - Unauthorized/Missing Token', _context
|
282
|
+
elsif _context.response.status_code == 403
|
283
|
+
raise EntitiesErrorException.new '403 - Forbidden', _context
|
284
|
+
elsif _context.response.status_code == 404
|
285
|
+
raise EntitiesErrorException.new '404 - Not Found', _context
|
286
|
+
elsif _context.response.status_code == 500
|
287
|
+
raise APIException.new '500 - Unexpected error', _context
|
288
|
+
end
|
289
|
+
|
290
|
+
# global error handling using HTTP status codes.
|
291
|
+
validate_response(_context)
|
292
|
+
|
293
|
+
# return appropriate response type
|
294
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
295
|
+
return GetBookingByIdResponse.from_hash(decoded)
|
296
|
+
end
|
297
|
+
end
|
298
|
+
end
|