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.
69 lines (57 loc) • 2.32 kB
text/typescript
// import ApiService from '../api/api_service'; // Import ApiService
import { getApiServiceV1 } from '../../utils/getApiService';
import ApiEndpoints from '../../constants/ApiEndpoints'; // Import API endpoints
// import globalObject from '../../store/globalObject';
// const apiService = new ApiService('https://staging.api.mycover.ai/v1');
const apiService = getApiServiceV1();
export class ProductRepository {
async getAllInsuranceProviders(): Promise<any> {
return apiService.get(ApiEndpoints.getInsuranceProviders); // Call ApiService.get
}
async getInsuranceProviders(
categoryId: string,
providerIds?: string[]
): Promise<any> {
let query = `?category_id=${categoryId}`;
if (providerIds && providerIds.length > 0) {
const providerIdQuery = providerIds
.map((id) => `provider_ids=${encodeURIComponent(id)}`)
.join('&');
query += `&${providerIdQuery}`;
}
return apiService.get(`${ApiEndpoints.getInsuranceProviders}${query}`);
}
async getProductDetails(options: {
categoryId: string;
providerIds?: string[];
search?: string;
priceStaticFrom?: string;
priceStaticTo?: string;
priceDynamicFrom?: string;
priceDynamicTo?: string;
}): Promise<any> {
const queryParams: { [key: string]: string } = {
category_id: options.categoryId,
};
if (options.search) queryParams['search'] = options.search;
if (options.priceStaticFrom)
queryParams['price_static_from'] = options.priceStaticFrom;
if (options.priceStaticTo)
queryParams['price_static_to'] = options.priceStaticTo;
if (options.priceDynamicFrom)
queryParams['price_dynamic_from'] = options.priceDynamicFrom;
if (options.priceDynamicTo)
queryParams['price_dynamic_to'] = options.priceDynamicTo;
if (options.providerIds && options.providerIds.length > 0) {
options.providerIds.forEach((id) => (queryParams['provider_id'] = id));
}
const queryString = new URLSearchParams(queryParams).toString();
return apiService.get(`${ApiEndpoints.getProductDetails}?${queryString}`);
}
async getProductDetailsById(productId: string): Promise<any> {
return apiService.get(
`${ApiEndpoints.getProductDetails}?product_ids=${productId}`
);
}
}
export default ProductRepository;