done chat

This commit is contained in:
2025-02-06 15:22:32 +03:00
parent 60e093f123
commit 37c170b265
9 changed files with 90 additions and 11 deletions

20
src/controllers/api.js Normal file
View File

@@ -0,0 +1,20 @@
import ApiService from "../services/api.js";
import dotenv from 'dotenv';
dotenv.config({path: ".env"});
class ApiController {
async getChatMessages(req, res) {
const {limit, offset} = req.params;
const messages = await ApiService.getChatMessages(limit, offset);
return res.status(200).send(messages);
}
async getWebsocketConnection(req, res) {
return res.status(200).send(process.env.WS_CONNECTION_STRING)
}
}
export default new ApiController();

View File

@@ -91,6 +91,8 @@ const startChat = async () => {
origin: "website"
})
}]
}).catch(e => {
console.log(e)
});
// we are not sending this message to all websockets right now, because plugin will emit
// a chat event once it'll catch this message from kafka, triggering a new message

View File

@@ -26,7 +26,6 @@ const validateInviteToken = async (req, res, next) => {
let tokenValid = false;
inviteTokens.forEach((token) => {
console.log(`${token} == ${inviteToken}`)
if (token == inviteToken) tokenValid = true;
});

View File

@@ -6,6 +6,7 @@ import auth from '../middlewares/auth.js';
import utils from '../utils.js';
import UserController from '../controllers/user.js';
import ApiController from '../controllers/api.js';
const ApiRouter = new Router();
@@ -16,5 +17,7 @@ ApiRouter.post('/changepassword', auth.authenticate, existance.userExist, UserCo
ApiRouter.post('/uploadSkin', existance.userExist, auth.authenticate, utils.upload.single('file'), requiredParameters.requireFile, UserController.uploadSkin);
ApiRouter.post('/uploadCape', existance.userExist, auth.authenticate, auth.canHaveCloak, utils.upload.single('file'), requiredParameters.requireFile, UserController.uploadCape);
ApiRouter.get('/getUsername', existance.userExist, auth.authenticate, UserController.getUsername);
ApiRouter.get('/getChatMessages/:offset/:limit', auth.authenticate, ApiController.getChatMessages);
ApiRouter.get('/webSocketConnection', auth.authenticate, ApiController.getWebsocketConnection)
export default ApiRouter;

15
src/services/api.js Normal file
View File

@@ -0,0 +1,15 @@
import db from '../db.js';
class ApiService {
async getChatMessages(limit, offset) {
try {
const messages = (await db.query("SELECT * FROM chat_messages ORDER BY ID DESC LIMIT $1 OFFSET $2", [limit, offset])).rows
return messages
} catch(e) {
console.log(e)
}
}
}
export default new ApiService();