UNPKG

@ovotech/genesys-web-messaging-tester

Version:
46 lines (45 loc) 1.52 kB
"use strict"; 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;