71 lines
2.7 KiB
TypeScript
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;
|
|
} |