From db8ab2206964ff3a88bd8f792ca50d7a3489d5b3 Mon Sep 17 00:00:00 2001 From: Alaguraj0361 Date: Wed, 8 Apr 2026 13:09:45 +0530 Subject: [PATCH] implement Uber webhook and delivery quote controllers and update docker-compose service names --- addons/dine360_uber/controllers/main.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/addons/dine360_uber/controllers/main.py b/addons/dine360_uber/controllers/main.py index be57624..abccc94 100644 --- a/addons/dine360_uber/controllers/main.py +++ b/addons/dine360_uber/controllers/main.py @@ -37,7 +37,7 @@ class UberDeliveryController(http.Controller): @http.route('/shop/uber/quote', type='json', auth='public', website=True, csrf=False) def uber_quote(self, address_data, **post): - """Get Uber quote for a website address""" + """Get Uber quote for a website address with cleaned address formatting""" order = request.website.sale_get_order() if not order: return {'success': False, 'error': 'No active order'} @@ -47,15 +47,28 @@ class UberDeliveryController(http.Controller): return {'success': False, 'error': 'Uber not configured'} company = request.website.company_id - pickup_address = f"{company.street}, {company.city}, {company.zip}, {company.country_id.name}" + # Build clean pickup address + pickup_parts = [company.street, company.city, company.state_id.name, company.zip, company.country_id.name] + pickup_address = ", ".join([p for p in pickup_parts if p]).strip() # User entered address - building comprehensive string for Uber Direct - street = address_data.get('street', '') - street2 = address_data.get('street2', '') + street = address_data.get('street', '').strip() + street2 = address_data.get('street2', '').strip() full_street = f"{street}, {street2}" if street2 else street - dropoff_address = f"{full_street}, {address_data.get('city', '')}, {address_data.get('state', '')}, {address_data.get('zip', '')}, {address_data.get('country', 'Canada')}" + # Clean state name (Odoo often adds '(CA)' or codes, which can confuse Uber) + state_name = address_data.get('state', '').split('(')[0].strip() + + dropoff_parts = [ + full_street, + address_data.get('city', '').strip(), + state_name, + address_data.get('zip', '').strip(), + address_data.get('country', 'Canada').strip() + ] + dropoff_address = ", ".join([p for p in dropoff_parts if p]).strip() + _logger.info("Uber Quote Request - Pickup: %s | Dropoff: %s", pickup_address, dropoff_address) result = config.get_uber_quote(pickup_address, dropoff_address)