add: changed homepage to display most active channels

This commit is contained in:
Lukian 2025-04-04 21:31:29 +02:00
parent 411aa149ac
commit dfb6639ecf
10 changed files with 179 additions and 14 deletions

View file

@ -88,6 +88,46 @@ function getChannels(connection) {
});
}
function getActiveChannels(connection) {
return new Promise((resolve, reject) => {
connection.query(
`SELECT channels.id, name, description, owner_id, username AS owner_username, count(*) AS message_count
FROM messages
JOIN channels ON messages.channel_id = channels.id
JOIN users ON messages.user_id = users.id
WHERE date > (SELECT max(date) FROM messages) - 7 * 24 * 60 * 60
GROUP BY channel_id
ORDER BY count(*) DESC
LIMIT 5;`,
(error, result) => {
if (error) {
reject(new Error(error));
}
resolve(result);
}
);
});
}
function searchChannels(connection, search) {
return new Promise((resolve, reject) => {
connection.query(
`SELECT channels.id, name, description, owner_id, username AS owner_username
FROM channels
JOIN users ON channels.owner_id = users.id
WHERE name LIKE ?
LIMIT 5`,
[`%${search}%`], // Use parameterized query
(error, result) => {
if (error) {
reject(new Error(error));
}
resolve(result);
}
);
});
}
function getChannel(connection, name) {
return new Promise((resolve, reject) => {
connection.query(
@ -215,6 +255,8 @@ module.exports = {
addUser,
getUserLastMessages,
getChannels,
getActiveChannels,
searchChannels,
getChannel,
addChannel,
getMessages,