一个与quandoo api交互的sdk,它正在进行中
Quandoo的Python项目详细描述
用于python的quandoo
这是一个相当轻量级的与quandoo api交互的sdk,这是一个正在进行的工作。
安装
使用pip安装:
$ pip install Quandoo
在应用程序中包含Quandoo
importquandoo
检查API状态
quandoo.status()quandoo.status_test()
200 200
获取API密钥+代理ID
直接从Quandoo代表处获得。Quandoo docs on authentication.
oauth_token="<oauth_token>"agent_id="<agent_id>"
获取Quandoo代理实例
要获得quandoo的Agent实例,只需提供x-quandoo-authToken和您的代理ID即可。
agent=quandoo.Agent(oauth_token,agent_id)
要获取测试Agent实例,请确保使用您的测试凭据
agent_test=quandoo.Agent(oauth_token_test,agent_id_test,test=True)
用法
代理
获取商家
获取商户ID:
agent.get_merchant("123456")
返回一个Merchant对象:
Merchant( id: 123456, name: The Best Restaurant )
获取客户
获取客户ID:
agent.get_customer("0bd07451-0c0e-40e9-8429-8a589f59e254")
返回一个Customer对象:
Customer( id: 0bd07451-0c0e-40e9-8429-8a589f59e254, firstName: Fraser, lastName: Basil, email: fraserbasil@mail.com, phoneNumber: +614111222333 )
预订
预订ID:
agent.get_reservation("77f9dd33-9b24-4a66-a58c-7a059cecba5f")
返回一个Reservation对象:
Reservation( id: 1e346889-7819-4648-85c3-500a075bd470, status: MERCHANT_CANCELED, date: Mon 20 January 2020, startTime: 12:00 PM, endTime: 3:00 PM, capacity: 2, merchantId: 49295, customerId: 4d3f588b-3dc7-4a9c-bcf2-399cb8dcce68 )
获取预订查询
获取预订查询ID:
agent.get_reservation_enquiry("a4711a61-2282-4dc8-8229-99b526bdf0b6")
返回一个ReservationEnquiry对象:
ReservationEnquiry( id: a4711a61-2282-4dc8-8229-99b526bdf0b6, merchantId: 33226, customerId: 0bd07451-0c0e-40e9-8429-8a589f59e254, capacity: 2, startTime: 2019-09-01T02:00+10:00[Australia/Sydney], endTime: 2019-09-01T04:00+10:00[Australia/Sydney], status: NEW )
商户
获得客户
可选择:偏移量、限制、修改时间和修改时间
merchant.get_customers()
返回Customers的列表
[ Customer( id: 0bd07451-0c0e-40e9-8429-8a589f59e254, firstName: Fraser, lastName: Basil, email: fraserbasil@mail.com, phoneNumber: +61466920029 ), Customer( id: 2b2a541b6-e352-414d-j62f-71ad9fb695d, firstName: Carmen, lastName: Test, email: carmen.test@mail.com, phoneNumber: +123456789 )]
预订
可选择:偏移、限制、最早和最晚
merchant.get_reservations(limit=2,earliest=QuandooDatetime(2020,1,20),latest=QuandooDatetime(2020,2,2))
返回Reservation对象的列表:
[ Reservation( id: 1e346889-7819-4648-85c3-500a075bd470, status: MERCHANT_CANCELED, date: Mon 20 January 2020, startTime: 12:00 PM, endTime: 3:00 PM, capacity: 2, merchantId: 49295, customerId: 4d3f588b-3dc7-4a9c-bcf2-399cb8dcce68 ), Reservation( id: 2af875ba-a01e-4721-8988-96bbcc5f4863, status: MERCHANT_CANCELED, date: Mon 20 January 2020, startTime: 12:00 PM, endTime: 3:00 PM, capacity: 6, merchantId: 49295, customerId: e4f5d267-6891-4e48-9632-b8de038bbd45 )]
获取可用时间
接受预订和QuandooDatetime的容量。 可选:持续时间=2,区域ID
capacity=2res_datetime=QuandooDatetime(year=2019,month=7,day=1,hour=12,minute=0)merchant.get_available_times(capacity,res_datetime)
返回QuandooDatetime对象的列表
[ QuandooDatetime( datetime: 2019-07-01 12:00:00+10:00, q_datetime: 2019-07-01T12:00:00+10:00, pretty_date: 12:00 PM, Mon 1 July 2019 ), QuandooDatetime( datetime: 2019-07-01 12:15:00+10:00, q_datetime: 2019-07-01T12:15:00+10:00, pretty_date: 12:15 PM, Mon 1 July 2019 ), QuandooDatetime( datetime: 2019-07-01 12:30:00+10:00, q_datetime: 2019-07-01T12:30:00+10:00, pretty_date: 12:30 PM, Mon 1 July 2019 ), QuandooDatetime( datetime: 2019-07-01 12:45:00+10:00, q_datetime: 2019-07-01T12:45:00+10:00, pretty_date: 12:45 PM, Mon 1 July 2019 ), QuandooDatetime( datetime: 2019-07-01 13:00:00+10:00, q_datetime: 2019-07-01T13:00:00+10:00, pretty_date: 1:00 PM, Mon 1 July 2019 ), QuandooDatetime( datetime: 2019-07-01 13:15:00+10:00, q_datetime: 2019-07-01T13:15:00+10:00, pretty_date: 1:15 PM, Mon 1 July 2019 ), QuandooDatetime( datetime: 2019-07-01 13:30:00+10:00, q_datetime: 2019-07-01T13:30:00+10:00, pretty_date: 1:30 PM, Mon 1 July 2019 ), QuandooDatetime( datetime: 2019-07-01 13:45:00+10:00, q_datetime: 2019-07-01T13:45:00+10:00, pretty_date: 1:45 PM, Mon 1 July 2019 ), QuandooDatetime( datetime: 2019-07-01 14:00:00+10:00, q_datetime: 2019-07-01T14:00:00+10:00, pretty_date: 2:00 PM, Mon 1 July 2019 ), QuandooDatetime( datetime: 2019-07-01 14:15:00+10:00, q_datetime: 2019-07-01T14:15:00+10:00, pretty_date: 2:15 PM, Mon 1 July 2019 ), QuandooDatetime( datetime: 2019-07-01 14:30:00+10:00, q_datetime: 2019-07-01T14:30:00+10:00, pretty_date: 2:30 PM, Mon 1 July 2019 ), QuandooDatetime( datetime: 2019-07-01 14:45:00+10:00, q_datetime: 2019-07-01T14:45:00+10:00, pretty_date: 2:45 PM, Mon 1 July 2019 ), QuandooDatetime( datetime: 2019-07-01 15:00:00+10:00, q_datetime: 2019-07-01T15:00:00+10:00, pretty_date: 3:00 PM, Mon 1 July 2019 ), QuandooDatetime( datetime: 2019-07-01 15:15:00+10:00, q_datetime: 2019-07-01T15:15:00+10:00, pretty_date: 3:15 PM, Mon 1 July 2019 ), QuandooDatetime( datetime: 2019-07-01 15:30:00+10:00, q_datetime: 2019-07-01T15:30:00+10:00, pretty_date: 3:30 PM, Mon 1 July 2019 ), QuandooDatetime( datetime: 2019-07-01 15:45:00+10:00, q_datetime: 2019-07-01T15:45:00+10:00, pretty_date: 3:45 PM, Mon 1 July 2019 ), QuandooDatetime( datetime: 2019-07-01 16:00:00+10:00, q_datetime: 2019-07-01T16:00:00+10:00, pretty_date: 4:00 PM, Mon 1 July 2019 )]
检查特定时间是否可用
接受预订和QuandooDatetime的容量。 可选:持续时间=2,区域ID
capacity=2res_datetime=QuandooDatetime(year=2019,month=7,day=1,hour=12,minute=0)merchant.is_available(capacity,res_datetime)
返回布尔值
True
获得评论
可选择:偏移和限制
merchant.get_reviews()
返回json转储
{ "reviews": [ { "customer": { "firstName": "Kotaro", "lastName": "F" }, "rating": 3, "description": "We felt a cheap atmosphere and couldn't receive a kind service at all. ", "locale": "en_GB", "date": "2019-03-28" } ], "size": 1, "offset": 0, "limit": 10 }
创建预订
需要一个Customer,预订的容量以及QuandooDatetime。 可选:区域ID、订单ID、额外信息
customer=agent.get_customer(customer_id)capacity=2res_datetime=QuandooDatetime(year=2019,month=7,day=1,hour=12,minute=0)merchant.create_reservation(customer,capacity,res_datetime)
返回一个NewReservation对象:
NewReservation( id: b97d9da6-b38f-4089-8456-514201dc94d5, number: 13096703, status: AUTOMATIC_CONFIRMED, customerId: 0bd07451-0c0e-40e9-8429-8a589f59e254 )
创建预订查询
将Customer、预订容量、开始和结束时间作为QuandooDatetime和消息。
customer=agent.get_customer(customer_id)capacity=2start_qdt,end_qdt=QuandooDatetime(year,month,day,12),QuandooDatetime(year,month,day,14)message="Looking for a table please!"merchant.create_reservation_enquiry(customer,capacity,start_qdt,end_qdt,message)
返回一个NewReservationEnquiry对象:
NewReservationEnquiry( id: a869da69-939a-416a-afa4-eb875ae4575e, customerId: 0bd07451-0c0e-40e9-8429-8a589f59e254 )
客户
客户(客人)不能用Quandoo当前的API实现来创建,在创建新的预订时创建新客户,如果客户不存在(通过电子邮件引用)将创建新客户。
预订
取消
不需要任何东西:
reservation.cancel()
不返回任何内容:
Reconfirm
Takes nothing:
reservation.reconfirm()
不返回任何内容:
Change Capacity
Takes the new capacity:
new_capacity=2reservation.change_capacity(new_capacity)
不返回任何内容:
NewReservation
Similar to Reservation, it is what is returned on Reservation creation.
Get Full Reservation
Takes nothing:
customer=agent.get_customer(customer_id)capacity=2res_datetime=QuandooDatetime(year=2019,month=7,day=1,hour=12,minute=0)new_reservation=merchant.create_reservation(customer,capacity,res_datetime)new_reservation.get_reservation()
返回一个Reservation对象:
Reservation( id: 5da65435-3654-4627-8526-f544d4b9abef, status: AUTOMATIC_CONFIRMED, date: Mon 1 July 2019, startTime: 12:00 PM, endTime: 3:00 PM, capacity: 2, merchantId: 49295, customerId: fa78b27a-e050-4c7e-83c1-1e14e1506fda )
预订查询
获取消息
不需要任何内容
新预订查询
与ReservationInquiry类似,它是ReservationInquiry创建时返回的内容。
获得完整预订查询
不需要任何东西:
customer=agent.get_customer(customer_id)capacity=2start_qdt,end_qdt=QuandooDatetime(year,month,day,12),QuandooDatetime(year,month,day,14)new_res_enq=merchant.create_reservation_enquiry(customer,capacity,start_qdt,end_qdt,"Looking for a table please!")new_res_enq.get_reservation_enquiry()
返回一个ReservationEnquiry对象:
ReservationEnquiry( id: e0d87523-46ac-4159-b146-8119f567b58f, merchantId: 33226, customerId: 0bd07451-0c0e-40e9-8429-8a589f59e254, capacity: 2, startTime: 2019-09-01T02:00+10:00[Australia/Sydney], endTime: 2019-09-01T04:00+10:00[Australia/Sydney], status: NEW )
数量日期时间
DateTime类,具有对Quandoo有用的额外功能,即15分钟的时间分辨率
获取特定时间
采用通常的datetime参数,但时间分辨率为15分钟
QuandooDatetime(year=2019,month=7,day=1,hour=12,minute=0)
QuandooDatetime( datetime: 2019-07-01 12:00:00+10:00, q_datetime: 2019-07-01T12:00:00+10:00, pretty_date: 12:00 PM, Mon 1 July 2019 )
获取当前时间
静态的。不需要任何东西:
QuandooDatetime.now()
QuandooDatetime( datetime: 2019-06-03 22:45:00+10:00, q_datetime: 2019-06-03T22:45:00+10:00, pretty_date: 10:45 PM, Mon 3 June 2019 )
Quandoo API返回的分析时间
静态的。获取字符串:
QuandooDatetime.parse_str_qdt("2019-07-01T12:00:00+10:00")
QuandooDatetime( datetime: 2019-07-01 12:00:00+10:00, q_datetime: 2019-07-01T12:00:00+10:00, pretty_date: 12:00 PM, Mon 1 July 2019 )
获取Quandoo格式的日期时间字符串
不需要任何东西:
qdt=QuandooDatetime(year=2019,month=7,day=1,hour=12,minute=0)qdt.get_qdt()
返回quandoo格式的日期时间字符串
2019-07-01T12:00:00+10:00
获取读取良好的格式化日期时间字符串
不需要任何东西:
qdt=QuandooDatetime(year=2019,month=7,day=1,hour=12,minute=0)qdt.pretty_date()
返回格式化的日期时间字符串AT读数良好
12:00 PM, Mon 1 July 2019