@almaviacx/gge-toolkit-service 2.8.0 → 2.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/models/Calendar.d.ts +5 -5
- package/dist/models/CallTask.d.ts +1 -1
- package/dist/models/Context.d.ts +1 -1
- package/dist/tests/almavia-twilio-runtime.js +48 -76
- package/dist/tests/almavia-twilio-runtime.js.map +1 -1
- package/dist/tests/twilio-runtime.d.ts +1 -1
- package/dist/tests/twilio-runtime.js +34 -34
- package/dist/tests/twilio-runtime.js.map +1 -1
- package/dist/utils/__tests__/callreason.test.js +30 -93
- package/dist/utils/__tests__/callreason.test.js.map +1 -1
- package/dist/utils/__tests__/message.test.js +10 -10
- package/dist/utils/__tests__/message.test.js.map +1 -1
- package/dist/utils/__tests__/phonenumber.test.js +45 -119
- package/dist/utils/__tests__/phonenumber.test.js.map +1 -1
- package/dist/utils/__tests__/video.test.js +35 -110
- package/dist/utils/__tests__/video.test.js.map +1 -1
- package/dist/utils/calendar.js +71 -133
- package/dist/utils/calendar.js.map +1 -1
- package/dist/utils/callreason.js +41 -113
- package/dist/utils/callreason.js.map +1 -1
- package/dist/utils/conversation.js +37 -93
- package/dist/utils/conversation.js.map +1 -1
- package/dist/utils/flexFlows.js +60 -130
- package/dist/utils/flexFlows.js.map +1 -1
- package/dist/utils/message.js +9 -9
- package/dist/utils/message.js.map +1 -1
- package/dist/utils/phonenumber.js +68 -136
- package/dist/utils/phonenumber.js.map +1 -1
- package/dist/utils/video.js +85 -167
- package/dist/utils/video.js.map +1 -1
- package/dist/utils/voiceCall.js +156 -286
- package/dist/utils/voiceCall.js.map +1 -1
- package/dist/utils/worker.js +77 -170
- package/dist/utils/worker.js.map +1 -1
- package/package.json +2 -4
package/dist/utils/calendar.js
CHANGED
|
@@ -1,156 +1,94 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
});
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkOpened = exports.getCalendar = void 0;
|
|
4
|
+
// Helper: get current date in a specific timezone
|
|
5
|
+
const getNowInTimezone = (timezone) => {
|
|
6
|
+
// We use Intl to get the current time parts in the target timezone
|
|
7
|
+
const now = new Date();
|
|
8
|
+
const parts = new Intl.DateTimeFormat("en-US", {
|
|
9
|
+
timeZone: timezone,
|
|
10
|
+
year: "numeric",
|
|
11
|
+
month: "2-digit",
|
|
12
|
+
day: "2-digit",
|
|
13
|
+
hour: "2-digit",
|
|
14
|
+
minute: "2-digit",
|
|
15
|
+
second: "2-digit",
|
|
16
|
+
hour12: false,
|
|
17
|
+
}).formatToParts(now);
|
|
18
|
+
const get = (type) => { var _a, _b; return (_b = (_a = parts.find((p) => p.type === type)) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : "0"; };
|
|
19
|
+
// Reconstruct a local Date representing the wall-clock time in that timezone
|
|
20
|
+
return new Date(parseInt(get("year")), parseInt(get("month")) - 1, parseInt(get("day")), parseInt(get("hour")) === 24 ? 0 : parseInt(get("hour")), parseInt(get("minute")), parseInt(get("second")));
|
|
24
21
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return new (
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
22
|
+
// Helper: build a Date from explicit date/time parts (no timezone shift)
|
|
23
|
+
const buildDate = (year, month, day, hour, minute) => {
|
|
24
|
+
return new Date(year, month - 1, day, hour, minute, 0, 0);
|
|
33
25
|
};
|
|
34
|
-
|
|
35
|
-
var
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
50
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
51
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
52
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
53
|
-
if (t[2]) _.ops.pop();
|
|
54
|
-
_.trys.pop(); continue;
|
|
55
|
-
}
|
|
56
|
-
op = body.call(thisArg, _);
|
|
57
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
58
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
26
|
+
const getCalendar = async (context, calendarId, calendarName) => {
|
|
27
|
+
var _a, _b;
|
|
28
|
+
const logger = context.logger;
|
|
29
|
+
const client = context.getTwilioClient();
|
|
30
|
+
const config = await client.sync.v1.services(context.SERVICE_MISC).documents(context.DOC_CAL).fetch();
|
|
31
|
+
const calendars = ((_b = (_a = config.data) === null || _a === void 0 ? void 0 : _a.misc) === null || _b === void 0 ? void 0 : _b.businessCalendar) || {};
|
|
32
|
+
let calendar;
|
|
33
|
+
if (calendarId) {
|
|
34
|
+
calendar = calendars[calendarId];
|
|
35
|
+
}
|
|
36
|
+
if (!calendar && calendarName) {
|
|
37
|
+
calendar = Object.values(calendars).find((c) => c.name == calendarName);
|
|
38
|
+
}
|
|
39
|
+
if (!calendar) {
|
|
40
|
+
return undefined;
|
|
59
41
|
}
|
|
42
|
+
if (calendar.open || calendar.close) {
|
|
43
|
+
return calendar;
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
logger.debug(`[getCalendar] get calendar from document "CORE - Config [${calendar.id}]"`);
|
|
47
|
+
const cdoc = await client.sync.v1.services(context.SERVICE_MISC).documents(`CORE - Config [${calendar.id}]`).fetch();
|
|
48
|
+
return cdoc.data;
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
logger.error(`[getCalendar] get calendar from document "CORE - Config [${calendar.id}]"`, error);
|
|
52
|
+
}
|
|
53
|
+
return calendar;
|
|
60
54
|
};
|
|
61
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
62
|
-
exports.checkOpened = exports.getCalendar = void 0;
|
|
63
|
-
var Moment = __importStar(require("moment-timezone"));
|
|
64
|
-
var MomentRange = __importStar(require("moment-range"));
|
|
65
|
-
var moment = MomentRange.extendMoment(Moment);
|
|
66
|
-
var getCalendar = function (context, calendarId, calendarName) { return __awaiter(void 0, void 0, void 0, function () {
|
|
67
|
-
var logger, client, config, calendars, calendar, cdoc, error_1;
|
|
68
|
-
var _a, _b;
|
|
69
|
-
return __generator(this, function (_c) {
|
|
70
|
-
switch (_c.label) {
|
|
71
|
-
case 0:
|
|
72
|
-
logger = context.logger;
|
|
73
|
-
client = context.getTwilioClient();
|
|
74
|
-
return [4 /*yield*/, client.sync.v1.services(context.SERVICE_MISC).documents(context.DOC_CAL).fetch()];
|
|
75
|
-
case 1:
|
|
76
|
-
config = _c.sent();
|
|
77
|
-
calendars = ((_b = (_a = config.data) === null || _a === void 0 ? void 0 : _a.misc) === null || _b === void 0 ? void 0 : _b.businessCalendar) || {};
|
|
78
|
-
if (calendarId) {
|
|
79
|
-
calendar = calendars[calendarId];
|
|
80
|
-
}
|
|
81
|
-
if (!calendar && calendarName) {
|
|
82
|
-
calendar = Object.values(calendars).find(function (c) { return c.name == calendarName; });
|
|
83
|
-
}
|
|
84
|
-
if (!calendar) {
|
|
85
|
-
return [2 /*return*/, undefined];
|
|
86
|
-
}
|
|
87
|
-
if (calendar.open || calendar.close) {
|
|
88
|
-
return [2 /*return*/, calendar];
|
|
89
|
-
}
|
|
90
|
-
_c.label = 2;
|
|
91
|
-
case 2:
|
|
92
|
-
_c.trys.push([2, 4, , 5]);
|
|
93
|
-
logger.debug("[getCalendar] get calendar from document \"CORE - Config [".concat(calendar.id, "]\""));
|
|
94
|
-
return [4 /*yield*/, client.sync.v1.services(context.SERVICE_MISC).documents("CORE - Config [".concat(calendar.id, "]")).fetch()];
|
|
95
|
-
case 3:
|
|
96
|
-
cdoc = _c.sent();
|
|
97
|
-
return [2 /*return*/, cdoc.data];
|
|
98
|
-
case 4:
|
|
99
|
-
error_1 = _c.sent();
|
|
100
|
-
logger.error("[getCalendar] get calendar from document \"CORE - Config [".concat(calendar.id, "]\""), error_1);
|
|
101
|
-
return [3 /*break*/, 5];
|
|
102
|
-
case 5: return [2 /*return*/, calendar];
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
}); };
|
|
106
55
|
exports.getCalendar = getCalendar;
|
|
107
|
-
|
|
56
|
+
const checkOpened = (context, calendar) => {
|
|
108
57
|
var _a, _b;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
var startHour = c.start.hour.toString().padStart(2, "0");
|
|
118
|
-
var startMinute = c.start.minute.toString().padStart(2, "0");
|
|
119
|
-
var endHour = c.end.hour.toString().padStart(2, "0");
|
|
120
|
-
var endMinute = c.end.minute.toString().padStart(2, "0");
|
|
121
|
-
var sdStr = "".concat(year).concat(month).concat(day).concat(startHour).concat(startMinute);
|
|
122
|
-
var edStr = "".concat(year).concat(month).concat(day).concat(endHour).concat(endMinute);
|
|
123
|
-
var sd = moment(sdStr, "YYYYMMDDHHmm").tz(timezone, true);
|
|
124
|
-
var ed = moment(edStr, "YYYYMMDDHHmm").tz(timezone, true);
|
|
125
|
-
//logger.debug("Compare " + currentDate + " within " + sd + " _ " + ed);
|
|
58
|
+
const { logger } = context;
|
|
59
|
+
const result = { isOpen: true, isHoliday: false, isRegularDay: false };
|
|
60
|
+
const timezone = calendar.timezone || "GMT";
|
|
61
|
+
const currentDate = getNowInTimezone(timezone);
|
|
62
|
+
const closed = (_a = calendar.close) === null || _a === void 0 ? void 0 : _a.find((c) => {
|
|
63
|
+
const year = c.recurrent ? currentDate.getFullYear() : c.year;
|
|
64
|
+
const sd = buildDate(year, c.month, c.day, c.start.hour, c.start.minute);
|
|
65
|
+
const ed = buildDate(year, c.month, c.day, c.end.hour, c.end.minute);
|
|
126
66
|
return currentDate >= sd && currentDate <= ed;
|
|
127
67
|
});
|
|
128
68
|
if (closed) {
|
|
129
|
-
logger.info(
|
|
69
|
+
logger.info(`Calendar ${calendar.name} is closed (closed day)`);
|
|
130
70
|
result.isHoliday = true;
|
|
131
71
|
result.isOpen = false;
|
|
132
72
|
return result;
|
|
133
73
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
var
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
ed.set({ hour: endTime.hour, minute: endTime.minute, second: endTime.second, millisecond: 0 });
|
|
146
|
-
//logger.debug("Compare " + currentDate + " within " + sd + " _ " + ed);
|
|
74
|
+
const open = calendar.open || [];
|
|
75
|
+
// Sunday = 0 ... Saturday = 6, same as moment's .day()
|
|
76
|
+
const dayOfWeek = currentDate.getDay();
|
|
77
|
+
const index = open.findIndex((e) => e.id === dayOfWeek);
|
|
78
|
+
const periods = index > -1 ? (_b = open[index].periods) !== null && _b !== void 0 ? _b : [] : [];
|
|
79
|
+
const opened = periods.find((p) => {
|
|
80
|
+
var _a, _b;
|
|
81
|
+
const sd = buildDate(currentDate.getFullYear(), currentDate.getMonth() + 1, currentDate.getDate(), p.start.hour, p.start.minute);
|
|
82
|
+
sd.setSeconds((_a = p.start.second) !== null && _a !== void 0 ? _a : 0);
|
|
83
|
+
const ed = buildDate(currentDate.getFullYear(), currentDate.getMonth() + 1, currentDate.getDate(), p.end.hour, p.end.minute);
|
|
84
|
+
ed.setSeconds((_b = p.end.second) !== null && _b !== void 0 ? _b : 0);
|
|
147
85
|
return currentDate >= sd && currentDate <= ed;
|
|
148
86
|
});
|
|
149
87
|
if (opened) {
|
|
150
88
|
result.isRegularDay = true;
|
|
151
89
|
}
|
|
152
90
|
else {
|
|
153
|
-
logger.info(
|
|
91
|
+
logger.info(`Calendar ${calendar.name} is closed (opening hours)`);
|
|
154
92
|
result.isOpen = false;
|
|
155
93
|
}
|
|
156
94
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/utils/calendar.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/utils/calendar.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/callreason.js
CHANGED
|
@@ -1,120 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
-
function step(op) {
|
|
27
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (_) try {
|
|
29
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
-
switch (op[0]) {
|
|
32
|
-
case 0: case 1: t = op; break;
|
|
33
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
-
default:
|
|
37
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
-
if (t[2]) _.ops.pop();
|
|
42
|
-
_.trys.pop(); continue;
|
|
43
|
-
}
|
|
44
|
-
op = body.call(thisArg, _);
|
|
45
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
3
|
exports.getCallReason = exports.saveCallReason = void 0;
|
|
51
|
-
|
|
52
|
-
return
|
|
4
|
+
const getMapKey = (from, to) => {
|
|
5
|
+
return `${from}|${to}`;
|
|
6
|
+
};
|
|
7
|
+
const saveCallReason = async (context, attributes, from, to, callReason) => {
|
|
8
|
+
const { logger } = context;
|
|
9
|
+
const client = context.getTwilioClient();
|
|
10
|
+
const key = getMapKey(from, to);
|
|
11
|
+
const data = Object.assign({ callReason }, attributes);
|
|
12
|
+
if (data.request) {
|
|
13
|
+
delete data.request;
|
|
14
|
+
}
|
|
15
|
+
if (data.from) {
|
|
16
|
+
delete data.from;
|
|
17
|
+
}
|
|
18
|
+
if (data.to) {
|
|
19
|
+
delete data.to;
|
|
20
|
+
}
|
|
21
|
+
logger.info(`Save call reason for ${key} : ${callReason}`);
|
|
22
|
+
try {
|
|
23
|
+
await client.sync.v1.services(context.SERVICE_MISC).syncMaps(context.MAP_CALL).syncMapItems(key).update({ data });
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
await client.sync.v1.services(context.SERVICE_MISC).syncMaps(context.MAP_CALL).syncMapItems.create({ key, data, ttl: 30 });
|
|
27
|
+
}
|
|
28
|
+
return data;
|
|
53
29
|
};
|
|
54
|
-
var saveCallReason = function (context, attributes, from, to, callReason) { return __awaiter(void 0, void 0, void 0, function () {
|
|
55
|
-
var logger, client, key, data, error_1;
|
|
56
|
-
return __generator(this, function (_a) {
|
|
57
|
-
switch (_a.label) {
|
|
58
|
-
case 0:
|
|
59
|
-
logger = context.logger;
|
|
60
|
-
client = context.getTwilioClient();
|
|
61
|
-
key = getMapKey(from, to);
|
|
62
|
-
data = __assign({ callReason: callReason }, attributes);
|
|
63
|
-
if (data.request) {
|
|
64
|
-
delete data.request;
|
|
65
|
-
}
|
|
66
|
-
if (data.from) {
|
|
67
|
-
delete data.from;
|
|
68
|
-
}
|
|
69
|
-
if (data.to) {
|
|
70
|
-
delete data.to;
|
|
71
|
-
}
|
|
72
|
-
logger.info("Save call reason for ".concat(key, " : ").concat(callReason));
|
|
73
|
-
_a.label = 1;
|
|
74
|
-
case 1:
|
|
75
|
-
_a.trys.push([1, 3, , 5]);
|
|
76
|
-
return [4 /*yield*/, client.sync.v1.services(context.SERVICE_MISC).syncMaps(context.MAP_CALL).syncMapItems(key).update({ data: data })];
|
|
77
|
-
case 2:
|
|
78
|
-
_a.sent();
|
|
79
|
-
return [3 /*break*/, 5];
|
|
80
|
-
case 3:
|
|
81
|
-
error_1 = _a.sent();
|
|
82
|
-
return [4 /*yield*/, client.sync.v1.services(context.SERVICE_MISC).syncMaps(context.MAP_CALL).syncMapItems.create({ key: key, data: data, ttl: 30 })];
|
|
83
|
-
case 4:
|
|
84
|
-
_a.sent();
|
|
85
|
-
return [3 /*break*/, 5];
|
|
86
|
-
case 5: return [2 /*return*/, data];
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}); };
|
|
90
30
|
exports.saveCallReason = saveCallReason;
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
case 3:
|
|
108
|
-
_a.sent();
|
|
109
|
-
logger.info(" => ", result.data);
|
|
110
|
-
return [2 /*return*/, result.data];
|
|
111
|
-
case 4:
|
|
112
|
-
error_2 = _a.sent();
|
|
113
|
-
logger.info(" => first");
|
|
114
|
-
return [2 /*return*/, { callReason: "first" }];
|
|
115
|
-
case 5: return [2 /*return*/];
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
}); };
|
|
31
|
+
const getCallReason = async (context, from, to) => {
|
|
32
|
+
const { logger } = context;
|
|
33
|
+
const client = context.getTwilioClient();
|
|
34
|
+
const key = getMapKey(from, to);
|
|
35
|
+
logger.info(`Get call reason for ${key}`);
|
|
36
|
+
try {
|
|
37
|
+
const result = await client.sync.v1.services(context.SERVICE_MISC).syncMaps(context.MAP_CALL).syncMapItems(key).fetch();
|
|
38
|
+
await client.sync.v1.services(context.SERVICE_MISC).syncMaps(context.MAP_CALL).syncMapItems(key).remove();
|
|
39
|
+
logger.info(" => ", result.data);
|
|
40
|
+
return result.data;
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
logger.info(" => first");
|
|
44
|
+
return { callReason: "first" };
|
|
45
|
+
}
|
|
46
|
+
};
|
|
119
47
|
exports.getCallReason = getCallReason;
|
|
120
48
|
//# sourceMappingURL=callreason.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callreason.js","sourceRoot":"","sources":["../../src/utils/callreason.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"callreason.js","sourceRoot":"","sources":["../../src/utils/callreason.ts"],"names":[],"mappings":";;;AAEA,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE;IAC7C,OAAO,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AACzB,CAAC,CAAC;AAEK,MAAM,cAAc,GAAG,KAAK,EACjC,OAAgB,EAChB,UAA4D,EAC5D,IAAY,EACZ,EAAU,EACV,UAAkB,EAClB,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IACzC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChC,MAAM,IAAI,mBAAK,UAAU,IAAK,UAAU,CAAE,CAAC;IAE3C,IAAI,IAAI,CAAC,OAAO,EAAE;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IACD,IAAI,IAAI,CAAC,IAAI,EAAE;QACb,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;IACD,IAAI,IAAI,CAAC,EAAE,EAAE;QACX,OAAO,IAAI,CAAC,EAAE,CAAC;KAChB;IAED,MAAM,CAAC,IAAI,CAAC,wBAAwB,GAAG,MAAM,UAAU,EAAE,CAAC,CAAC;IAE3D,IAAI;QACF,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KACnH;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;KAC5H;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AA/BW,QAAA,cAAc,kBA+BzB;AAEK,MAAM,aAAa,GAAG,KAAK,EAAE,OAAgB,EAAE,IAAY,EAAE,EAAU,EAAE,EAAE;IAChF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IACzC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEhC,MAAM,CAAC,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;IAE1C,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QACxH,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1G,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC,IAAI,CAAC;KACpB;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;KAChC;AACH,CAAC,CAAC;AAhBW,QAAA,aAAa,iBAgBxB"}
|
|
@@ -1,103 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
3
|
exports.getConversationInfos = void 0;
|
|
40
|
-
|
|
41
|
-
var client, participants, binding, result, channel, attributes, channelType;
|
|
4
|
+
const getConversationInfos = async (context, conversationSid) => {
|
|
42
5
|
var _a, _b, _c;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
channelType = ((_b = attributes.pre_engagement_data) === null || _b === void 0 ? void 0 : _b.channelType) || attributes.channel_type;
|
|
67
|
-
return [2 /*return*/, {
|
|
68
|
-
from: attributes.from,
|
|
69
|
-
twilioNumber: ((_c = attributes.pre_engagement_data) === null || _c === void 0 ? void 0 : _c.twilioNumber) || attributes.twilioNumber,
|
|
70
|
-
channelType: channelType,
|
|
71
|
-
channelName: channelType === "web" ? "chat" : channelType
|
|
72
|
-
}];
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}); };
|
|
6
|
+
const client = context.getTwilioClient();
|
|
7
|
+
const participants = await client.conversations.v1.conversations(conversationSid).participants.list();
|
|
8
|
+
const binding = (_a = participants.find((p) => p.messagingBinding !== null)) === null || _a === void 0 ? void 0 : _a.messagingBinding;
|
|
9
|
+
if (binding) {
|
|
10
|
+
const result = {
|
|
11
|
+
from: binding.address.split(':').pop(),
|
|
12
|
+
twilioNumber: binding.proxy_address.split(':').pop(),
|
|
13
|
+
channelType: binding.type,
|
|
14
|
+
channelName: binding.type
|
|
15
|
+
};
|
|
16
|
+
await manageFacebook(context, client, result);
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
const channel = await client.conversations.v1.conversations(conversationSid).fetch();
|
|
20
|
+
const attributes = JSON.parse(channel.attributes);
|
|
21
|
+
const channelType = ((_b = attributes.pre_engagement_data) === null || _b === void 0 ? void 0 : _b.channelType) || attributes.channel_type;
|
|
22
|
+
return {
|
|
23
|
+
from: attributes.from,
|
|
24
|
+
twilioNumber: ((_c = attributes.pre_engagement_data) === null || _c === void 0 ? void 0 : _c.twilioNumber) || attributes.twilioNumber,
|
|
25
|
+
channelType,
|
|
26
|
+
channelName: channelType === "web" ? "chat" : channelType
|
|
27
|
+
};
|
|
28
|
+
};
|
|
76
29
|
exports.getConversationInfos = getConversationInfos;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
return [4 /*yield*/, client.sync.v1.services(context.SERVICE_MISC).documents(context.DOC_CFG).fetch()];
|
|
87
|
-
case 1:
|
|
88
|
-
doc = _a.sent();
|
|
89
|
-
page = getPage(doc, result.twilioNumber);
|
|
90
|
-
if (page && page.phone) {
|
|
91
|
-
result.twilioNumber = page.phone;
|
|
92
|
-
}
|
|
93
|
-
_a.label = 2;
|
|
94
|
-
case 2: return [2 /*return*/];
|
|
30
|
+
const manageFacebook = async (context, client, result) => {
|
|
31
|
+
if (["messenger", "facebook"].includes(result.channelType)) {
|
|
32
|
+
// twilioNumber correspond pour le moment à l'id de la page FB, il faut rechercher la config correspondante
|
|
33
|
+
result.pageId = result.twilioNumber;
|
|
34
|
+
result.channelType = "facebook";
|
|
35
|
+
const doc = await client.sync.v1.services(context.SERVICE_MISC).documents(context.DOC_CFG).fetch();
|
|
36
|
+
const page = getPage(doc, result.twilioNumber);
|
|
37
|
+
if (page && page.phone) {
|
|
38
|
+
result.twilioNumber = page.phone;
|
|
95
39
|
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const getPage = (doc, id) => {
|
|
99
43
|
if (doc && doc.data && doc.data.facebook && doc.data.facebook.pages) {
|
|
100
|
-
return doc.data.facebook.pages.find(
|
|
44
|
+
return doc.data.facebook.pages.find((p) => p.id === id);
|
|
101
45
|
}
|
|
102
46
|
return undefined;
|
|
103
47
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/utils/conversation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/utils/conversation.ts"],"names":[],"mappings":"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"}
|