@runnerpro/backend 1.10.17 → 1.10.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.
@@ -93,14 +93,7 @@ const getConversation = (req, res, { query, isClient }) => __awaiter(void 0, voi
93
93
  });
94
94
  const deleteConversationMessage = (req, res, { query, isClient }) => __awaiter(void 0, void 0, void 0, function* () {
95
95
  const { id } = req.params;
96
- const [message] = yield query('SELECT [ID] FROM [CHAT MESSAGE] WHERE [ID] = ? AND (? = FALSE OR [ID CLIENTE] = ?)', [
97
- id,
98
- isClient,
99
- req.session.userid,
100
- ]);
101
- if (!message)
102
- return res.status(404).send('Not found');
103
- if (!(yield canEditOrDeleteMessage({ idMessage: id, isClient })))
96
+ if (!(yield canEditOrDeleteMessage({ idMessage: id, isClient, userid: req.session.userid })))
104
97
  return res.send({ status: 'ok' });
105
98
  if (isClient)
106
99
  yield query('UPDATE [CHAT MESSAGE] SET [ELIMINADO] = TRUE WHERE [ID] = ?', [id]);
@@ -115,15 +108,9 @@ const deleteConversationMessage = (req, res, { query, isClient }) => __awaiter(v
115
108
  const editConversationMessage = (req, res, { query, isClient }) => __awaiter(void 0, void 0, void 0, function* () {
116
109
  const { id } = req.params;
117
110
  const { text } = req.body;
118
- const [message] = yield query('SELECT [ID], [ID CLIENTE] FROM [CHAT MESSAGE] WHERE [ID] = ? AND (? = FALSE OR [ID CLIENTE] = ?)', [
119
- id,
120
- isClient,
121
- req.session.userid,
122
- ]);
123
- if (!message)
124
- return res.status(404).send('Not found');
125
- if (!(yield canEditOrDeleteMessage({ idMessage: id, isClient })))
111
+ if (!(yield canEditOrDeleteMessage({ idMessage: id, isClient, userid: req.session.userid })))
126
112
  return res.send({ status: 'ok' });
113
+ const [message] = yield query('SELECT [ID CLIENTE] FROM [CHAT MESSAGE] WHERE [ID] = ?', [id]);
127
114
  // Devuelve el texto en el otro idioma si el cliente no habla español y el idioma del cliente
128
115
  const { textSpanish, textPreferredLanguage } = yield getPreferredLanguageForChat({
129
116
  text,
@@ -138,7 +125,25 @@ const editConversationMessage = (req, res, { query, isClient }) => __awaiter(voi
138
125
  ]);
139
126
  res.send({ status: 'ok' });
140
127
  });
141
- const canEditOrDeleteMessage = ({ idMessage, isClient }) => __awaiter(void 0, void 0, void 0, function* () {
128
+ const canEditOrDeleteMessage = ({ idMessage, isClient, userid }) => __awaiter(void 0, void 0, void 0, function* () {
129
+ const [message] = yield (0, index_1.query)('SELECT [ID], "ID CLIENTE", "ID SENDER" FROM [CHAT MESSAGE] WHERE [ID] = ? AND (? = FALSE OR [ID CLIENTE] = ?)', [
130
+ idMessage,
131
+ isClient,
132
+ userid,
133
+ ]);
134
+ if (!message)
135
+ return false;
136
+ // Si es servidor del cliente, pero el mensaje no es del cliente || Si es el servidor del entrenador, pero el mensaje es del cliente
137
+ const messageOwnerCliente = message.idCliente === message.idSender;
138
+ if ((isClient && !messageOwnerCliente) || (!isClient && messageOwnerCliente))
139
+ return false;
140
+ // Si es servidor del cliente, pero el último mensaje es del entrenador || Si es el servidor del entrenador, pero el último mensaje es del cliente
141
+ const [lastMessage] = yield (0, index_1.query)('SELECT "ID CLIENTE", "ID SENDER" FROM [CHAT MESSAGE] WHERE [ID CLIENTE] = ? ORDER BY [ID] DESC LIMIT 1', [
142
+ message.idCliente,
143
+ ]);
144
+ const lastMessageOfClient = lastMessage.idCliente === lastMessage.idSender;
145
+ if ((isClient && !lastMessageOfClient) || (!isClient && lastMessageOfClient))
146
+ return false;
142
147
  return true;
143
148
  });
144
149
  const getConversationImage = (req, res, { query, bucket, isClient }) => __awaiter(void 0, void 0, void 0, function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../../../../src/chat/api/conversation.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,iBAAiB,0BAA2B,GAAG,SAoBpD,CAAC;AAwSF,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,SAoBpD,CAAC;AA+SF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runnerpro/backend",
3
- "version": "1.10.17",
3
+ "version": "1.10.18",
4
4
  "description": "A collection of common backend functions",
5
5
  "exports": {
6
6
  ".": "./lib/cjs/index.js"