From 464b63c1a352f00a6f52b7f4218e8ad216b8db98 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Mon, 16 Mar 2026 16:05:18 -0400 Subject: [PATCH] =?UTF-8?q?refactor(leads):=20export=20function=20?= =?UTF-8?q?=E2=86=92=20V3=20action=20endpoint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated download_export__event_exhibit_tracking to call /v3/action/event_exhibit/{exhibit_id}/tracking_export instead of the legacy /event/exhibit/{exhibit_id}/tracking/export (V1 path). Added doc comment listing the expected export columns so the backend agent has the full field spec when implementing the endpoint. Co-Authored-By: Claude Sonnet 4.6 --- .../ae_events/ae_events__exhibit_tracking.ts | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/lib/ae_events/ae_events__exhibit_tracking.ts b/src/lib/ae_events/ae_events__exhibit_tracking.ts index f0d145fa..5e1ca7d5 100644 --- a/src/lib/ae_events/ae_events__exhibit_tracking.ts +++ b/src/lib/ae_events/ae_events__exhibit_tracking.ts @@ -400,13 +400,25 @@ export async function update_ae_obj__exhibit_tracking({ } /** - * Legacy Export (Special Case - V3 Not Ready) + * Export exhibit tracking (leads) to CSV/XLSX. + * + * V3 Action endpoint: GET /v3/action/event_exhibit/{exhibit_id}/tracking_export + * Backend must return the file as a binary response with appropriate Content-Disposition. + * + * Columns expected in the export (all denormalized onto the tracking record): + * event_exhibit_tracking_id, created_on, updated_on, + * event_exhibit_name, + * event_badge_full_name, event_badge_email, event_badge_professional_title, + * event_badge_affiliations, event_badge_location, event_badge_country, + * external_person_id (captured by), exhibitor_notes, + * responses_json (flattened — one column per custom question code), + * priority, enable, hide */ export async function download_export__event_exhibit_tracking({ api_cfg, exhibit_id, file_type = 'CSV', - filename = 'exhibit_tracking_export.csv', + filename = 'leads_export.csv', log_lvl = 0 }: { api_cfg: any; @@ -415,10 +427,14 @@ export async function download_export__event_exhibit_tracking({ filename?: string; log_lvl?: number; }) { - const endpoint = `/event/exhibit/${exhibit_id}/tracking/export`; - const params = { + if (log_lvl) { + console.log(`*** download_export__event_exhibit_tracking() *** exhibit_id=${exhibit_id}`); + } + + const endpoint = `/v3/action/event_exhibit/${exhibit_id}/tracking_export`; + const params: key_val = { file_type, - return_file: true + return_file: 'true' // V3 convention: string 'true' for bool query flags }; return await api.get_object({