kinoklub-api
Version:
Support library for KinoKlub
60 lines (59 loc) • 2.75 kB
JavaScript
const hasDST = (date = new Date()) => {
const january = new Date(date.getFullYear(), 0, 1).getTimezoneOffset();
const july = new Date(date.getFullYear(), 6, 1).getTimezoneOffset();
return Math.max(january, july) !== date.getTimezoneOffset();
};
const getTimezone = (dst) => {
return dst ? '.000+02:00' : '.000+01:00';
};
export const resolveCinema = (text) => {
switch (text) {
case 'Bio Oko':
return 'biooko';
case 'Světozor':
return 'svetozor';
case 'Aero':
return 'aero';
default:
return text;
}
};
export const resolveDate = (date, hour) => {
const [wkDay, dayRest] = date.split(' ');
const weekDay = wkDay;
let dateTime = null;
const today = new Date();
const day = today.getDate();
const month = today.getMonth();
const year = today.getFullYear();
const addLeadingZero = (num) => {
return num < 10 ? `0${num}` : `${num}`;
};
if (weekDay === 'Dnes' || weekDay === 'Today') {
dateTime = `${year}-${addLeadingZero(month + 1)}-${addLeadingZero(day)}`;
}
else if (weekDay === 'Zítra' || weekDay === 'Tomorrow') {
dateTime = `${year}-${addLeadingZero(month + 1)}-${addLeadingZero(day + 1)}`;
}
else {
const [day, month] = dayRest.split('/');
dateTime = `${year}-${addLeadingZero(+month)}-${addLeadingZero(+day)}`;
}
const dst = hasDST(new Date(dateTime));
const finalDateTime = `${dateTime}T${hour}:00${getTimezone(dst)}`;
return new Date(finalDateTime).toISOString();
};
export const getTicketParams = (el) => {
var _a, _b, _c, _d, _e, _f;
const node = el.querySelector('form');
if (!node)
return undefined;
const action = node === null || node === void 0 ? void 0 : node.attributes.action;
const mrsId = (_a = node.querySelector('input[name=mrsid]')) === null || _a === void 0 ? void 0 : _a.attributes.value;
const eventId = (_b = node.querySelector('input[name=eventid]')) === null || _b === void 0 ? void 0 : _b.attributes.value;
const successRedirect = (_c = node.querySelector('input[name=successredirect]')) === null || _c === void 0 ? void 0 : _c.attributes.value;
const failedRedirect = (_d = node.querySelector('input[name=failedredirect]')) === null || _d === void 0 ? void 0 : _d.attributes.value;
const redirectAddTickets = (_e = node.querySelector('input[name=redirectaddtickets]')) === null || _e === void 0 ? void 0 : _e.attributes.value;
const language = (_f = node.querySelector('input[name=language]')) === null || _f === void 0 ? void 0 : _f.attributes.value;
return { action, mrsId, eventId, successRedirect, failedRedirect, redirectAddTickets, language };
};