bookingsync-api 0.0.6 → 0.0.7
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/.travis.yml +1 -1
- data/Gemfile +2 -1
- data/Guardfile +3 -6
- data/README.md +11 -3
- data/bookingsync-api.gemspec +2 -2
- data/lib/bookingsync/api.rb +0 -2
- data/lib/bookingsync/api/client.rb +151 -54
- data/lib/bookingsync/api/client/amenities.rb +22 -0
- data/lib/bookingsync/api/client/billing_addresses.rb +22 -0
- data/lib/bookingsync/api/client/bookings.rb +7 -9
- data/lib/bookingsync/api/client/bookings_payments.rb +22 -0
- data/lib/bookingsync/api/client/clients.rb +43 -0
- data/lib/bookingsync/api/client/destinations.rb +22 -0
- data/lib/bookingsync/api/client/inquiries.rb +2 -2
- data/lib/bookingsync/api/client/payments.rb +53 -0
- data/lib/bookingsync/api/client/periods.rb +54 -0
- data/lib/bookingsync/api/client/photos.rb +22 -0
- data/lib/bookingsync/api/client/rates.rb +23 -0
- data/lib/bookingsync/api/client/rates_rules.rb +22 -0
- data/lib/bookingsync/api/client/rates_tables.rb +53 -0
- data/lib/bookingsync/api/client/rental_agreements.rb +50 -0
- data/lib/bookingsync/api/client/rentals.rb +39 -1
- data/lib/bookingsync/api/client/reviews.rb +31 -0
- data/lib/bookingsync/api/client/seasons.rb +53 -0
- data/lib/bookingsync/api/client/special_offers.rb +54 -0
- data/lib/bookingsync/api/relation.rb +87 -0
- data/lib/bookingsync/api/resource.rb +58 -0
- data/lib/bookingsync/api/response.rb +79 -0
- data/lib/bookingsync/api/serializer.rb +100 -0
- data/lib/bookingsync/api/version.rb +1 -1
- data/spec/bookingsync/api/client/amenities_spec.rb +12 -0
- data/spec/bookingsync/api/client/billing_addresses_spec.rb +12 -0
- data/spec/bookingsync/api/client/billings_payments_spec.rb +12 -0
- data/spec/bookingsync/api/client/bookings_spec.rb +10 -8
- data/spec/bookingsync/api/client/clients_spec.rb +55 -0
- data/spec/bookingsync/api/client/destinations_spec.rb +12 -0
- data/spec/bookingsync/api/client/inquiries_spec.rb +1 -1
- data/spec/bookingsync/api/client/payments_spec.rb +56 -0
- data/spec/bookingsync/api/client/periods_spec.rb +61 -0
- data/spec/bookingsync/api/client/photos_spec.rb +12 -0
- data/spec/bookingsync/api/client/rates_rules_spec.rb +13 -0
- data/spec/bookingsync/api/client/rates_spec.rb +12 -0
- data/spec/bookingsync/api/client/rates_tables_spec.rb +59 -0
- data/spec/bookingsync/api/client/rental_agreements_spec.rb +64 -0
- data/spec/bookingsync/api/client/rentals_spec.rb +56 -6
- data/spec/bookingsync/api/client/reviews_spec.rb +33 -0
- data/spec/bookingsync/api/client/seasons_spec.rb +61 -0
- data/spec/bookingsync/api/client/special_offers_spec.rb +63 -0
- data/spec/bookingsync/api/client_spec.rb +31 -10
- data/spec/bookingsync/api/relation_spec.rb +72 -0
- data/spec/bookingsync/api/resource_spec.rb +79 -0
- data/spec/bookingsync/api/response_spec.rb +66 -0
- data/spec/cassettes/BookingSync_API_Client_Amenities/_amenities/returns_amenities.yml +72 -0
- data/spec/cassettes/BookingSync_API_Client_BillingAddresses/_billing_addresses/returns_billing_addresses.yml +65 -0
- data/spec/cassettes/BookingSync_API_Client_Bookings/_bookings/pagination/with_a_block/yields_block_with_batch_of_bookings.yml +12 -12
- data/spec/cassettes/BookingSync_API_Client_Bookings/_bookings/pagination/with_auto_paginate_true/returns_all_bookings_joined_from_many_requests.yml +12 -12
- data/spec/cassettes/BookingSync_API_Client_Bookings/_bookings/pagination/with_per_page_setting/returns_limited_number_of_bookings.yml +3 -3
- data/spec/cassettes/BookingSync_API_Client_Bookings/_clients/returns_clients.yml +66 -0
- data/spec/cassettes/BookingSync_API_Client_Bookings/_create_booking/creates_a_booking.yml +1 -1
- data/spec/cassettes/BookingSync_API_Client_Bookings/_create_client/creates_a_new_client.yml +64 -0
- data/spec/cassettes/BookingSync_API_Client_Bookings/_edit_booking/updates_given_booking_by_ID.yml +18 -14
- data/spec/cassettes/BookingSync_API_Client_Bookings/_edit_client/updates_given_client_by_ID.yml +62 -0
- data/spec/cassettes/BookingSync_API_Client_BookingsPayments/_bookings_payments/returns_bookings_payments.yml +65 -0
- data/spec/cassettes/BookingSync_API_Client_Destinations/_destinations/returns_destinations.yml +64 -0
- data/spec/cassettes/BookingSync_API_Client_Inquiries/_create_inquiry/creates_a_new_inquiry.yml +1 -1
- data/spec/cassettes/BookingSync_API_Client_Inquiries/_inquiries/returns_inquiries.yml +1 -1
- data/spec/cassettes/BookingSync_API_Client_Payments/_cancel_payment/cancels_given_payment.yml +57 -0
- data/spec/cassettes/BookingSync_API_Client_Payments/_create_payment/creates_a_new_payment.yml +63 -0
- data/spec/cassettes/BookingSync_API_Client_Payments/_edit_payment/updates_given_payment_by_ID.yml +61 -0
- data/spec/cassettes/BookingSync_API_Client_Payments/_payments/returns_payments.yml +64 -0
- data/spec/cassettes/BookingSync_API_Client_Periods/_create_period/creates_a_new_period.yml +63 -0
- data/spec/cassettes/BookingSync_API_Client_Periods/_delete_period/deletes_given_period.yml +70 -0
- data/spec/cassettes/BookingSync_API_Client_Periods/_edit_period/updates_given_period_by_ID.yml +61 -0
- data/spec/cassettes/BookingSync_API_Client_Periods/_periods/returns_periods.yml +64 -0
- data/spec/cassettes/BookingSync_API_Client_Photos/_photos/returns_photos.yml +72 -0
- data/spec/cassettes/BookingSync_API_Client_Rates/_rates/returns_rates.yml +64 -0
- data/spec/cassettes/BookingSync_API_Client_RatesRules/_rates_rules/returns_rates_rules.yml +64 -0
- data/spec/cassettes/BookingSync_API_Client_RatesTables/_create_rates_table/creates_a_new_rates_table.yml +64 -0
- data/spec/cassettes/BookingSync_API_Client_RatesTables/_delete_rates_table/deletes_given_rates_table.yml +57 -0
- data/spec/cassettes/BookingSync_API_Client_RatesTables/_edit_rates_table/updates_given_rates_table_by_ID.yml +62 -0
- data/spec/cassettes/BookingSync_API_Client_RatesTables/_rates_tables/returns_rates_tables.yml +74 -0
- data/spec/cassettes/BookingSync_API_Client_RentalAgreements/_create_rental_agreement/creates_a_new_rental_agreement.yml +63 -0
- data/spec/cassettes/BookingSync_API_Client_RentalAgreements/_create_rental_agreement_for_booking/creates_a_new_rental_agreement.yml +63 -0
- data/spec/cassettes/BookingSync_API_Client_RentalAgreements/_create_rental_agreement_for_rental/creates_a_new_rental_agreement.yml +63 -0
- data/spec/cassettes/BookingSync_API_Client_RentalAgreements/_rental_agreements/returns_rental_agreements.yml +64 -0
- data/spec/cassettes/BookingSync_API_Client_Rentals/_cancel_rental/cancels_given_rental.yml +57 -0
- data/spec/cassettes/BookingSync_API_Client_Rentals/_create_rental/creates_a_new_rental.yml +64 -0
- data/spec/cassettes/BookingSync_API_Client_Rentals/_edit_rental/updates_given_rental_by_ID.yml +64 -0
- data/spec/cassettes/BookingSync_API_Client_Rentals/_rental/returns_a_single_rental.yml +67 -0
- data/spec/cassettes/BookingSync_API_Client_Rentals/_rentals/links/returns_associated_photos.yml +152 -0
- data/spec/cassettes/BookingSync_API_Client_Rentals/_rentals/links/returns_links_to_associated_resources.yml +91 -0
- data/spec/cassettes/BookingSync_API_Client_Rentals/_rentals/returns_rentals.yml +45 -20
- data/spec/cassettes/BookingSync_API_Client_Reviews/_create_review/creates_a_new_review.yml +64 -0
- data/spec/cassettes/BookingSync_API_Client_Reviews/_reviews/returns_reviews.yml +83 -0
- data/spec/cassettes/BookingSync_API_Client_Seasons/_create_season/creates_a_new_season.yml +64 -0
- data/spec/cassettes/BookingSync_API_Client_Seasons/_delete_season/deletes_given_season.yml +57 -0
- data/spec/cassettes/BookingSync_API_Client_Seasons/_edit_season/updates_given_season_by_ID.yml +62 -0
- data/spec/cassettes/BookingSync_API_Client_Seasons/_seasons/returns_seasons.yml +74 -0
- data/spec/cassettes/BookingSync_API_Client_SpecialOffers/_create_special_offer/creates_a_new_special_offer.yml +63 -0
- data/spec/cassettes/BookingSync_API_Client_SpecialOffers/_delete_special_offer/deletes_given_special_offer.yml +57 -0
- data/spec/cassettes/BookingSync_API_Client_SpecialOffers/_edit_special_offer/updates_given_special_offer_by_ID.yml +61 -0
- data/spec/cassettes/{BookingSync_API_Client_Rentals/_rentals/with_specified_fields_in_options/returns_rentals_with_filtered_fields.yml → BookingSync_API_Client_SpecialOffers/_special_offers/returns_special_offers.yml} +17 -10
- data/spec/spec_helper.rb +1 -0
- metadata +143 -7
- data/lib/bookingsync/ext/resource.rb +0 -9
@@ -16,7 +16,7 @@ module BookingSync::API
|
|
16
16
|
# @option options [Array] status: Array of booking states.
|
17
17
|
# If specyfied bookings with given states are shown.
|
18
18
|
# Possible statuses: `:booked`, `:unavailable` and `:tentative`
|
19
|
-
# @return [Array<
|
19
|
+
# @return [Array<BookingSync::API::Resource>] Array of bookings.
|
20
20
|
# @example
|
21
21
|
# @api.bookings(months: 12, states: [:booked, :unavailable], include_canceled: true)
|
22
22
|
#
|
@@ -30,32 +30,30 @@ module BookingSync::API
|
|
30
30
|
paginate :bookings, options, &block
|
31
31
|
end
|
32
32
|
|
33
|
-
|
34
33
|
# Create a booking
|
35
34
|
#
|
36
35
|
# @param options [Hash] Booking attributes
|
37
|
-
# @return
|
36
|
+
# @return [BookingSync::API::Resource] Newly create booking
|
38
37
|
def create_booking(options = {})
|
39
38
|
post(:bookings, bookings: [options]).pop
|
40
39
|
end
|
41
40
|
|
42
41
|
# Edit a booking
|
43
42
|
#
|
44
|
-
# @param booking [
|
43
|
+
# @param booking [BookingSync::API::Resource|Integer] Booking or ID of the booking
|
45
44
|
# to be updated
|
46
45
|
# @param options [Hash] Booking attributes to be updated
|
47
|
-
#
|
48
|
-
# @return [Array] An empty Array on success, exception is raised otherwise
|
46
|
+
# @return [BookingSync::API::Resource] Updated booking on success, exception is raised otherwise
|
49
47
|
# @example
|
50
48
|
# booking = @api.bookings.first
|
51
|
-
# @api.edit_booking(booking, {adults: 1})
|
49
|
+
# @api.edit_booking(booking, { adults: 1 })
|
52
50
|
def edit_booking(booking, options = {})
|
53
|
-
put
|
51
|
+
put("bookings/#{booking}", bookings: [options]).pop
|
54
52
|
end
|
55
53
|
|
56
54
|
# Cancel a booking
|
57
55
|
#
|
58
|
-
# @param booking [
|
56
|
+
# @param booking [BookingSync::API::Resource|Integer] Booking or ID of the booking
|
59
57
|
# to be canceled
|
60
58
|
# @return [Array] An empty Array on success, exception is raised otherwise
|
61
59
|
def cancel_booking(booking, options = {})
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module BookingSync::API
|
2
|
+
class Client
|
3
|
+
module BookingsPayments
|
4
|
+
# List bookings payments
|
5
|
+
#
|
6
|
+
# Returns bookings payments for the account user is authenticated with.
|
7
|
+
# @param options [Hash] A customizable set of options.
|
8
|
+
# @option options [Array] fields: List of fields to be fetched.
|
9
|
+
# @return [Array<BookingSync::API::Resource>] Array of bookings payments.
|
10
|
+
#
|
11
|
+
# @example Get the list of bookings payments for the current account
|
12
|
+
# bookings_payments = @api.bookings_payments
|
13
|
+
# bookings_payments.first.amount # => 200
|
14
|
+
# @example Get the list of bookings payments only with amount and currency for smaller response
|
15
|
+
# @api.bookings_payments(fields: [:amount, :currency])
|
16
|
+
# @see http://docs.api.bookingsync.com/reference/endpoints/bookings_payments/#list-bookings-payments
|
17
|
+
def bookings_payments(options = {}, &block)
|
18
|
+
paginate :bookings_payments, options, &block
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module BookingSync::API
|
2
|
+
class Client
|
3
|
+
module Clients
|
4
|
+
# List clients
|
5
|
+
#
|
6
|
+
# Returns clients for the account user is authenticated with.
|
7
|
+
# @param options [Hash] A customizable set of options.
|
8
|
+
# @option options [Array] fields: List of fields to be fetched.
|
9
|
+
# @return [Array<BookingSync::API::Resource>] Array of clients.
|
10
|
+
#
|
11
|
+
# @example Get the list of clients for the current account
|
12
|
+
# clients = @api.clients
|
13
|
+
# clients.first.fullname # => "John Smith"
|
14
|
+
# @example Get the list of clients only with fullname and phone for smaller response
|
15
|
+
# @api.clients(fields: [:fullname, :phone])
|
16
|
+
# @see http://docs.api.bookingsync.com/reference/endpoints/clients/#list-clients
|
17
|
+
def clients(options = {}, &block)
|
18
|
+
paginate :clients, options, &block
|
19
|
+
end
|
20
|
+
|
21
|
+
# Create a new client
|
22
|
+
#
|
23
|
+
# @param options [Hash] Client attributes
|
24
|
+
# @return [BookingSync::API::Resource] Newly created client
|
25
|
+
def create_client(options = {})
|
26
|
+
post(:clients, clients: [options]).pop
|
27
|
+
end
|
28
|
+
|
29
|
+
# Edit a client
|
30
|
+
#
|
31
|
+
# @param client [BookingSync::API::Resource|Integer] Client or ID of the client
|
32
|
+
# to be updated
|
33
|
+
# @param options [Hash] Client attributes to be updated
|
34
|
+
# @return [BookingSync::API::Resource] Updated client on success, exception is raised otherwise
|
35
|
+
# @example
|
36
|
+
# client = @api.clients.first
|
37
|
+
# @api.edit_client(client, { fullname: "Gary Smith" })
|
38
|
+
def edit_client(client, options = {})
|
39
|
+
put("clients/#{client}", clients: [options]).pop
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module BookingSync::API
|
2
|
+
class Client
|
3
|
+
module Destinations
|
4
|
+
# List destinations
|
5
|
+
#
|
6
|
+
# Returns destinations for the account user is authenticated with.
|
7
|
+
# @param options [Hash] A customizable set of options.
|
8
|
+
# @option options [Array] fields: List of fields to be fetched.
|
9
|
+
# @return [Array<BookingSync::API::Resource>] Array of destinations.
|
10
|
+
#
|
11
|
+
# @example Get the list of destinations for the current account
|
12
|
+
# destinations = @api.destinations
|
13
|
+
# destinations.first.fullname # => {"en":"Europe, World"}
|
14
|
+
# @example Get the list of destinations only with name and fullname for smaller response
|
15
|
+
# @api.destinations(fields: [:name, :fullname])
|
16
|
+
# @see http://docs.api.bookingsync.com/reference/endpoints/destinations/#list-destinations
|
17
|
+
def destinations(options = {}, &block)
|
18
|
+
paginate :destinations, options, &block
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -5,7 +5,7 @@ module BookingSync::API
|
|
5
5
|
#
|
6
6
|
# Return list of inquiries for current account.
|
7
7
|
# @param options [Hash] A customizable set of query options.
|
8
|
-
# @return [Array<
|
8
|
+
# @return [Array<BookingSync::API::Resource>] Array of inquiries.
|
9
9
|
# @see http://docs.api.bookingsync.com/reference/endpoints/inquiries/#list-inquiries
|
10
10
|
def inquiries(options = {}, &block)
|
11
11
|
paginate :inquiries, options, &block
|
@@ -14,7 +14,7 @@ module BookingSync::API
|
|
14
14
|
# Create a new inquiry
|
15
15
|
#
|
16
16
|
# @param options [Hash] Inquiry attributes
|
17
|
-
# @return
|
17
|
+
# @return [BookingSync::API::Resource] Newly create inquiry
|
18
18
|
def create_inquiry(options = {})
|
19
19
|
post(:inquiries, inquiries: [options]).pop
|
20
20
|
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module BookingSync::API
|
2
|
+
class Client
|
3
|
+
module Payments
|
4
|
+
# List payments
|
5
|
+
#
|
6
|
+
# Returns payments for the account user is authenticated with.
|
7
|
+
# @param options [Hash] A customizable set of options.
|
8
|
+
# @option options [Array] fields: List of fields to be fetched.
|
9
|
+
# @return [Array<BookingSync::API::Resource>] Array of payments.
|
10
|
+
#
|
11
|
+
# @example Get the list of payments for the current account
|
12
|
+
# payments = @api.payments
|
13
|
+
# payments.first.kind # => "cash"
|
14
|
+
# @example Get the list of payments only with kind and currency for smaller response
|
15
|
+
# @api.payments(fields: [:kind, :currency])
|
16
|
+
# @see http://docs.api.bookingsync.com/reference/endpoints/payments/#list-payments
|
17
|
+
def payments(options = {}, &block)
|
18
|
+
paginate :payments, options, &block
|
19
|
+
end
|
20
|
+
|
21
|
+
# Create a new payment
|
22
|
+
#
|
23
|
+
# @param booking_id [Integer] ID of the booking
|
24
|
+
# @param options [Hash] payment attributes
|
25
|
+
# @return [BookingSync::API::Resource] Newly created payment
|
26
|
+
def create_payment(booking_id, options = {})
|
27
|
+
post(:payments, booking_id: booking_id, payments: [options]).pop
|
28
|
+
end
|
29
|
+
|
30
|
+
# Edit a payment
|
31
|
+
#
|
32
|
+
# @param payment [BookingSync::API::Resource|Integer] payment or ID of the payment
|
33
|
+
# to be updated
|
34
|
+
# @param options [Hash] payment attributes to be updated
|
35
|
+
# @return [BookingSync::API::Resource] Updated payment on success, exception is raised otherwise
|
36
|
+
# @example
|
37
|
+
# payment = @api.payments.first
|
38
|
+
# @api.edit_payment(payment, { currency: "EURO" })
|
39
|
+
def edit_payment(payment, options = {})
|
40
|
+
put("payments/#{payment}", payments: [options]).pop
|
41
|
+
end
|
42
|
+
|
43
|
+
# Cancel a payment
|
44
|
+
#
|
45
|
+
# @param payment [BookingSync::API::Resource|Integer] payment or ID of the payment
|
46
|
+
# to be canceled
|
47
|
+
# @return [Array] An empty Array on success, exception is raised otherwise
|
48
|
+
def cancel_payment(payment, options = {})
|
49
|
+
delete "payments/#{payment}"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module BookingSync::API
|
2
|
+
class Client
|
3
|
+
module Periods
|
4
|
+
# List periods
|
5
|
+
#
|
6
|
+
# Returns periods for the account user is authenticated with.
|
7
|
+
# @param options [Hash] A customizable set of options.
|
8
|
+
# @option options [Array] fields: List of fields to be fetched.
|
9
|
+
# @return [Array<BookingSync::API::Resource>] Array of periods.
|
10
|
+
#
|
11
|
+
# @example Get the list of periods for the current account
|
12
|
+
# periods = @api.periods
|
13
|
+
# periods.first.start_at # => "2014-04-11"
|
14
|
+
# @example Get the list of periods only with start_at and end_at for smaller response
|
15
|
+
# @api.periods(fields: [:start_at, :end_at])
|
16
|
+
# @see http://docs.api.bookingsync.com/reference/endpoints/periods/#list-periods
|
17
|
+
def periods(options = {}, &block)
|
18
|
+
paginate :periods, options, &block
|
19
|
+
end
|
20
|
+
|
21
|
+
# Create a new period
|
22
|
+
#
|
23
|
+
# @param season_id [Integer] ID of the season
|
24
|
+
# @param options [Hash] period attributes
|
25
|
+
# @return [BookingSync::API::Resource] Newly created period
|
26
|
+
def create_period(season_id, options = {})
|
27
|
+
post(:periods, season_id: season_id, periods: [options]).pop
|
28
|
+
end
|
29
|
+
|
30
|
+
# Edit a period
|
31
|
+
#
|
32
|
+
# @param period [BookingSync::API::Resource|Integer] period or ID of the period
|
33
|
+
# to be updated
|
34
|
+
# @param options [Hash] period attributes to be updated
|
35
|
+
# @return [BookingSync::API::Resource] Updated period on success,
|
36
|
+
# exception is raised otherwise
|
37
|
+
# @example
|
38
|
+
# period = @api.periods.first
|
39
|
+
# @api.edit_period(period, { end_at: "2014-04-28" })
|
40
|
+
def edit_period(period, options = {})
|
41
|
+
put("periods/#{period}", periods: [options]).pop
|
42
|
+
end
|
43
|
+
|
44
|
+
# Delete a period
|
45
|
+
#
|
46
|
+
# @param period [BookingSync::API::Resource|Integer] period or ID of the period
|
47
|
+
# to be deleted
|
48
|
+
# @return [Array] An empty Array on success, exception is raised otherwise
|
49
|
+
def delete_period(period, options = {})
|
50
|
+
delete "periods/#{period}"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module BookingSync::API
|
2
|
+
class Client
|
3
|
+
module Photos
|
4
|
+
# List photos
|
5
|
+
#
|
6
|
+
# Returns photos for the account user is authenticated with.
|
7
|
+
# @param options [Hash] A customizable set of options.
|
8
|
+
# @option options [Array] fields: List of fields to be fetched.
|
9
|
+
# @return [Array<BookingSync::API::Resource>] Array of photos.
|
10
|
+
#
|
11
|
+
# @example Get the list of photos for the current account
|
12
|
+
# photos = @api.photos
|
13
|
+
# photos.first.position # => 1
|
14
|
+
# @example Get the list of photos only with medium_url and position for smaller response
|
15
|
+
# @api.photos(fields: [:medium_url, :position])
|
16
|
+
# @see http://docs.api.bookingsync.com/reference/endpoints/photos/#list-photos
|
17
|
+
def photos(options = {}, &block)
|
18
|
+
paginate :photos, options, &block
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module BookingSync::API
|
2
|
+
class Client
|
3
|
+
module Rates
|
4
|
+
# List rates
|
5
|
+
#
|
6
|
+
# Returns rates for the rentals of the account user is authenticated with.
|
7
|
+
# @param options [Hash] A customizable set of options.
|
8
|
+
# @option options [Array] fields: List of fields to be fetched.
|
9
|
+
# @return [Array<BookingSync::API::Resource>] Array of rates.
|
10
|
+
#
|
11
|
+
# @example Get the list of rates for the current account
|
12
|
+
# rates = @api.rates
|
13
|
+
# rates.first.final_nightly_rate # => 700
|
14
|
+
# @example Get the list of rates only with final rates
|
15
|
+
# for smaller response
|
16
|
+
# @api.rates(fields: %w(final_nightly_rate final_weekely_rate final_monthly_rate))
|
17
|
+
# @see http://docs.api.bookingsync.com/reference/endpoints/rates/#list-rates
|
18
|
+
def rates(options = {}, &block)
|
19
|
+
paginate :rates, options, &block
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module BookingSync::API
|
2
|
+
class Client
|
3
|
+
module RatesRules
|
4
|
+
# List rates rules
|
5
|
+
#
|
6
|
+
# Returns rates rules for the account user is authenticated with.
|
7
|
+
# @param options [Hash] A customizable set of options.
|
8
|
+
# @option options [Array] fields: List of fields to be fetched.
|
9
|
+
# @return [Array<BookingSync::API::Resource>] Array of rates rules.
|
10
|
+
#
|
11
|
+
# @example Get the list of rates rules for the current account
|
12
|
+
# rates_rules = @api.rates_rules
|
13
|
+
# rates_rules.first.always_applied # => true
|
14
|
+
# @example Get the list of rates rules only with always_applied and kind for smaller response
|
15
|
+
# @api.rates_rules(fields: [:always_applied, :kind])
|
16
|
+
# @see http://docs.api.bookingsync.com/reference/endpoints/rates_rules/#list-rates-rules
|
17
|
+
def rates_rules(options = {}, &block)
|
18
|
+
paginate :rates_rules, options, &block
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module BookingSync::API
|
2
|
+
class Client
|
3
|
+
module RatesTables
|
4
|
+
# List rates table
|
5
|
+
#
|
6
|
+
# Returns rates tables for the account user is authenticated with.
|
7
|
+
# @param options [Hash] A customizable set of options.
|
8
|
+
# @option options [Array] fields: List of fields to be fetched.
|
9
|
+
# @return [Array<BookingSync::API::Resource>] Array of rates tables.
|
10
|
+
#
|
11
|
+
# @example Get the list of rates tables for the current account
|
12
|
+
# rates_tables = @api.rates_tables
|
13
|
+
# rates_tables.first.name # => "Rates table 2"
|
14
|
+
# @example Get the list of rates tables only with name and account_id for smaller response
|
15
|
+
# @api.rates_tables(fields: [:name, :account_id])
|
16
|
+
# @see http://docs.api.bookingsync.com/reference/endpoints/rates_tables/#list-rates-tables
|
17
|
+
def rates_tables(options = {}, &block)
|
18
|
+
paginate :rates_tables, options, &block
|
19
|
+
end
|
20
|
+
|
21
|
+
# Create a new rates_table
|
22
|
+
#
|
23
|
+
# @param options [Hash] rates_table attributes
|
24
|
+
# @return [BookingSync::API::Resource] Newly created rates table
|
25
|
+
def create_rates_table(options = {})
|
26
|
+
post(:rates_tables, rates_tables: [options]).pop
|
27
|
+
end
|
28
|
+
|
29
|
+
# Edit a rates_table
|
30
|
+
#
|
31
|
+
# @param rates_table [BookingSync::API::Resource|Integer] rates table or
|
32
|
+
# ID of the rates table to be updated
|
33
|
+
# @param options [Hash] rates table attributes to be updated
|
34
|
+
# @return [BookingSync::API::Resource] Updated rates table on success,
|
35
|
+
# exception is raised otherwise
|
36
|
+
# @example
|
37
|
+
# rates_table = @api.rates_tables.first
|
38
|
+
# @api.edit_rates_table(rates_table, { name: "Lorem" })
|
39
|
+
def edit_rates_table(rates_table, options = {})
|
40
|
+
put("rates_tables/#{rates_table}", rates_tables: [options]).pop
|
41
|
+
end
|
42
|
+
|
43
|
+
# delete a rates_table
|
44
|
+
#
|
45
|
+
# @param rates_table [BookingSync::API::Resource|Integer] rates table or
|
46
|
+
# ID of the rates table to be deleteed
|
47
|
+
# @return [Array] An empty Array on success, exception is raised otherwise
|
48
|
+
def delete_rates_table(rates_table, options = {})
|
49
|
+
delete "rates_tables/#{rates_table}"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module BookingSync::API
|
2
|
+
class Client
|
3
|
+
module RentalAgreements
|
4
|
+
# List rental agreements
|
5
|
+
#
|
6
|
+
# Returns rental agreements for the rentals of the account user is authenticated with.
|
7
|
+
# @param options [Hash] A customizable set of options.
|
8
|
+
# @option options [Array] fields: List of fields to be fetched.
|
9
|
+
# @return [Array<BookingSync::API::Resource>] Array of rental agreements.
|
10
|
+
#
|
11
|
+
# @example Get the list of rental agreements for the current account
|
12
|
+
# agreement = @api.rental_agreements
|
13
|
+
# agreement.first.body # => "My rental agreement"
|
14
|
+
# @example Get the list of rental agreements only with body for smaller response
|
15
|
+
# @api.rentals(fields: :body)
|
16
|
+
# @see http://docs.api.bookingsync.com/reference/endpoints/rental_agreements/#list-rental_agreements
|
17
|
+
def rental_agreements(options = {}, &block)
|
18
|
+
paginate :rental_agreements, options, &block
|
19
|
+
end
|
20
|
+
|
21
|
+
# Create a new rental agreement for a booking
|
22
|
+
#
|
23
|
+
# @param booking_id [Integer] ID of the booking
|
24
|
+
# @param options [Hash] rental agreement attributes
|
25
|
+
# @return [BookingSync::API::Response] Newly created rental agreement
|
26
|
+
def create_rental_agreement_for_booking(booking_id, options = {})
|
27
|
+
post(:rental_agreements, booking_id: booking_id,
|
28
|
+
rental_agreements: [options]).pop
|
29
|
+
end
|
30
|
+
|
31
|
+
# Create a new rental agreement for a rental
|
32
|
+
#
|
33
|
+
# @param rental_id [Integer] ID of the rental
|
34
|
+
# @param options [Hash] rental agreement attributes
|
35
|
+
# @return [BookingSync::API::Response] Newly created rental agreement
|
36
|
+
def create_rental_agreement_for_rental(rental_id, options = {})
|
37
|
+
post(:rental_agreements, rental_id: rental_id,
|
38
|
+
rental_agreements: [options]).pop
|
39
|
+
end
|
40
|
+
|
41
|
+
# Create a new rental agreement for an account
|
42
|
+
#
|
43
|
+
# @param options [Hash] rental agreement attributes
|
44
|
+
# @return [BookingSync::API::Response] Newly created rental agreement
|
45
|
+
def create_rental_agreement(options = {})
|
46
|
+
post(:rental_agreements, rental_agreements: [options]).pop
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|