@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({
|
|
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":"
|
|
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 @@
|
|
|
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"}
|