sg-delivery-partner/app/api/bankDetailsApi.ts

53 lines
1.7 KiB
TypeScript

import { AddBankDetailsPayload, GetBankAccountsResponse } from '@interfaces';
import { apiClient } from '@services';
export const addAccountApi = async (
payload: AddBankDetailsPayload | FormData,
): Promise<GetBankAccountsResponse> => {
let body: any = payload;
if (
!(payload instanceof FormData) &&
typeof payload === 'object' &&
payload !== null
) {
const { passbookImage, ...rest } = payload as AddBankDetailsPayload;
if (passbookImage) {
const formData = new FormData();
formData.append('accountHolderName', rest.accountHolderName);
formData.append('bankName', rest.bankName);
formData.append('accountNumber', rest.accountNumber);
formData.append('ifscCode', rest.ifscCode);
if (rest.branchName) {
formData.append('branchName', rest.branchName);
}
if (rest.isDefault !== undefined) {
formData.append('isDefault', String(rest.isDefault));
}
if (typeof passbookImage === 'object' && (passbookImage as any).uri) {
formData.append('passbookImage', {
uri: (passbookImage as any).uri,
name: (passbookImage as any).name || 'passbook.jpg',
type: (passbookImage as any).type || 'image/jpeg',
} as any);
} else if (typeof passbookImage === 'string') {
formData.append('passbookImage', {
uri: passbookImage,
name: 'passbook.jpg',
type: 'image/jpeg',
} as any);
}
body = formData;
}
}
return await apiClient.post<GetBankAccountsResponse>('/bank-accounts', body);
};
export const fetchBankAccountsApi =
async (): Promise<GetBankAccountsResponse> => {
return await apiClient.get<GetBankAccountsResponse>('/bank-accounts');
};