@runnerpro/backend 1.1.4 → 1.1.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/lib/cjs/chat/api/conversation.js +7 -7
- package/lib/cjs/chat/api/listConversations.js +12 -12
- package/lib/cjs/chat/utils/getCountNotificaciones.js +12 -12
- package/lib/cjs/sendMail/index.js +5 -2
- package/lib/cjs/sendNotification/index.js +1 -1
- package/lib/cjs/types/sendMail/index.d.ts.map +1 -1
- package/package.json +2 -4
|
@@ -56,13 +56,13 @@ exports.conversationRoute = conversationRoute;
|
|
|
56
56
|
const getConversation = (req, res, { query, isClient }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
57
57
|
const idCliente = isClient ? req.session.userid : req.query.id;
|
|
58
58
|
const [header] = yield query('SELECT [NAME], [PREFERRED LANGUAGE] FROM [CLIENTE] WHERE [ID] = ?', [idCliente]);
|
|
59
|
-
let messages = yield query(`SELECT [CHAT MESSAGE].*,
|
|
60
|
-
[WORKOUT].[DATE] AS [WORKOUT DATE], [WORKOUT].[TYPE] AS [WORKOUT TYPE], [WORKOUT].[TITLE] AS [WORKOUT TITLE],
|
|
61
|
-
[FEELINGS], [FEELINGS DESCRIPTION]
|
|
62
|
-
FROM [CHAT MESSAGE]
|
|
63
|
-
LEFT JOIN [WORKOUT] ON [WORKOUT].[ID] = [CHAT MESSAGE].[ID WORKOUT]
|
|
64
|
-
WHERE [CHAT MESSAGE].[ID CLIENTE] = ? AND (${isClient} = FALSE OR [CHAT MESSAGE].[SHOW CLIENT] = TRUE)
|
|
65
|
-
ORDER BY [CHAT MESSAGE].[DATE] DESC
|
|
59
|
+
let messages = yield query(`SELECT [CHAT MESSAGE].*,
|
|
60
|
+
[WORKOUT].[DATE] AS [WORKOUT DATE], [WORKOUT].[TYPE] AS [WORKOUT TYPE], [WORKOUT].[TITLE] AS [WORKOUT TITLE],
|
|
61
|
+
[FEELINGS], [FEELINGS DESCRIPTION]
|
|
62
|
+
FROM [CHAT MESSAGE]
|
|
63
|
+
LEFT JOIN [WORKOUT] ON [WORKOUT].[ID] = [CHAT MESSAGE].[ID WORKOUT]
|
|
64
|
+
WHERE [CHAT MESSAGE].[ID CLIENTE] = ? AND (${isClient} = FALSE OR [CHAT MESSAGE].[SHOW CLIENT] = TRUE)
|
|
65
|
+
ORDER BY [CHAT MESSAGE].[DATE] DESC
|
|
66
66
|
LIMIT 100`, [idCliente]);
|
|
67
67
|
messages = messages.reverse();
|
|
68
68
|
// Si el cliente no habla español, se muestran los mensajes en el idioma del cliente. El entrenador siempre ve los mensajes en español que están en la columna [TEXT]
|
|
@@ -32,18 +32,18 @@ const getList = (req, res, { query, isClient }) => __awaiter(void 0, void 0, voi
|
|
|
32
32
|
else {
|
|
33
33
|
const { page } = req.query;
|
|
34
34
|
const limit = 20;
|
|
35
|
-
const list = yield query(`
|
|
36
|
-
SELECT [C].[ID], [C].[NAME],
|
|
37
|
-
[CM].[DATE], [CM].[TEXT],
|
|
38
|
-
CASE WHEN [CM].[READ] = FALSE AND [CM].[ID SENDER] = [CM].[ID CLIENTE] THEN 0
|
|
39
|
-
ELSE 1 END AS [READ]
|
|
40
|
-
FROM [CLIENTE] AS [C]
|
|
41
|
-
LEFT JOIN (
|
|
42
|
-
SELECT *, ROW_NUMBER() OVER (PARTITION BY [ID CLIENTE] ORDER BY [DATE] DESC) AS [ROW]
|
|
43
|
-
FROM [CHAT MESSAGE]
|
|
44
|
-
) AS [CM] ON [CM].[ID CLIENTE] = [C].[ID] AND [CM].[ROW] = 1
|
|
45
|
-
ORDER BY CASE WHEN [CM].[DATE] IS NULL THEN 1 ELSE 0 END, [CM].[DATE] DESC
|
|
46
|
-
LIMIT ? OFFSET ?
|
|
35
|
+
const list = yield query(`
|
|
36
|
+
SELECT [C].[ID], [C].[NAME],
|
|
37
|
+
[CM].[DATE], [CM].[TEXT],
|
|
38
|
+
CASE WHEN [CM].[READ] = FALSE AND [CM].[ID SENDER] = [CM].[ID CLIENTE] THEN 0
|
|
39
|
+
ELSE 1 END AS [READ]
|
|
40
|
+
FROM [CLIENTE] AS [C]
|
|
41
|
+
LEFT JOIN (
|
|
42
|
+
SELECT *, ROW_NUMBER() OVER (PARTITION BY [ID CLIENTE] ORDER BY [DATE] DESC) AS [ROW]
|
|
43
|
+
FROM [CHAT MESSAGE]
|
|
44
|
+
) AS [CM] ON [CM].[ID CLIENTE] = [C].[ID] AND [CM].[ROW] = 1
|
|
45
|
+
ORDER BY CASE WHEN [CM].[DATE] IS NULL THEN 1 ELSE 0 END, [CM].[DATE] DESC
|
|
46
|
+
LIMIT ? OFFSET ?
|
|
47
47
|
`, [limit, limit * page]);
|
|
48
48
|
res.send(list);
|
|
49
49
|
}
|
|
@@ -12,22 +12,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.getCountNotificaciones = void 0;
|
|
13
13
|
const getCountNotificaciones = ({ query, isClient, idClient }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
14
14
|
if (isClient) {
|
|
15
|
-
const [{ chat }] = yield query(`
|
|
16
|
-
SELECT COUNT([ID]) AS [CHAT]
|
|
17
|
-
FROM [CHAT MESSAGE]
|
|
18
|
-
WHERE [ID CLIENTE] = ? AND [READ] = FALSE AND [ID SENDER] != [ID CLIENTE]
|
|
15
|
+
const [{ chat }] = yield query(`
|
|
16
|
+
SELECT COUNT([ID]) AS [CHAT]
|
|
17
|
+
FROM [CHAT MESSAGE]
|
|
18
|
+
WHERE [ID CLIENTE] = ? AND [READ] = FALSE AND [ID SENDER] != [ID CLIENTE]
|
|
19
19
|
`, [idClient]);
|
|
20
20
|
return chat;
|
|
21
21
|
}
|
|
22
22
|
else {
|
|
23
|
-
const [{ chat }] = yield query(`
|
|
24
|
-
SELECT COUNT([C].[ID]) AS [CHAT]
|
|
25
|
-
FROM [CLIENTE] AS [C]
|
|
26
|
-
LEFT JOIN (
|
|
27
|
-
SELECT *, ROW_NUMBER() OVER (PARTITION BY [ID CLIENTE] ORDER BY [DATE] DESC) AS [ROW]
|
|
28
|
-
FROM [CHAT MESSAGE]
|
|
29
|
-
) AS [CM] ON [CM].[ID CLIENTE] = [C].[ID] AND [CM].[ROW] = 1
|
|
30
|
-
WHERE [CM].[READ] = FALSE AND [CM].[ID SENDER] = [CM].[ID CLIENTE]
|
|
23
|
+
const [{ chat }] = yield query(`
|
|
24
|
+
SELECT COUNT([C].[ID]) AS [CHAT]
|
|
25
|
+
FROM [CLIENTE] AS [C]
|
|
26
|
+
LEFT JOIN (
|
|
27
|
+
SELECT *, ROW_NUMBER() OVER (PARTITION BY [ID CLIENTE] ORDER BY [DATE] DESC) AS [ROW]
|
|
28
|
+
FROM [CHAT MESSAGE]
|
|
29
|
+
) AS [CM] ON [CM].[ID CLIENTE] = [C].[ID] AND [CM].[ROW] = 1
|
|
30
|
+
WHERE [CM].[READ] = FALSE AND [CM].[ID SENDER] = [CM].[ID CLIENTE]
|
|
31
31
|
`);
|
|
32
32
|
return chat;
|
|
33
33
|
}
|
|
@@ -22,10 +22,13 @@ const transporter = nodemailer_1.default.createTransport({
|
|
|
22
22
|
},
|
|
23
23
|
});
|
|
24
24
|
const sendMail = ({ subject, title, body, to, link, attachments, bcc }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
25
|
+
const toMapped = process.env.NODE_ENV === 'PROD' ? to.map((correo) => correo).join(',') : process.env.GMAIL_EMAIL_USER;
|
|
26
|
+
if ((toMapped === null || toMapped === void 0 ? void 0 : toMapped.length) === 0)
|
|
27
|
+
return;
|
|
25
28
|
const bodyHTML = getBodyHTML(title, body, link);
|
|
26
29
|
return transporter.sendMail({
|
|
27
30
|
from: process.env.GMAIL_EMAIL_USER,
|
|
28
|
-
to:
|
|
31
|
+
to: toMapped,
|
|
29
32
|
bcc: process.env.NODE_ENV === 'PROD' && bcc ? bcc.map((correo) => correo).join(',') : '',
|
|
30
33
|
subject,
|
|
31
34
|
text: body + (link ? link.url : ''),
|
|
@@ -95,7 +98,7 @@ function getBodyHTML(title, body, link) {
|
|
|
95
98
|
<table role="presentation" style="width:100%;border-collapse:collapse;border:0;border-spacing:0;background:#f0f0f0;">
|
|
96
99
|
<tr>
|
|
97
100
|
<td align="center" style="padding:0;">
|
|
98
|
-
<a href="${process.env.FRONTEND_URL}${link.url}" class="button" style="color:white">${link.text}</a>
|
|
101
|
+
<a href="${link.external ? link.url : `${process.env.FRONTEND_URL}${link.url}`}" class="button" style="color:white">${link.text}</a>
|
|
99
102
|
</td>
|
|
100
103
|
</tr>
|
|
101
104
|
</table>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/sendMail/index.ts"],"names":[],"mappings":"AAUA,UAAU,IAAI;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,IAAI,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,QAAA,MAAM,QAAQ,yDAAgE,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/sendMail/index.ts"],"names":[],"mappings":"AAUA,UAAU,IAAI;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,IAAI,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,QAAA,MAAM,QAAQ,yDAAgE,IAAI,qEAoBjF,CAAC;AA2EF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runnerpro/backend",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.6",
|
|
4
4
|
"description": "A collection of common backend functions",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./lib/cjs/index.js"
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
"scripts": {
|
|
14
14
|
"clean": "del-cli ./lib",
|
|
15
15
|
"build": "npm run clean && tsc -p ./configs/tsconfig.cjs.json",
|
|
16
|
-
"publish": "npm run build && npm publish",
|
|
17
16
|
"deploy": "npm run build && npm publish",
|
|
18
17
|
"semantic-release": "semantic-release",
|
|
19
18
|
"lint": "eslint --ext .ts --ignore-path .gitignore .",
|
|
@@ -54,7 +53,7 @@
|
|
|
54
53
|
},
|
|
55
54
|
"peerDependencies": {
|
|
56
55
|
"@parse/node-apn": "6.0.1",
|
|
57
|
-
"@runnerpro/common": "^1.
|
|
56
|
+
"@runnerpro/common": "^1.4.1",
|
|
58
57
|
"axios": "^1.6.7",
|
|
59
58
|
"jimp": "^0.22.10",
|
|
60
59
|
"nodemailer": "6.9.9",
|
|
@@ -69,4 +68,3 @@
|
|
|
69
68
|
"socket.io": "^4.7.2"
|
|
70
69
|
}
|
|
71
70
|
}
|
|
72
|
-
|