generated from lucien/api-template
add: added mentions
This commit is contained in:
parent
dfb6639ecf
commit
6c8f354bf6
9 changed files with 208 additions and 9 deletions
|
@ -1,5 +1,5 @@
|
|||
const express = require('express');
|
||||
const { getConnection, getChannels, getChannel, addChannel, getMessages, getMessage, addMessage, deleteMessage, getLastMessages } = require('../libs/mysql');
|
||||
const { getConnection, getChannels, getChannel, addChannel, getMessages, getMessage, addMessage, deleteMessage, addMention, getMentions, getUserByUsername, deleMentions } = require('../libs/mysql');
|
||||
const { checkAuth } = require('../libs/middlewares');
|
||||
|
||||
const router = express.Router();
|
||||
|
@ -32,6 +32,16 @@ router.get('/:name/messages', async (req, res) => {
|
|||
return res.send('No channel found');
|
||||
}
|
||||
const messages = await getMessages(connection, channel[0].id);
|
||||
|
||||
for (const message of messages) {
|
||||
if (message.content.includes('@')) {
|
||||
const mentions = await getMentions(connection, message.id);
|
||||
message.mentions = mentions;
|
||||
} else {
|
||||
message.mentions = [];
|
||||
}
|
||||
}
|
||||
|
||||
connection.end();
|
||||
res.send(messages);
|
||||
});
|
||||
|
@ -54,7 +64,19 @@ router.post('/:name/messages/send', async (req, res) => {
|
|||
return res.send('No channel found');
|
||||
}
|
||||
|
||||
await addMessage(connection, channel[0].id, user.id, message.replace("\"", "'"));
|
||||
const sent_message = await addMessage(connection, channel[0].id, user.id, message.replace("\"", "'"));
|
||||
const message_id = sent_message.insertId;
|
||||
|
||||
for (const word of message.split(' ')) {
|
||||
if (word.startsWith('@')) {
|
||||
const username = word.substring(1);
|
||||
const mentionedUser = await getUserByUsername(connection, username);
|
||||
if (mentionedUser[0]) {
|
||||
await addMention(connection, message_id, mentionedUser[0].id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
connection.end();
|
||||
res.send({ message: 'Message sent' });
|
||||
});
|
||||
|
@ -89,6 +111,7 @@ router.post('/:name/messages/delete', async (req, res) => {
|
|||
}
|
||||
|
||||
await deleteMessage(connection, message_id);
|
||||
await deleMentions(connection, message_id);
|
||||
connection.end();
|
||||
res.send({ message: 'Message deleted' });
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue