@ovotech/genesys-web-messaging-tester
Version:
46 lines (45 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.orderByTimestamp = exports.isReceivedResponseStructuredMsg = void 0;
const WebMessengerGuestSession_1 = require("../WebMessengerGuestSession");
function isReceivedResponseStructuredMsg(message) {
return (0, WebMessengerGuestSession_1.isStructuredMessage)(message.response);
}
exports.isReceivedResponseStructuredMsg = isReceivedResponseStructuredMsg;
function orderByTimestamp(array) {
const withTimestamps = [];
const withoutTimestamps = [];
array.forEach((item) => {
if (isReceivedResponseStructuredMsg(item)) {
withTimestamps.push(item);
}
else {
withoutTimestamps.push(item);
}
});
withTimestamps.sort((a, b) => {
return (new Date(a.response.body.channel.time).getTime() -
new Date(b.response.body.channel.time).getTime());
});
const result = [];
let j = 0, k = 0;
for (let i = 0; i < array.length; i++) {
if (isReceivedResponseStructuredMsg(array[i])) {
result.push(withTimestamps[j]);
j++;
}
else {
result.push(withoutTimestamps[k]);
k++;
}
}
let wasRearranged = false;
for (let i = 0; i < array.length; i++) {
if (!Object.is(result[i], array[i])) {
wasRearranged = true;
break;
}
}
return { wasRearranged, responses: result };
}
exports.orderByTimestamp = orderByTimestamp;