import { get_object } from './api_get_object'; import type { key_val } from '$lib/stores/ae_stores'; /** * Get a list of lookup objects (V3) * Standardized lookup data like countries, timezones, and subdivisions. * Updated 2026-02-20 * * Endpoint: GET /v3/lookup/{lu_type}/list */ export async function get_ae_lookup_li({ api_cfg, lu_type, site_id, for_type, for_id, include_disabled = false, only_priority = false, order_by_li = null, limit = null, offset = null, params = {}, headers = {}, log_lvl = 0 }: { api_cfg: any; lu_type: 'country' | 'country_subdivision' | 'time_zone' | string; site_id?: string; for_type?: string; for_id?: string; include_disabled?: boolean; only_priority?: boolean; order_by_li?: Record | null; limit?: number | null; offset?: number | null; params?: key_val; headers?: Record; log_lvl?: number; }) { if (log_lvl) { console.log(`*** get_ae_lookup_li() *** lu_type=${lu_type}`); } const endpoint = `/v3/lookup/${lu_type}/list`; // Build query params if (site_id) params['site_id'] = site_id; if (for_type) params['for_type'] = for_type; if (for_id) params['for_id'] = for_id; if (include_disabled) params['include_disabled'] = true; if (only_priority) params['only_priority'] = true; if (order_by_li) params['order_by_li'] = JSON.stringify(order_by_li); if (limit != null) params['limit'] = limit; if (offset != null) params['offset'] = offset; // Lookup data is often global; ensure account context is handled if needed, // but GUIDE says it uses site Whitelist Policy. // If no account_id is present in api_cfg, we might need 'x-no-account-id' // for some lookups if they are public. return await get_object({ api_cfg, endpoint, params, headers, log_lvl }); }