import { TranslatableString } from "ChillMainAssets/types"; export interface AddressAggregated { row_number: number; street: string; postcode_id: number; code: string; label: string; positions: Record; } export interface AssociatedPostalCode { postcode_id: number; code: string; label: string; country_id: number; country_code: string; country_name: TranslatableString; } /** * @throws {DOMException} when fetch is aborted, the property name is always equals to 'AbortError' */ export const getAddressesAggregated = async ( search: string, abortController: AbortController, ): Promise => { const params = new URLSearchParams({ q: search.trim() }); let response = null; response = await fetch( `/api/1.0/main/address-reference/aggregated/search?${params}`, { signal: abortController.signal }, ); if (response.ok) { return await response.json(); } throw new Error(response.statusText); }; export const getPostalCodes = async ( search: string, abortController: AbortController, ): Promise => { const params = new URLSearchParams({ q: search.trim() }); let response = null; response = await fetch( `/api/1.0/main/address-reference/postal-code/search?${params}`, { signal: abortController.signal }, ); if (response.ok) { return await response.json(); } throw new Error(response.statusText); };