forked from platypush/platypush
41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
|
import datetime
|
||
|
import dateutil.parser
|
||
|
|
||
|
from platypush.plugins.http.request import HttpRequestPlugin
|
||
|
|
||
|
class HttpRequestOtaBookingPlugin(HttpRequestPlugin):
|
||
|
""" Plugin to send requests to the Booking Hub API """
|
||
|
|
||
|
def __init__(self, hotel_id, token, timeout=5, **kwargs):
|
||
|
self.hotel_id = hotel_id
|
||
|
self.token = token
|
||
|
self.timeout = timeout
|
||
|
|
||
|
|
||
|
def get_reservations(self, day='today'):
|
||
|
url = 'https://hub-api.booking.com/v1/hotels/{}/reservations' \
|
||
|
.format(self.hotel_id)
|
||
|
|
||
|
today = datetime.date.today().isoformat()
|
||
|
if day == 'today': day = today
|
||
|
|
||
|
headers = { 'X-Booking-Auth-Token': self.token }
|
||
|
params = { 'checkin': day }
|
||
|
|
||
|
response = self.get(url, headers=headers, params=params,
|
||
|
output='json', timeout=self.timeout)
|
||
|
|
||
|
reservations = [res for res in response.output
|
||
|
if res['status'] != 'CANCELLED']
|
||
|
|
||
|
response.output = {
|
||
|
'reservations': reservations,
|
||
|
'n_reservations': len(reservations),
|
||
|
}
|
||
|
|
||
|
return response
|
||
|
|
||
|
|
||
|
# vim:sw=4:ts=4:et:
|
||
|
|