Update app.py
Browse files
app.py
CHANGED
|
@@ -86,4 +86,33 @@ def create_task(task: TaskData):
|
|
| 86 |
|
| 87 |
logging.info(f"WhatsApp API Response: {whatsapp_response.status_code}, {whatsapp_response.json()}")
|
| 88 |
|
| 89 |
-
return {"status_code": response.status_code, "response": response_data}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 86 |
|
| 87 |
logging.info(f"WhatsApp API Response: {whatsapp_response.status_code}, {whatsapp_response.json()}")
|
| 88 |
|
| 89 |
+
return {"status_code": response.status_code, "response": response_data}
|
| 90 |
+
|
| 91 |
+
@app.post("/updates")
|
| 92 |
+
async def task_update(request: Request):
|
| 93 |
+
data = await request.json()
|
| 94 |
+
logging.info(f"Received task update from ClickUp: {data}")
|
| 95 |
+
|
| 96 |
+
# Extract necessary fields
|
| 97 |
+
task_id = data.get("task_id", "Unknown ID")
|
| 98 |
+
task_name = data.get("task", {}).get("name", "Unknown Task")
|
| 99 |
+
new_status = data.get("task", {}).get("status", {}).get("status", "").lower()
|
| 100 |
+
action_timestamp = data.get("history_items", [{}])[0].get("date", 0) # Get action date if available
|
| 101 |
+
|
| 102 |
+
# Convert action timestamp to a human-readable format
|
| 103 |
+
action_date_human = datetime.utcfromtimestamp(int(action_timestamp) / 1000).strftime('%Y-%m-%d %H:%M:%S') if action_timestamp else "Unknown Date"
|
| 104 |
+
|
| 105 |
+
# If status is "Ready for Review", send a WhatsApp notification
|
| 106 |
+
if new_status == "ready for review":
|
| 107 |
+
task_link = f"https://app.clickup.com/t/{task_id}"
|
| 108 |
+
|
| 109 |
+
whatsapp_payload = {
|
| 110 |
+
"chatId": "201092003112@c.us",
|
| 111 |
+
"message": f"📝 *Task Submitted for Review!*\n\n📌 *Task:* {task_name}\n📅 *Submitted On:* {action_date_human}\n\n🔗 *View Task:* {task_link}\n\nPlease review the task and provide feedback."
|
| 112 |
+
}
|
| 113 |
+
|
| 114 |
+
logging.info(f"Sending WhatsApp notification for task review: {whatsapp_payload}")
|
| 115 |
+
whatsapp_response = requests.post(WHATSAPP_URL, json=whatsapp_payload, headers=whatsapp_headers)
|
| 116 |
+
logging.info(f"WhatsApp API Response: {whatsapp_response.status_code}, {whatsapp_response.json()}")
|
| 117 |
+
|
| 118 |
+
return {"status": "Update received"}
|