53 lines
1.7 KiB
TypeScript
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');
|
|
};
|