feat: add dlv_fleetflow_contactflow addon + ignore .DS_Store

This commit is contained in:
Kristof Bernaert
2026-06-14 01:00:47 +02:00
parent 6e55250daa
commit dfcc548295
11 changed files with 313 additions and 0 deletions
@@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
from . import main
@@ -0,0 +1,67 @@
# -*- coding: utf-8 -*-
import json
import logging
from odoo import http
from odoo.http import request
_logger = logging.getLogger(__name__)
class FleetFlowContactFlowController(http.Controller):
@http.route(
"/fleetflow/contactflow/drivers",
type="http",
auth="fleetflow_api_key",
methods=["GET"],
csrf=False,
)
def fleetflow_contactflow_drivers(self, location=None, **kwargs):
"""Return active trip drivers as ContactFlow JSON contacts.
Optional query param ``location`` filters drivers on
``location_id.name``.
"""
try:
domain = [("active", "=", True)]
if location:
domain.append(("location_id.name", "=", location))
drivers = request.env["trip.driver"].sudo().search(
domain, order="name asc"
)
contacts = []
for d in drivers:
name = d.name or ""
first_name, sep, last_name = name.partition(" ")
contacts.append({
"id": str(d.id),
"first_name": first_name,
"last_name": last_name,
"phone": d.phone_number or "",
"mobile": d.phone_number2 or "",
"email": d.email or "",
})
_logger.info(
"FleetFlow ContactFlow: returned %s drivers (location=%s)",
len(contacts), location,
)
return request.make_response(
json.dumps({"contacts": contacts}),
headers=[
("Content-Type", "application/json;charset=utf-8"),
],
)
except Exception as exc:
_logger.exception("FleetFlow ContactFlow: error building response")
return request.make_response(
json.dumps({"error": str(exc)}),
headers=[
("Content-Type", "application/json;charset=utf-8"),
],
status=500,
)