Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import datetime
- import settings
- import os
- # Iiko.Biz
- TOKEN = os.environ.get('BIZ_TOKEN')
- SERVER = os.environ.get('BIZ_SERVER')
- USER = os.environ.get('BIZ_USER')
- PASS = os.environ.get('BIZ_PASS')
- ORG_ID = os.environ.get('BIZ_ORG_ID')
- # iiko.front
- F_SERVER = os.environ.get('FRONT_SERVER')
- F_APARAMS = os.environ.get('FRONT_APARAMS')
- class APIClient:
- def auth(func):
- def auth_and_call():
- global TOKEN
- try:
- return func()
- except requests.exceptions.HTTPError:
- payload = {'user_id': USER, 'user_secret': PASS}
- t = requests.get(SERVER + '/auth/access_token', params=payload).text[1:-1]
- print(t)
- TOKEN = t
- return func()
- return auth_and_call
- @staticmethod
- @auth
- def get_stoplist():
- # getting stoplist for all delivery terminals
- payload = {'access_token': TOKEN, 'organization': ORG_ID}
- r = requests.get(SERVER + '/stopLists/getDeliveryStopList', params=payload)
- r.raise_for_status()
- data = r.json()
- return data
- @staticmethod
- @auth
- def get_delivery_points():
- # getting a list of conceptions
- payload = {'access_token': TOKEN, 'organization': ORG_ID}
- r = requests.get(SERVER + '/deliverySettings/getDeliveryTerminals', params=payload)
- r.raise_for_status()
- data = r.json()
- dp = [{'pointName': x['deliveryRestaurantName'][17:], 'pointId': x['deliveryTerminalId']}
- for x in data['deliveryTerminals']]
- return dp
- @staticmethod
- @auth
- def get_menu():
- # getting menu
- payload = {'access_token': TOKEN, 'revision': 19458}
- r = requests.get(SERVER + '/nomenclature/' + ORG_ID, params=payload)
- r.raise_for_status()
- data = r.json()
- return data
- @staticmethod
- @auth
- def get_couriers():
- # getting the list of all registered couriers
- payload = {'access_token': TOKEN, 'organization': ORG_ID}
- r = requests.get(SERVER + '/rmsSettings/getCouriers', params=payload)
- r.raise_for_status()
- data = r.json()
- couriers = [{'name': str(x['firstName'] + ' ' + x['lastName']),
- 'id': x['id'], 'pin': x['pinCode']}
- for x in data['users']
- if x['firstName'] and x['lastName'] is not None
- ]
- return couriers
- @staticmethod
- @auth
- def get_orders():
- date_from = datetime.datetime.now()
- date_to = date_from + datetime.timedelta(days=1)
- payload = {'access_token': TOKEN,
- 'organization': ORG_ID,
- 'dateFrom': datetime.datetime.strftime(date_from, "%Y-%m-%dT10:00:00"),
- 'dateTo': datetime.datetime.strftime(date_to, "%Y-%m-%dT11:00:01")}
- r = requests.get(SERVER + '/orders/deliveryOrders', params=payload)
- r.raise_for_status()
- orders = r.json()
- return orders['deliveryOrders']
- @staticmethod
- @auth
- def get_orders_by_courier():
- courier = None
- order_num = None
- date_from = datetime.datetime.now()
- date_to = date_from + datetime.timedelta(days=1)
- payload = {'access_token': TOKEN,
- 'organization': ORG_ID,
- 'dateFrom': datetime.datetime.strftime(date_from, "%Y-%m-%dT10:00:00"),
- 'dateTo': datetime.datetime.strftime(date_to, "%Y-%m-%dT11:00:01")}
- r = requests.get(SERVER + '/orders/deliveryOrders', params=payload)
- r.raise_for_status()
- orders = r.json()
- if order_num:
- for order in orders['deliveryOrders']:
- if order['number'] == order_num:
- yield {
- 'deliveryPoint': order['deliveryTerminal']['restaurantName'][17:],
- 'orderNum': order['number'],
- 'orderComment': order['comment'],
- 'deliveryDate': order['deliveryDate'][:10],
- 'deliveryTime': order['deliveryDate'][11:16],
- 'guest':
- {
- 'name': order['customer']['name'],
- 'phone': order['customer']['phone'],
- 'guestAdress':
- {
- 'street': order['address']['street'],
- 'home': order['address']['home'],
- 'housing': order['address']['housing'],
- 'Comment': order['address']['comment']
- }
- }
- }
- else:
- if order['orderType']['orderServiceType'] == 'DELIVERY_BY_COURIER':
- if order['courierInfo'] and order['courierInfo']['courierId'] == courier:
- yield {
- 'deliveryPoint': order['deliveryTerminal']['restaurantName'][17:],
- 'orderNum': order['number'],
- 'orderComment': order['comment'],
- 'deliveryDate': order['deliveryDate'][:10],
- 'deliveryTime': order['deliveryDate'][11:16],
- 'guest':
- {
- 'name': order['customer']['name'],
- 'phone': order['customer']['phone'],
- 'guestAdress':
- {
- 'street': order['address']['street'],
- 'home': order['address']['home'],
- 'housing': order['address']['housing'],
- 'Comment': order['address']['comment']
- }
- }
- }
- else:
- pass
- else:
- pass
Add Comment
Please, Sign In to add comment