fix: improved searchs

This commit is contained in:
Lukian 2025-05-12 11:43:23 +02:00
parent fb90f1ef4f
commit b2d8acaa5d
9 changed files with 39 additions and 50 deletions

View file

@ -15,7 +15,8 @@ const {
addAttachment, addAttachment,
getMessageAttachments, getMessageAttachments,
getUnusedAttachments, getUnusedAttachments,
deleteUnusedAttachments deleteUnusedAttachments,
searchChannels
} = require('../libs/mysql'); } = require('../libs/mysql');
const rateLimit = require("express-rate-limit"); const rateLimit = require("express-rate-limit");
const slowDown = require("express-slow-down"); const slowDown = require("express-slow-down");
@ -43,7 +44,13 @@ const speedLimiter = slowDown({
const router = express.Router(); const router = express.Router();
router.get('/', async (req, res) => { router.get('/', async (req, res) => {
const { search } = req.query;
const connection = await getConnection(); const connection = await getConnection();
if (search) {
const channels = await searchChannels(connection, search);
connection.end();
return res.send(channels);
}
const channels = await getChannels(connection); const channels = await getChannels(connection);
connection.end(); connection.end();
res.send(channels); res.send(channels);

View file

@ -1,5 +1,5 @@
const express = require('express'); const express = require('express');
const { getConnection, getEmojis, addEmoji, getEmojiByName, deleteEmoji } = require('../libs/mysql'); const { getConnection, getEmojis, addEmoji, getEmojiByName, deleteEmoji, searchEmojis } = require('../libs/mysql');
const { checkAuth } = require("../libs/middlewares") const { checkAuth } = require("../libs/middlewares")
const multer = require('multer'); const multer = require('multer');
const rateLimit = require("express-rate-limit"); const rateLimit = require("express-rate-limit");
@ -27,7 +27,13 @@ upload.limits = {
}; };
router.get('/', async (req, res) => { router.get('/', async (req, res) => {
const { search } = req.query;
const connection = await getConnection(); const connection = await getConnection();
if (search) {
const emojis = await searchEmojis(connection, search);
connection.end();
return res.send(emojis);
}
const emojis = await getEmojis(connection); const emojis = await getEmojis(connection);
connection.end(); connection.end();
res.send(emojis); res.send(emojis);

View file

@ -1,14 +0,0 @@
const express = require('express');
const { getConnection, searchChannels } = require('../libs/mysql');
const router = express.Router();
router.get('/', async (req, res) => {
const { search } = req.query;
const connection = await getConnection();
const channels = await searchChannels(connection, search);
connection.end();
res.send(channels);
});
module.exports = router;

View file

@ -1,14 +0,0 @@
const express = require('express');
const { getConnection, searchEmojis } = require('../libs/mysql');
const router = express.Router();
router.get('/', async (req, res) => {
const { search } = req.query;
const connection = await getConnection();
const emojis = await searchEmojis(connection, search);
connection.end();
res.send(emojis);
});
module.exports = router;

View file

@ -1,14 +0,0 @@
const express = require('express');
const { getConnection, searchUser } = require('../libs/mysql');
const router = express.Router();
router.get('/', async (req, res) => {
const { search } = req.query;
const connection = await getConnection();
const users = await searchUser(connection, search);
connection.end();
res.send(users);
});
module.exports = router;

View file

@ -1,5 +1,17 @@
const express = require('express'); const express = require('express');
const { getConnection, getUsers, getUserByUsername, getUserLastMessages, getMentions, deleteUser, setUserPfp, getMessageAttachments, getUnusedAttachments, deleteUnusedAttachments } = require('../libs/mysql'); const {
getConnection,
getUsers,
getUserByUsername,
getUserLastMessages,
getMentions,
deleteUser,
setUserPfp,
getMessageAttachments,
getUnusedAttachments,
deleteUnusedAttachments,
searchUser
} = require('../libs/mysql');
const { checkAuth } = require("../libs/middlewares") const { checkAuth } = require("../libs/middlewares")
const path = require('path'); const path = require('path');
const fs = require('node:fs'); const fs = require('node:fs');
@ -7,7 +19,13 @@ const fs = require('node:fs');
const router = express.Router(); const router = express.Router();
router.get('/', async (req, res) => { router.get('/', async (req, res) => {
const { search } = req.query;
const connection = await getConnection(); const connection = await getConnection();
if (search) {
const users = await searchUser(connection, search);
connection.end();
return res.send(users);
}
const users = await getUsers(connection); const users = await getUsers(connection);
connection.end(); connection.end();
res.send(users); res.send(users);

View file

@ -84,7 +84,7 @@ export default function MessageComponent({ message, user, channel }: {
if (lastWord && lastWord.startsWith("@")) { if (lastWord && lastWord.startsWith("@")) {
const username = lastWord.slice(1); const username = lastWord.slice(1);
axios axios
.get(`/api/searchuser?search=${username}`) .get(`/api/users?search=${username}`)
.then((res) => { .then((res) => {
setSearchedUsers(res.data); setSearchedUsers(res.data);
}) })
@ -98,7 +98,7 @@ export default function MessageComponent({ message, user, channel }: {
if (lastWord && lastWord.startsWith(":")) { if (lastWord && lastWord.startsWith(":")) {
const emojiName = lastWord.slice(1); const emojiName = lastWord.slice(1);
axios axios
.get(`/api/searchemojis?search=${emojiName}`) .get(`/api/emojis?search=${emojiName}`)
.then((res) => { .then((res) => {
setSearchedEmojis(res.data); setSearchedEmojis(res.data);
}) })

View file

@ -126,7 +126,7 @@ export default function ChannelPage({socket}: {socket: WebSocket}) {
if (lastWord && lastWord.startsWith("@")) { if (lastWord && lastWord.startsWith("@")) {
const username = lastWord.slice(1); const username = lastWord.slice(1);
axios axios
.get(`/api/searchuser?search=${username}`) .get(`/api/users?search=${username}`)
.then((res) => { .then((res) => {
setSearchedUsers(res.data); setSearchedUsers(res.data);
}) })
@ -140,7 +140,7 @@ export default function ChannelPage({socket}: {socket: WebSocket}) {
if (lastWord && lastWord.startsWith(":")) { if (lastWord && lastWord.startsWith(":")) {
const emojiName = lastWord.slice(1); const emojiName = lastWord.slice(1);
axios axios
.get(`/api/searchemojis?search=${emojiName}`) .get(`/api/emojis?search=${emojiName}`)
.then((res) => { .then((res) => {
setSearchedEmojis(res.data); setSearchedEmojis(res.data);
}) })

View file

@ -135,7 +135,7 @@ export default function Home({socket}: {socket: WebSocket}) {
return return
} }
axios axios
.get(`/api/searchchannels?search=${search}`).then((res) => { .get(`/api/channels?search=${search}`).then((res) => {
setSearchedChannels(res.data) setSearchedChannels(res.data)
} }
).catch((err) => { ).catch((err) => {