Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -267,12 +267,14 @@ async def on_startup():
|
|
267 |
|
268 |
logger = logging.getLogger(__name__)
|
269 |
|
270 |
-
|
271 |
@app.post("/delivery")
|
272 |
async def create_delivery_order(order_req: DeliveryOrderRequest):
|
273 |
try:
|
|
|
|
|
274 |
# Generate a unique order ID like "DEL-123456789"
|
275 |
order_id = f"DEL-{random.randint(100000000, 999999999)}"
|
|
|
276 |
|
277 |
# Extract delivery location
|
278 |
delivery_address = order_req.delivery_address.lower()
|
@@ -281,17 +283,20 @@ async def create_delivery_order(order_req: DeliveryOrderRequest):
|
|
281 |
if town in delivery_address:
|
282 |
shipping_cost = cost
|
283 |
break
|
|
|
284 |
|
285 |
# Set item price (adjustable)
|
286 |
item_price = 5000
|
287 |
total_amount = item_price + shipping_cost
|
288 |
-
total_amount_kobo = total_amount * 100
|
|
|
289 |
|
290 |
# Get user email or default
|
291 |
email = getattr(order_req, "email", "[email protected]")
|
292 |
|
293 |
# Generate Paystack payment link
|
294 |
payment_data = create_paystack_payment_link(email, total_amount_kobo, order_id)
|
|
|
295 |
|
296 |
if payment_data.get("status"):
|
297 |
payment_link = payment_data["data"]["authorization_url"]
|
@@ -308,6 +313,7 @@ async def create_delivery_order(order_req: DeliveryOrderRequest):
|
|
308 |
f"π Please confirm and process."
|
309 |
)
|
310 |
send_whatsapp_message(MANAGEMENT_WHATSAPP_NUMBER, whatsapp_message)
|
|
|
311 |
|
312 |
return {
|
313 |
"order_id": order_id,
|
@@ -317,6 +323,7 @@ async def create_delivery_order(order_req: DeliveryOrderRequest):
|
|
317 |
"message": "Order created successfully. Please complete payment using the link provided."
|
318 |
}
|
319 |
else:
|
|
|
320 |
return {
|
321 |
"order_id": order_id,
|
322 |
"total_amount": f"β¦{total_amount}",
|
@@ -325,8 +332,10 @@ async def create_delivery_order(order_req: DeliveryOrderRequest):
|
|
325 |
}
|
326 |
|
327 |
except Exception as e:
|
|
|
328 |
raise HTTPException(status_code=500, detail=f"Error: {str(e)}")
|
329 |
|
|
|
330 |
@app.post("/chatbot")
|
331 |
async def enhanced_chatbot_handler(request: Request, bg: BackgroundTasks):
|
332 |
data = await request.json()
|
|
|
267 |
|
268 |
logger = logging.getLogger(__name__)
|
269 |
|
|
|
270 |
@app.post("/delivery")
|
271 |
async def create_delivery_order(order_req: DeliveryOrderRequest):
|
272 |
try:
|
273 |
+
logger.info(f"Received order request: {order_req}")
|
274 |
+
|
275 |
# Generate a unique order ID like "DEL-123456789"
|
276 |
order_id = f"DEL-{random.randint(100000000, 999999999)}"
|
277 |
+
logger.info(f"Generated order ID: {order_id}")
|
278 |
|
279 |
# Extract delivery location
|
280 |
delivery_address = order_req.delivery_address.lower()
|
|
|
283 |
if town in delivery_address:
|
284 |
shipping_cost = cost
|
285 |
break
|
286 |
+
logger.info(f"Calculated shipping cost: β¦{shipping_cost}")
|
287 |
|
288 |
# Set item price (adjustable)
|
289 |
item_price = 5000
|
290 |
total_amount = item_price + shipping_cost
|
291 |
+
total_amount_kobo = total_amount * 100
|
292 |
+
logger.info(f"Total order amount: β¦{total_amount}")
|
293 |
|
294 |
# Get user email or default
|
295 |
email = getattr(order_req, "email", "[email protected]")
|
296 |
|
297 |
# Generate Paystack payment link
|
298 |
payment_data = create_paystack_payment_link(email, total_amount_kobo, order_id)
|
299 |
+
logger.info(f"Generated payment data: {payment_data}")
|
300 |
|
301 |
if payment_data.get("status"):
|
302 |
payment_link = payment_data["data"]["authorization_url"]
|
|
|
313 |
f"π Please confirm and process."
|
314 |
)
|
315 |
send_whatsapp_message(MANAGEMENT_WHATSAPP_NUMBER, whatsapp_message)
|
316 |
+
logger.info(f"Sent WhatsApp notification to management for order {order_id}")
|
317 |
|
318 |
return {
|
319 |
"order_id": order_id,
|
|
|
323 |
"message": "Order created successfully. Please complete payment using the link provided."
|
324 |
}
|
325 |
else:
|
326 |
+
logger.error(f"Failed to generate payment link for order {order_id}")
|
327 |
return {
|
328 |
"order_id": order_id,
|
329 |
"total_amount": f"β¦{total_amount}",
|
|
|
332 |
}
|
333 |
|
334 |
except Exception as e:
|
335 |
+
logger.error(f"Error creating delivery order: {e}", exc_info=True)
|
336 |
raise HTTPException(status_code=500, detail=f"Error: {str(e)}")
|
337 |
|
338 |
+
|
339 |
@app.post("/chatbot")
|
340 |
async def enhanced_chatbot_handler(request: Request, bg: BackgroundTasks):
|
341 |
data = await request.json()
|