@almaviacx/gge-toolkit-service 2.9.2 → 2.9.3

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.
@@ -1,156 +1,94 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
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
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
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
- var __generator = (this && this.__generator) || function (thisArg, body) {
35
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
- function verb(n) { return function (v) { return step([n, v]); }; }
38
- function step(op) {
39
- if (f) throw new TypeError("Generator is already executing.");
40
- while (_) try {
41
- 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;
42
- if (y = 0, t) op = [op[0] & 2, t.value];
43
- switch (op[0]) {
44
- case 0: case 1: t = op; break;
45
- case 4: _.label++; return { value: op[1], done: false };
46
- case 5: _.label++; y = op[1]; op = [0]; continue;
47
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
- default:
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
- var checkOpened = function (context, calendar) {
56
+ const checkOpened = (context, calendar) => {
108
57
  var _a, _b;
109
- var logger = context.logger;
110
- var result = { isOpen: true, isHoliday: false, isRegularDay: false };
111
- var timezone = calendar.timezone || "GMT";
112
- var currentDate = moment().tz(timezone);
113
- var closed = (_a = calendar.close) === null || _a === void 0 ? void 0 : _a.find(function (c) {
114
- var day = c.day.toString().padStart(2, "0");
115
- var month = c.month.toString().padStart(2, "0");
116
- var year = c.recurrent ? currentDate.year() : c.year;
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("Calendar ".concat(calendar.name, " is closed (closed day)"));
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
- var open = calendar.open || [];
135
- var dayOfWeek = currentDate.day();
136
- var index = open.findIndex(function (e) { return e.id === dayOfWeek; });
137
- var periods = index > -1 ? (_b = open[index].periods) !== null && _b !== void 0 ? _b : [] : [];
138
- //logger.debug("Day of week : " + dayOfWeek + " " + index + " " + JSON.stringify(periods));
139
- var opened = periods.find(function (p) {
140
- var startTime = p.start;
141
- var endTime = p.end;
142
- var sd = moment().tz(timezone);
143
- sd.set({ hour: startTime.hour, minute: startTime.minute, second: startTime.second, millisecond: 0 });
144
- var ed = moment().tz(timezone);
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("Calendar ".concat(calendar.name, " is closed (opening hours)"));
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":"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"}
1
+ {"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../src/utils/calendar.ts"],"names":[],"mappings":"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"}
@@ -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
- var getMapKey = function (from, to) {
52
- return "".concat(from, "|").concat(to);
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
- var getCallReason = function (context, from, to) { return __awaiter(void 0, void 0, void 0, function () {
92
- var logger, client, key, result, error_2;
93
- return __generator(this, function (_a) {
94
- switch (_a.label) {
95
- case 0:
96
- logger = context.logger;
97
- client = context.getTwilioClient();
98
- key = getMapKey(from, to);
99
- logger.info("Get call reason for ".concat(key));
100
- _a.label = 1;
101
- case 1:
102
- _a.trys.push([1, 4, , 5]);
103
- return [4 /*yield*/, client.sync.v1.services(context.SERVICE_MISC).syncMaps(context.MAP_CALL).syncMapItems(key).fetch()];
104
- case 2:
105
- result = _a.sent();
106
- return [4 /*yield*/, client.sync.v1.services(context.SERVICE_MISC).syncMaps(context.MAP_CALL).syncMapItems(key).remove()];
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAM,SAAS,GAAG,UAAC,IAAY,EAAE,EAAU;IACzC,OAAO,UAAG,IAAI,cAAI,EAAE,CAAE,CAAC;AACzB,CAAC,CAAC;AAEK,IAAM,cAAc,GAAG,UAC5B,OAAgB,EAChB,UAA4D,EAC5D,IAAY,EACZ,EAAU,EACV,UAAkB;;;;;gBAEV,MAAM,GAAK,OAAO,OAAZ,CAAa;gBACrB,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;gBACnC,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC1B,IAAI,cAAK,UAAU,YAAA,IAAK,UAAU,CAAE,CAAC;gBAE3C,IAAI,IAAI,CAAC,OAAO,EAAE;oBAChB,OAAO,IAAI,CAAC,OAAO,CAAC;iBACrB;gBACD,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,OAAO,IAAI,CAAC,IAAI,CAAC;iBAClB;gBACD,IAAI,IAAI,CAAC,EAAE,EAAE;oBACX,OAAO,IAAI,CAAC,EAAE,CAAC;iBAChB;gBAED,MAAM,CAAC,IAAI,CAAC,+BAAwB,GAAG,gBAAM,UAAU,CAAE,CAAC,CAAC;;;;gBAGzD,qBAAM,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,MAAA,EAAE,CAAC,EAAA;;gBAAjH,SAAiH,CAAC;;;;gBAElH,qBAAM,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,KAAA,EAAE,IAAI,MAAA,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAA;;gBAA1H,SAA0H,CAAC;;oBAG7H,sBAAO,IAAI,EAAC;;;KACb,CAAC;AA/BW,QAAA,cAAc,kBA+BzB;AAEK,IAAM,aAAa,GAAG,UAAO,OAAgB,EAAE,IAAY,EAAE,EAAU;;;;;gBACpE,MAAM,GAAK,OAAO,OAAZ,CAAa;gBACrB,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;gBACnC,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAEhC,MAAM,CAAC,IAAI,CAAC,8BAAuB,GAAG,CAAE,CAAC,CAAC;;;;gBAGzB,qBAAM,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,EAAA;;gBAAjH,MAAM,GAAG,SAAwG;gBACvH,qBAAM,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,EAAA;;gBAAzG,SAAyG,CAAC;gBAC1G,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACjC,sBAAO,MAAM,CAAC,IAAI,EAAC;;;gBAEnB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACzB,sBAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAC;;;;KAElC,CAAC;AAhBW,QAAA,aAAa,iBAgBxB"}
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
- var getConversationInfos = function (context, conversationSid) { return __awaiter(void 0, void 0, void 0, function () {
41
- var client, participants, binding, result, channel, attributes, channelType;
4
+ const getConversationInfos = async (context, conversationSid) => {
42
5
  var _a, _b, _c;
43
- return __generator(this, function (_d) {
44
- switch (_d.label) {
45
- case 0:
46
- client = context.getTwilioClient();
47
- return [4 /*yield*/, client.conversations.v1.conversations(conversationSid).participants.list()];
48
- case 1:
49
- participants = _d.sent();
50
- binding = (_a = participants.find(function (p) { return p.messagingBinding !== null; })) === null || _a === void 0 ? void 0 : _a.messagingBinding;
51
- if (!binding) return [3 /*break*/, 3];
52
- result = {
53
- from: binding.address.split(':').pop(),
54
- twilioNumber: binding.proxy_address.split(':').pop(),
55
- channelType: binding.type,
56
- channelName: binding.type
57
- };
58
- return [4 /*yield*/, manageFacebook(context, client, result)];
59
- case 2:
60
- _d.sent();
61
- return [2 /*return*/, result];
62
- case 3: return [4 /*yield*/, client.conversations.v1.conversations(conversationSid).fetch()];
63
- case 4:
64
- channel = _d.sent();
65
- attributes = JSON.parse(channel.attributes);
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
- var manageFacebook = function (context, client, result) { return __awaiter(void 0, void 0, void 0, function () {
78
- var doc, page;
79
- return __generator(this, function (_a) {
80
- switch (_a.label) {
81
- case 0:
82
- if (!["messenger", "facebook"].includes(result.channelType)) return [3 /*break*/, 2];
83
- // twilioNumber correspond pour le moment à l'id de la page FB, il faut rechercher la config correspondante
84
- result.pageId = result.twilioNumber;
85
- result.channelType = "facebook";
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
- var getPage = function (doc, id) {
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(function (p) { return p.id === id; });
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":"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"}
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/utils/conversation.ts"],"names":[],"mappings":"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"}