@runnerpro/backend 1.8.16 → 1.8.18

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.
@@ -34,6 +34,7 @@ const common_1 = require("@runnerpro/common");
34
34
  const index_2 = require("../../locale/index");
35
35
  const multer_1 = __importDefault(require("multer"));
36
36
  const axios_1 = __importDefault(require("axios"));
37
+ const saveResponseTime_1 = require("../saveResponseTime");
37
38
  const conversationRoute = (_a) => {
38
39
  var { router } = _a, params = __rest(_a, ["router"]);
39
40
  const uploadFile = (0, multer_1.default)({
@@ -233,7 +234,7 @@ const readMessage = (req, res, { query, isClient }) => __awaiter(void 0, void 0,
233
234
  const markReadMessage = ({ isClient, query, idCliente }) => __awaiter(void 0, void 0, void 0, function* () {
234
235
  const conditionSender = isClient ? ' AND [ID SENDER] != ?' : ' AND ([ID SENDER] = ? OR [ID SENDER] IS NULL)';
235
236
  yield query('UPDATE [CHAT MESSAGE] SET [READ] = TRUE WHERE [ID CLIENTE] = ? AND [READ] = FALSE ' + conditionSender, [idCliente, idCliente]);
236
- yield saveResponseTime({ query, isClient, idCliente });
237
+ yield (0, saveResponseTime_1.saveResponseTime)({ isClient, idCliente });
237
238
  });
238
239
  const resizeImage = (data, filePath, mimetype) => __awaiter(void 0, void 0, void 0, function* () {
239
240
  if (mimetype.includes('webp'))
@@ -266,29 +267,3 @@ const rotateOrientationImage = (data, filePath, image = null, mimetype) => __awa
266
267
  image = yield image.rotate(rotate);
267
268
  return image.getBufferAsync(jimp_1.default.MIME_JPEG);
268
269
  });
269
- const saveResponseTime = ({ query, isClient, idCliente }) => __awaiter(void 0, void 0, void 0, function* () {
270
- if (isClient)
271
- return;
272
- let lastNotReadMessage;
273
- let firstNotReadMessage;
274
- // eslint-disable-next-line no-constant-condition
275
- while (true) {
276
- const [lastMessage] = yield query(`
277
- SELECT * FROM [CHAT MESSAGE]
278
- WHERE [ID CLIENTE] = ? AND [ID] < ?
279
- ORDER BY [DATE] DESC
280
- LIMIT 1
281
- `, [idCliente, (lastNotReadMessage === null || lastNotReadMessage === void 0 ? void 0 : lastNotReadMessage.id) || 2147483646]);
282
- // Si no hay más mensajes || el mensaje no es del cliente || ya tiene tiempo de respuesta => salimos del bucle
283
- if (!lastMessage || (lastMessage.idSender && lastMessage.idCliente !== lastMessage.idSender) || lastMessage.tiempoRespuesta)
284
- break;
285
- lastNotReadMessage = lastMessage; // Se va actualizando el último mensaje no leído hasta que se encuentra el primero
286
- if (!firstNotReadMessage)
287
- firstNotReadMessage = lastMessage; // Se guarda el primer mensaje no leído para añadir en este el tiempo de respuesta
288
- }
289
- if (!lastNotReadMessage)
290
- return;
291
- // @ts-ignore
292
- const responseTime = Math.floor((new Date() - new Date(lastNotReadMessage.date)) / 1000);
293
- yield query('UPDATE [CHAT MESSAGE] SET [TIEMPO RESPUESTA] = ? WHERE [ID] = ?', [responseTime, firstNotReadMessage.id]);
294
- });
@@ -0,0 +1,44 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.saveResponseTime = void 0;
13
+ const index_1 = require("../db/index");
14
+ const saveResponseTime = ({ isClient, idCliente }) => __awaiter(void 0, void 0, void 0, function* () {
15
+ console.log('saveResponseTime', isClient, idCliente);
16
+ if (isClient)
17
+ return;
18
+ let lastNotReadMessage;
19
+ let firstNotReadMessage;
20
+ // eslint-disable-next-line no-constant-condition
21
+ while (true) {
22
+ const [lastMessage] = yield (0, index_1.query)(`
23
+ SELECT * FROM [CHAT MESSAGE]
24
+ WHERE [ID CLIENTE] = ? AND [ID] < ?
25
+ ORDER BY [DATE] DESC
26
+ LIMIT 1
27
+ `, [idCliente, lastNotReadMessage === null || lastNotReadMessage === void 0 ? void 0 : lastNotReadMessage.id]);
28
+ console.log('lastMessage', lastMessage);
29
+ // Si no hay más mensajes || el mensaje no es del cliente || ya tiene tiempo de respuesta => salimos del bucle
30
+ if (!lastMessage || (lastMessage.idSender && lastMessage.idCliente !== lastMessage.idSender) || lastMessage.tiempoRespuesta)
31
+ break;
32
+ lastNotReadMessage = lastMessage; // Se va actualizando el último mensaje no leído hasta que se encuentra el primero
33
+ if (!firstNotReadMessage)
34
+ firstNotReadMessage = lastMessage; // Se guarda el primer mensaje no leído para añadir en este el tiempo de respuesta
35
+ }
36
+ console.log('lastNotReadMessage final', lastNotReadMessage);
37
+ if (!lastNotReadMessage)
38
+ return;
39
+ // @ts-ignore
40
+ const responseTime = Math.floor((new Date() - new Date(lastNotReadMessage.date)) / 1000);
41
+ console.log('responseTime', responseTime, firstNotReadMessage.id);
42
+ yield (0, index_1.query)('UPDATE [CHAT MESSAGE] SET [TIEMPO RESPUESTA] = ? WHERE [ID] = ?', [responseTime, firstNotReadMessage.id]);
43
+ });
44
+ exports.saveResponseTime = saveResponseTime;
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../../src/chat/api/conversation.ts"],"names":[],"mappings":"AAUA,QAAA,MAAM,iBAAiB,0BAA2B,GAAG,SAiBpD,CAAC;AA4QF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../../src/chat/api/conversation.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,iBAAiB,0BAA2B,GAAG,SAiBpD,CAAC;AA6OF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ declare const saveResponseTime: ({ isClient, idCliente }: {
2
+ isClient: any;
3
+ idCliente: any;
4
+ }) => Promise<void>;
5
+ export { saveResponseTime };
6
+ //# sourceMappingURL=saveResponseTime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saveResponseTime.d.ts","sourceRoot":"","sources":["../../../../src/chat/saveResponseTime.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,gBAAgB;;;mBAmCrB,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runnerpro/backend",
3
- "version": "1.8.16",
3
+ "version": "1.8.18",
4
4
  "description": "A collection of common backend functions",
5
5
  "exports": {
6
6
  ".": "./lib/cjs/index.js"