Repository URL to install this package:
|
Version:
2.1.0 ▾
|
import { store } from '../state/store';
import { setData } from '../state/actions';
import { processType, getUserError } from '../constants/paywall';
import { createCalendar } from './common';
import { getUserDataRequest } from './requests';
import getStatusFromUserData from '../utils/getStatusFromUserData';
export default async ({ token, captchaToken, trackingEventPrefix }) => {
const { apiHost } = store.getState();
return new Promise(resolve => {
getUserDataRequest({ token, apiHost, captchaToken })
.then(async res => {
const data = await res.text();
const { status, primaryCalendarAccountId } = getStatusFromUserData({
data,
token,
trackingEventPrefix,
apiHost,
});
if (!status.shouldOpenModal) {
createCalendar({
token,
captchaToken,
apiHost,
slots: [],
calendarDetails: {},
resolve,
primaryCalendarAccountId,
});
} else {
store.dispatch(
setData({
trackingEventPostfix: status.trackingEventPostfix,
modalType: status.modalType,
isPaywallModalOpen: true,
resolve,
process: processType.CREATE,
})
);
}
})
.catch(e => {
resolve({ ...getUserError, message: e.message });
});
});
};