Я пытаюсь поместить информацию из предыдущего намерения в новое, чтобы потом использовать ее при преобразовании, так как все, вероятно, знают, что документация не велика, мне просто нужно понять, как сохранить данные Я работаю с в том же сеансе, в противном случае он исчезает
Вот мой текущий код
@app.route('/get_bookings', methods=['POST'])
def get_bookings():
reply = ""
data = request.get_json(silent=True)
print("Intial Query "+ str(data['queryResult']['parameters']))
if data != None:
if data['queryResult']['parameters'].get('confirm') != None:
if data['queryResult']['parameters']['confirm'] == 1:
#Send data to GolfNow API and set time slot on calendar
print("sending request to GolfNowAPI")
if not session["query"] is None:
print ("current session data : "+ str(session["query"]))
reply = {"fulfillmentText":"Great let me get that sorted for you now.",}
if data['queryResult']['parameters']['confirm'] == 0:
#Clear data and return to start of booking
reply = {
"fulfillmentText"
: "Lets start over then."
}
print(reply)
elif data['queryResult']['parameters'].get("confirm") == None:
booking_data = CBS.Split_time_date(data)
#check that the date and time is avalible on the calender and or on golfnow API if avalible
if Cal_S.OutlookCal.Check_date_time_conflict(booking_data) == True:
if "no" in booking_data['booking-buggy']:
Booking_buggy = "no buggy"
else:
Booking_buggy = "a buggy"
session["query"] ={ "parameters":{
"date":booking_data["returnedDate"], "time":booking_data["returnedDate"], "booking-buggy":booking_data["booking-buggy"] ,"round-type":booking_data["round-type"]
}}
reply = {
"fulfillmentText"
: "You are booking for {} at {}, and you would like {}. Can you confirm for me?".format(booking_data['date'] ,booking_data['time'], Booking_buggy)
}
else:
reply = {"fulfillmentText"
: "Unfortunatly this time has been taken by someone else, can you say: start over."
}
print(reply)
else:
print("Failed to check booking or other : " +str(data['queryResult']['parameters'].get("confirm")) + str(booking_data) )
reply= " Error: " +str(data['queryResult']['parameters'].get("confirm"))
print (reply)
return jsonify(reply)
Использование сессий флэш, похоже, не работает, и G, кажется, больше для целых клиентских систем на стороне сервера ,
Редактировать
Сейчас я использую простой алгоритм для извлечения данных из предыдущих запросов на выполнение.
def Find_previous_data(full_data, Check_dict):
found_data = None
for outputcontext in full_data["queryResult"]["outputContexts"]:
if Check_dict in outputcontext["name"]:
found_data = outputcontext["parameters"]
break
found_data = Split_time_date(found_data) #used to change the data into a more readable form
return found_data