export type CreateApiStorageUploadArgs = {documentType?: ('LOAN_SERVICE_GUIDE' | 'LOAN_DEPOSIT_AGREEMENT_SHEET' | 'NOTICE_SHEET' | 'RECEIPT_SHEET' | 'GENERAL_SHEET' | 'INFO_GATHERING_AGREEMENT_SHEET' | 'SOLAR_LOAN_DEPOSIT_AGREEMENT_SHEET' | 'COMPLAINT_SHEET' | 'COMPLETE_SHEET' | 'ATTACHMENT' | 'SOLAR_ATTACHMENT') | undefined, applicationUuid: string, body: {attachment: string}}; export type CreateApiStorageUploadOptions = {baseUrl?: string | undefined, BearerAuth?: string | undefined, fetch?: typeof fetch | undefined}; /** * POST /storage/upload */ export const createApiStorageUpload = async (args: CreateApiStorageUploadArgs, options?: CreateApiStorageUploadOptions) => { const {baseUrl = "https://api.velox.am", fetch: fetchFn = fetch, BearerAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "*/*") if (args.documentType != null) query.append("documentType", String(args.documentType)) if (args.applicationUuid != null) query.append("applicationUuid", String(args.applicationUuid)) if (BearerAuth !== undefined) headers.set('authorization', `Bearer ${BearerAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/storage/upload${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 res.blob() };