Files
seatmapv2/client/src/modules/parent.ts
2021-05-18 19:57:04 +02:00

71 lines
2.7 KiB
TypeScript

import { config } from "./config";
import axios from 'axios';
import * as Communication from "./communication";
import * as I from "../types/types";
export function needCheckoutResponse(inE: any, inInputsWithValue: I.InputsWithValue) {
const data: I.Message = JSON.parse(inE.data);
const inUrl: string = data.message.url;
axios.get(inUrl, {
maxRedirects: 0
})
.then((inE) => {
type orderkey = string | number | string[] | undefined;
let isValidSeatSelection: boolean = false;
const content: string = inE.data;
const parsedHTML: Node[] = jQuery.parseHTML(content);
const orderkey: orderkey = jQuery(parsedHTML).find("#orderkey").val();
console.log(`orderkey: ${orderkey}`);
if (orderkey) {
isValidSeatSelection = true;
const cancelUrl = `${inInputsWithValue["ticketPurchaseUrl"]}?user_context=${inInputsWithValue["user_context"]}&pid=${inInputsWithValue["pid"]}&orderkey=${orderkey}&trxstate=92`;
Communication.cancelCheckout(cancelUrl);
}
const message: I.Message = {
message: {
"isValidSeatSelection": isValidSeatSelection,
"parsedHTML": parsedHTML,
"url": inUrl,
},
from: "parent",
event: "parent_sendCheckoutResponse",
date: Date.now()
};
Communication.sendMessage(message, "iframeSeatmap");
})
.catch(function (error) {
console.log("error in child_needCheckoutResponse");
console.log(error);
});
}
export function initNeedInputsWithValue(inInputsWithValue: I.InputsWithValue) {
const message: I.Message = {
message: inInputsWithValue,
from: "parent",
event: "parent_init_sendInputsWithValue",
date: Date.now()
};
Communication.sendMessage(message, "iframeSeatmap");
}
export function initNeedVenueXML(inInputsWithValue: I.InputsWithValue) {
Communication.sendXML(inInputsWithValue["posturl"], "iframeSeatmap", "parent_init_sendVenueXML", "parent");
config.childHasVenueXML = true;
}
export function needSeatmapXML(inE: any, inInputsWithValue: I.InputsWithValue) {
const data: I.Message = JSON.parse(inE.data);
const seatmapUrl: string = `${inInputsWithValue["posturlRawDecoded"]}&inclseatmap=Y&seatmap=${data.message}`;
Communication.sendXML(seatmapUrl, "iframeSeatmap", "parent_sendSeatmapXML", "parent");
}
export function clickCheckout(inE: any) {
const data: I.Message = JSON.parse(inE.data);
const inUrl: string = data.message.url;
window.location.href = inUrl;
}