Repository URL to install this package:
|
Version:
2.1.0 ▾
|
import { store } from '../state/store';
import { getUserError, paywallStatus } from '../constants/paywall';
import checkBCRules from '../utils/checkBCRules';
import { setData } from '../state/actions';
import { getUserDataRequest } from './requests';
export default async ({ token, mandatorId, isClickOnBCToggle, segmentName }) => {
const { apiHost } = store.getState();
return new Promise(resolve => {
getUserDataRequest({ token, apiHost })
.then(async res => {
const data = await res.text();
const parsedData = JSON.parse(data);
const mandators = parsedData.mandators || [];
const currentMandator = mandators.find(mandator => mandator.mandatorId === mandatorId);
const { adminMandatorId } = parsedData;
const isForeignMandator = currentMandator && currentMandator.mandatorId !== adminMandatorId;
const segments = currentMandator ? currentMandator.segments : [];
const { shouldOpenModal, modalType } = checkBCRules({ segments, isForeignMandator });
if (shouldOpenModal) {
store.dispatch(
setData({
modalType,
isPaywallModalOpen: true,
resolve,
isClickOnBCToggle,
segmentName,
})
);
} else {
resolve({
status: paywallStatus.PASS,
});
}
})
.catch(e => {
resolve({ ...getUserError, message: e.message });
});
});
};