42 lines
1.0 KiB
TypeScript
42 lines
1.0 KiB
TypeScript
import { KycDocUploadResponse, MyKycResponse } from '@interfaces';
|
|
import { apiClient } from '@services';
|
|
|
|
export interface KycUploadFile {
|
|
uri: string;
|
|
name: string;
|
|
type: string;
|
|
}
|
|
|
|
export interface KycUploadMetadata {
|
|
docName: string;
|
|
docNumber: string;
|
|
}
|
|
|
|
export interface KycUploadPayload {
|
|
files: KycUploadFile[];
|
|
metadata: KycUploadMetadata[];
|
|
}
|
|
|
|
export const uploadKycDocuments = async (
|
|
payload: KycUploadPayload,
|
|
): Promise<KycDocUploadResponse> => {
|
|
const formData = new FormData();
|
|
|
|
payload.files.forEach(file => {
|
|
// In React Native, FormData requires appending file objects with uri, name, and type properties
|
|
formData.append('files', {
|
|
uri: file.uri,
|
|
name: file.name,
|
|
type: file.type,
|
|
} as any);
|
|
});
|
|
|
|
formData.append('metadata', JSON.stringify(payload.metadata));
|
|
|
|
return await apiClient.post<KycDocUploadResponse>('/kyc/upload', formData);
|
|
};
|
|
|
|
export const getMyKyc = async (): Promise<MyKycResponse> => {
|
|
return await apiClient.get<MyKycResponse>('/kyc/my-details');
|
|
};
|