export type Provider = 'bloomberg' | 'reuters' | 'morningstar' | 'factset' | 'nasdaq' | 'wind' | 'secapi'; export type CreateApiindexUuidIdentifierProviderArgs = {uuid: string, provider: Provider, body: unknown}; export type CreateApiindexUuidIdentifierProviderOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined}; /** * Add an identifier to an index * * POST index/{uuid}/identifier/{provider} */ export const createApiindexUuidIdentifierProvider = async (args: CreateApiindexUuidIdentifierProviderArgs, options?: CreateApiindexUuidIdentifierProviderOptions) => { const {baseUrl = "https://api.merqube.com", fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") const url = `${baseUrl.replace(/\/+$/, '')}index/${encodeURIComponent(String(args.uuid))}/identifier/${encodeURIComponent(String(args.provider))}${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return undefined };