@botfabrik/engine-webclient 4.59.4 → 4.59.6

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/index.js CHANGED
@@ -31,6 +31,7 @@ const engine_domain_1 = require("@botfabrik/engine-domain");
31
31
  const engine_transcript_export_1 = require("@botfabrik/engine-transcript-export");
32
32
  const express = __importStar(require("express"));
33
33
  const createSessionInfo_1 = __importDefault(require("./createSessionInfo"));
34
+ const extractLocale_1 = __importDefault(require("./extractLocale"));
34
35
  const getSupportedClientLocale_1 = __importDefault(require("./getSupportedClientLocale"));
35
36
  const loadPreviousConversation_1 = __importDefault(require("./loadPreviousConversation"));
36
37
  const middleware_1 = __importDefault(require("./middleware"));
@@ -93,11 +94,12 @@ exports.default = (clientName, environment, props) => async (bot) => {
93
94
  nsp.on('connection', async (socket) => {
94
95
  try {
95
96
  const querystrings = socket.handshake.query;
97
+ const locale = (0, extractLocale_1.default)(querystrings, socket.request.headers['accept-language']);
96
98
  const sessionsCollection = bot.store.db.collection('sessions');
97
- const { sessionId, sessionInfo: defaultSessionInfo, isNew, } = await (0, requestSessionData_1.default)(querystrings, sessionsCollection, clientName, props);
99
+ const { sessionId, sessionInfo: defaultSessionInfo, isNew, } = await (0, requestSessionData_1.default)(querystrings, sessionsCollection, clientName, locale, props);
98
100
  // create a channel for each session
99
101
  socket.join(sessionId);
100
- const sessionInfo = await (0, createSessionInfo_1.default)(socket, clientName, environment, defaultSessionInfo, props)();
102
+ const sessionInfo = await (0, createSessionInfo_1.default)(socket, clientName, environment, defaultSessionInfo, locale, props)();
101
103
  const session = await bot.createSession(sessionId, sessionInfo);
102
104
  // sending active language and translations to client
103
105
  const clientLocale = (0, getSupportedClientLocale_1.default)(session.translator.locale);
@@ -6,5 +6,5 @@ interface SessionData {
6
6
  sessionInfo: SessionInfo<SessionInfoClientPayload, SessionInfoUserPayload>;
7
7
  isNew: boolean;
8
8
  }
9
- declare const requestSessionData: (querystrings: any, sessionsCollection: any, clientName: string, props: WebClientProps) => Promise<SessionData>;
9
+ declare const requestSessionData: (querystrings: any, sessionsCollection: any, clientName: string, locale: string | undefined, props: WebClientProps) => Promise<SessionData>;
10
10
  export default requestSessionData;
@@ -2,19 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const uuid_1 = require("uuid");
4
4
  const index_1 = require("./index");
5
- const requestSessionData = async (querystrings, sessionsCollection, clientName, props) => {
5
+ const requestSessionData = async (querystrings, sessionsCollection, clientName, locale, props) => {
6
6
  const baseQuery = {
7
7
  'sessionInfo.client.type': index_1.CLIENT_TYPE,
8
8
  'sessionInfo.client.name': clientName,
9
9
  };
10
- let findSessionRecordQuery = {
11
- _id: querystrings.sessionId,
12
- ...baseQuery,
13
- };
10
+ let findSessionRecordQuery;
14
11
  if (props.requestSessionRecordQuery) {
15
12
  const customQuery = await props.requestSessionRecordQuery(querystrings);
16
13
  findSessionRecordQuery = Object.assign({}, baseQuery, customQuery);
17
14
  }
15
+ else {
16
+ findSessionRecordQuery = {
17
+ _id: querystrings.sessionId,
18
+ 'sessionInfo.user.locale': locale,
19
+ ...baseQuery,
20
+ };
21
+ }
18
22
  const sessionRecord = await sessionsCollection.findOne(findSessionRecordQuery, { _id: 1, sessionInfo: 1 });
19
23
  let sessionId;
20
24
  let sessionInfo;
@@ -19,7 +19,7 @@ const requestSessionData_1 = __importDefault(require("./requestSessionData"));
19
19
  const sessionsCollection = {
20
20
  findOne,
21
21
  };
22
- const { sessionId, isNew } = await (0, requestSessionData_1.default)(querystrings, sessionsCollection, 'test-bot', {});
22
+ const { sessionId, isNew } = await (0, requestSessionData_1.default)(querystrings, sessionsCollection, 'test-bot', 'de_DE', {});
23
23
  (0, globals_1.expect)(findOne).toHaveBeenCalledTimes(1);
24
24
  (0, globals_1.expect)(findOne).toHaveBeenCalledWith({
25
25
  _id: 'session-id',
@@ -35,7 +35,7 @@ const requestSessionData_1 = __importDefault(require("./requestSessionData"));
35
35
  const sessionsCollection = {
36
36
  findOne,
37
37
  };
38
- const { sessionId, isNew } = await (0, requestSessionData_1.default)(querystrings, sessionsCollection, 'test-bot', {});
38
+ const { sessionId, isNew } = await (0, requestSessionData_1.default)(querystrings, sessionsCollection, 'test-bot', 'de_DE', {});
39
39
  (0, globals_1.expect)(findOne).toHaveBeenCalledTimes(1);
40
40
  (0, globals_1.expect)(findOne).toHaveBeenCalledWith({
41
41
  _id: 'session-id',
@@ -56,7 +56,7 @@ const requestSessionData_1 = __importDefault(require("./requestSessionData"));
56
56
  requestSessionRecordQuery,
57
57
  };
58
58
  requestSessionRecordQuery.mockReturnValueOnce(Promise.resolve({ 'sessionInfo.user.id': 'hans@apptiva.ch' }));
59
- const { sessionId, isNew } = await (0, requestSessionData_1.default)(querystrings, sessionsCollection, 'test-bot', props);
59
+ const { sessionId, isNew } = await (0, requestSessionData_1.default)(querystrings, sessionsCollection, 'test-bot', 'de_DE', props);
60
60
  (0, globals_1.expect)(requestSessionRecordQuery).toHaveBeenCalledTimes(1);
61
61
  (0, globals_1.expect)(requestSessionRecordQuery).toHaveBeenCalledWith(querystrings);
62
62
  (0, globals_1.expect)(findOne).toHaveBeenCalledTimes(1);
@@ -79,7 +79,7 @@ const requestSessionData_1 = __importDefault(require("./requestSessionData"));
79
79
  requestSessionRecordQuery,
80
80
  };
81
81
  requestSessionRecordQuery.mockReturnValueOnce(Promise.resolve({ 'sessionInfo.user.id': 'hans@apptiva.ch' }));
82
- const { sessionId, isNew } = await (0, requestSessionData_1.default)(querystrings, sessionsCollection, 'test-bot', props);
82
+ const { sessionId, isNew } = await (0, requestSessionData_1.default)(querystrings, sessionsCollection, 'test-bot', 'de_DE', props);
83
83
  (0, globals_1.expect)(requestSessionRecordQuery).toHaveBeenCalledTimes(1);
84
84
  (0, globals_1.expect)(requestSessionRecordQuery).toHaveBeenCalledWith(querystrings);
85
85
  (0, globals_1.expect)(findOne).toHaveBeenCalledTimes(1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botfabrik/engine-webclient",
3
- "version": "4.59.4",
3
+ "version": "4.59.6",
4
4
  "description": "Webclient for Botfabriks Bot Engine",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -40,5 +40,5 @@
40
40
  "rimraf": "^5.0.5",
41
41
  "typescript": "5.1.6"
42
42
  },
43
- "gitHead": "30478b16d1438e52ef6a686bdf47605aa8dbe4e7"
43
+ "gitHead": "036bdce4fb950ef45dfd5a78041cb0a0881fcb91"
44
44
  }