Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@doodle/lib-paywall / src / methods / verifyBCCreate.js
Size: Mime:
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 });
      });
  });
};