outsourced inject and seatmap to modules
This commit is contained in:
71
client/src/modules/parent.ts
Normal file
71
client/src/modules/parent.ts
Normal file
@@ -0,0 +1,71 @@
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user