Current File : /home/pacjaorg/wpt.pacja.org/wp-content/plugins/leadin/scripts/iframe/messageMiddleware.ts |
import { MessageType, PluginMessages } from './integratedMessages';
import {
fetchDisableInternalTracking,
trackConsent,
disableInternalTracking,
getBusinessUnitId,
setBusinessUnitId,
skipReview,
} from '../api/wordpressApiClient';
import { removeQueryParamFromLocation } from '../utils/queryParams';
import { startActivation, startInstall } from '../utils/contentEmbedInstaller';
export type Message = { key: MessageType; payload?: any };
const messageMapper: Map<MessageType, Function> = new Map([
[
PluginMessages.TrackConsent,
(message: Message) => {
trackConsent(message.payload);
},
],
[
PluginMessages.InternalTrackingChangeRequest,
(message: Message, embedder: any) => {
disableInternalTracking(message.payload)
.then(() => {
embedder.postMessage({
key: PluginMessages.InternalTrackingFetchResponse,
payload: message.payload,
});
})
.catch(payload => {
embedder.postMessage({
key: PluginMessages.InternalTrackingChangeError,
payload,
});
});
},
],
[
PluginMessages.InternalTrackingFetchRequest,
(__message: Message, embedder: any) => {
fetchDisableInternalTracking()
.then(({ message: payload }) => {
embedder.postMessage({
key: PluginMessages.InternalTrackingFetchResponse,
payload,
});
})
.catch(payload => {
embedder.postMessage({
key: PluginMessages.InternalTrackingFetchError,
payload,
});
});
},
],
[
PluginMessages.BusinessUnitFetchRequest,
(__message: Message, embedder: any) => {
getBusinessUnitId()
.then(payload => {
embedder.postMessage({
key: PluginMessages.BusinessUnitFetchResponse,
payload,
});
})
.catch(payload => {
embedder.postMessage({
key: PluginMessages.BusinessUnitFetchError,
payload,
});
});
},
],
[
PluginMessages.BusinessUnitChangeRequest,
(message: Message, embedder: any) => {
setBusinessUnitId(message.payload)
.then(payload => {
embedder.postMessage({
key: PluginMessages.BusinessUnitFetchResponse,
payload,
});
})
.catch(payload => {
embedder.postMessage({
key: PluginMessages.BusinessUnitChangeError,
payload,
});
});
},
],
[
PluginMessages.SkipReviewRequest,
(__message: Message, embedder: any) => {
skipReview()
.then(payload => {
embedder.postMessage({
key: PluginMessages.SkipReviewResponse,
payload,
});
})
.catch(payload => {
embedder.postMessage({
key: PluginMessages.SkipReviewError,
payload,
});
});
},
],
[
PluginMessages.RemoveParentQueryParam,
(message: Message) => {
removeQueryParamFromLocation(message.payload);
},
],
[
PluginMessages.ContentEmbedInstallRequest,
(message: Message, embedder: any) => {
startInstall(message.payload.nonce)
.then(payload => {
embedder.postMessage({
key: PluginMessages.ContentEmbedInstallResponse,
payload: payload,
});
})
.catch(payload => {
embedder.postMessage({
key: PluginMessages.ContentEmbedInstallError,
payload,
});
});
},
],
[
PluginMessages.ContentEmbedActivationRequest,
(message: Message, embedder: any) => {
startActivation(message.payload.activateAjaxUrl)
.then(payload => {
embedder.postMessage({
key: PluginMessages.ContentEmbedActivationResponse,
payload: payload,
});
})
.catch(payload => {
embedder.postMessage({
key: PluginMessages.ContentEmbedActivationError,
payload,
});
});
},
],
]);
export const messageMiddleware = (embedder: any) => (message: Message) => {
const next = messageMapper.get(message.key);
if (next) {
next(message, embedder);
}
};