Class: Repull::AvailabilityApi
- Inherits:
-
Object
- Object
- Repull::AvailabilityApi
- Defined in:
- lib/repull/api/availability_api.rb
Instance Attribute Summary collapse
-
#api_client ⇒ Object
Returns the value of attribute api_client.
Instance Method Summary collapse
-
#get_availability(property_id, from, to, opts = {}) ⇒ PropertyAvailability
Get property availability Channel-agnostic day-by-day availability calendar for a property over a date window.
-
#get_availability_with_http_info(property_id, from, to, opts = {}) ⇒ Array<(PropertyAvailability, Integer, Hash)>
Get property availability Channel-agnostic day-by-day availability calendar for a property over a date window.
-
#initialize(api_client = ApiClient.default) ⇒ AvailabilityApi
constructor
A new instance of AvailabilityApi.
Constructor Details
#initialize(api_client = ApiClient.default) ⇒ AvailabilityApi
Returns a new instance of AvailabilityApi.
19 20 21 |
# File 'lib/repull/api/availability_api.rb', line 19 def initialize(api_client = ApiClient.default) @api_client = api_client end |
Instance Attribute Details
#api_client ⇒ Object
Returns the value of attribute api_client.
17 18 19 |
# File 'lib/repull/api/availability_api.rb', line 17 def api_client @api_client end |
Instance Method Details
#get_availability(property_id, from, to, opts = {}) ⇒ PropertyAvailability
Get property availability
Channel-agnostic day-by-day availability calendar for a property over a date window. Returns a thin per-date shape — { date, available, price, minNights } — projected from the connected channel calendar (currently Airbnb). The from and to query params are required (ISO YYYY-MM-DD, inclusive) — omitting or malforming either returns 422. The window is capped at 366 days; longer ranges are truncated to the first 366 days. Every date in the window is present in days: dates with no explicit calendar row fall back to available: true at the property's default nightly price. A property with no channel calendar still returns a real 200 (a fully-default calendar), never a 404 — 404 means the property id does not exist or belongs to a different workspace. This endpoint is read-only. Availability writes stay per-channel: PUT /v1/channels/airbnb/listings/{id}/availability (Airbnb) or PUT /v1/channels/booking/availability (Booking.com).
29 30 31 32 |
# File 'lib/repull/api/availability_api.rb', line 29 def get_availability(property_id, from, to, opts = {}) data, _status_code, _headers = get_availability_with_http_info(property_id, from, to, opts) data end |
#get_availability_with_http_info(property_id, from, to, opts = {}) ⇒ Array<(PropertyAvailability, Integer, Hash)>
Get property availability Channel-agnostic day-by-day availability calendar for a property over a date window. Returns a thin per-date shape — `{ date, available, price, minNights }` — projected from the connected channel calendar (currently Airbnb). The `from` and `to` query params are required (ISO `YYYY-MM-DD`, inclusive) — omitting or malforming either returns 422. The window is capped at 366 days; longer ranges are truncated to the first 366 days. Every date in the window is present in `days`: dates with no explicit calendar row fall back to `available: true` at the property's default nightly price. A property with no channel calendar still returns a real 200 (a fully-default calendar), never a 404 — 404 means the property id does not exist or belongs to a different workspace. This endpoint is read-only. Availability writes stay per-channel: `PUT /v1/channels/airbnb/listings/id/availability` (Airbnb) or `PUT /v1/channels/booking/availability` (Booking.com).
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/repull/api/availability_api.rb', line 41 def get_availability_with_http_info(property_id, from, to, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: AvailabilityApi.get_availability ...' end # verify the required parameter 'property_id' is set if @api_client.config.client_side_validation && property_id.nil? fail ArgumentError, "Missing the required parameter 'property_id' when calling AvailabilityApi.get_availability" end # verify the required parameter 'from' is set if @api_client.config.client_side_validation && from.nil? fail ArgumentError, "Missing the required parameter 'from' when calling AvailabilityApi.get_availability" end # verify the required parameter 'to' is set if @api_client.config.client_side_validation && to.nil? fail ArgumentError, "Missing the required parameter 'to' when calling AvailabilityApi.get_availability" end # resource path local_var_path = '/v1/availability/{propertyId}'.sub('{propertyId}', CGI.escape(property_id.to_s)) # query parameters query_params = opts[:query_params] || {} query_params[:'from'] = from query_params[:'to'] = to # header parameters header_params = opts[:header_params] || {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept'] # form parameters form_params = opts[:form_params] || {} # http body (model) post_body = opts[:debug_body] # return_type return_type = opts[:debug_return_type] || 'PropertyAvailability' # auth_names auth_names = opts[:debug_auth_names] || ['bearerAuth'] = opts.merge( :operation => :"AvailabilityApi.get_availability", :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => return_type ) data, status_code, headers = @api_client.call_api(:GET, local_var_path, ) if @api_client.config.debugging @api_client.config.logger.debug "API called: AvailabilityApi#get_availability\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end |