done chat
This commit is contained in:
		
							
								
								
									
										20
									
								
								src/controllers/api.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								src/controllers/api.js
									
									
									
									
									
										Normal 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();
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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
									
								
							
							
						
						
									
										15
									
								
								src/services/api.js
									
									
									
									
									
										Normal 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();
 | 
			
		||||
		Reference in New Issue
	
	Block a user