69 lines
1.9 KiB
TypeScript
69 lines
1.9 KiB
TypeScript
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<string, 'ASC' | 'DESC'> | null;
|
|
limit?: number | null;
|
|
offset?: number | null;
|
|
params?: key_val;
|
|
headers?: Record<string, string>;
|
|
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
|
|
});
|
|
}
|