-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
54 lines (40 loc) · 1.35 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
from flask import Flask, request, jsonify
from models import Message
from sheets_api import get_items, refresh_cache
from matcher import get_likely_items
from composer import get_message_for_options
from config import NUMBER, AUTHORIZATION, WHATSAPP_URL
import requests
app = Flask(__name__)
@app.route("/webhook", methods=["POST"])
def webhook():
data = request.get_json()
message = Message.from_json(data)
print(message)
handel_incoming_message(message)
return jsonify({"status": "OK"})
def handel_incoming_message(message: Message)-> None:
if message.text.lower() == "refresh":
refresh_cache()
return
items = get_items()
likely_items = get_likely_items(items, message.text)
response_text = get_message_for_options(likely_items, message.text)
payload = {
"from": NUMBER,
"to": message.sender,
"content":{
"text": response_text
}
}
headers = {
"Content_Type":"application/json",
"Authorization": AUTHORIZATION
}
try:
response = requests.post(WHATSAPP_URL, headers=headers, json=payload)
print(f"Poslani odgovori: {response.status_code} - {response.text}")
except Exception as e:
print(f"Greška pri slanju odgovora: {e}")
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8080, debug=True)