react-native-priv-sdk
Version:
Official MyCover.ai SDK. Supercharge your product with MyCover AI Insurance offerings. Create embedded insurance offerings or full white label insurance applications that excite your customers.
130 lines (113 loc) • 3.7 kB
text/typescript
// import ApiService from '../api/api_service'; // Import ApiService
import ApiEndpoints from '../../constants/ApiEndpoints'; // Import API endpoints
// import * as FileSystem from 'expo-file-system'; // For file handling
import GenericResponse from '../api/GenericResponse';
import customLog from '../../utils/logger';
import { getApiServiceV1 } from '../../utils/getApiService';
// import globalObject from 'store/globalObject';
// const global = useGlobalStore((state: GlobalStore) => state);
interface IFormRepository {
getListData(dataUrl: string, dependsOnId?: string): Promise<GenericResponse>;
fetchProductPrice(
payload: Record<string, any>,
productId: string
): Promise<GenericResponse>;
// uploadFile(
// file: FileData,
// fileType?: string,
// onSendProgress?: (progressEvent: ProgressEvent) => void,
// ): Promise<GenericResponse>;
completePurchase(
payload: Record<string, any>,
reference: String
): Promise<GenericResponse>;
}
// const apiService = new ApiService('https://staging.api.mycover.ai/v1', globalObject.publicKey??'');
const apiService = getApiServiceV1();
class FormRepository implements IFormRepository {
// apiService: ApiService;
// constructor(baseUrl: string) {
// this.apiService = new ApiService(baseUrl);
// }
async getListData(
dataUrl: string,
dependsOnId?: string
): Promise<GenericResponse> {
let url = dataUrl;
if (dependsOnId) {
url = `${dataUrl}/${dependsOnId}`;
}
const res = await apiService.get(url, { useToken: true });
return new GenericResponse(res);
}
async fetchProductPrice(
payload: Record<string, any>,
productId: string
): Promise<GenericResponse> {
const requestData = {
payload: payload,
productId: productId,
};
customLog.debug('heeeeeeeeeeeee', payload);
// console.log(first);
const res = await apiService.post(
ApiEndpoints.fetchProductPrice,
requestData,
{ useToken: true }
);
return new GenericResponse(res);
}
// async uploadFile(
// file: FileData,
// fileType?: string,
// onSendProgress?: (progressEvent: ProgressEvent) => void,
// ): Promise<GenericResponse> {
// const mimeType = mime.getType(file.name); // Using 'mime' package to get mime type
// const mediaType =
// fileType === 'video' || fileType === 'document'
// ? undefined
// : mimeType || 'image/jpeg';
// const formData = new FormData();
// formData.append('file', {
// uri: file.uri,
// name: file.name,
// type: mediaType,
// });
// log.info(1);
// log.info(1);
// log.info(1);
// log.info(1);
// log.info(1);
// log.info(1);
// log.info(formData);
// formData.append('fileType', fileType || 'image');
// const res = await apiService.post(ApiEndpoints.uploadFile, formData, {
// useToken: true,
// headers: {
// 'Content-Type': 'multipart/form-data',
// },
// onSendProgress: onSendProgress, // For upload progress
// });
// return new GenericResponse(res);
// }
async completePurchase(
payload: Record<string, any>,
reference: String
): Promise<GenericResponse> {
const requestData = {
payload: payload,
reference: reference, // Assuming Global object contains a reference.
};
// const requestData = {
// payload: Object.fromEntries(payload),
// productId: productId,
// };
const res = await apiService.post(
ApiEndpoints.completePurchase,
requestData,
{ useToken: true }
);
return new GenericResponse(res);
}
}
export default FormRepository;