Added reporting feature

This commit is contained in:
2021-03-24 03:20:29 +11:00
parent 2dad56d17e
commit 0b5cc49e6e
4 changed files with 41 additions and 3 deletions
+15 -2
View File
@@ -1,13 +1,13 @@
const jwt = require('jsonwebtoken');
const { Op } = require('sequelize');
const { chatlog, mute } = require('../database/models');
const { chatlog, mute, reports } = require('../database/models');
const chat = io => {
io.on('connection', socket => {
//middleware
socket.use((request, next) => {
//verify request format
if (!['open chat', 'message'].includes(request[0])) {
if (!['open chat', 'message', 'report'].includes(request[0])) {
return next(`Invalid request to the chat server ${request[0]}`);
}
return next();
@@ -137,6 +137,19 @@ const chat = io => {
emphasis: true
});
});
socket.on('report', info => {
//handle reports of malicious content
if (!info.id) {
return;
}
//report
reports.create({
reporter: socket.user.username,
chatlogId: info.id
});
});
});
};
+2 -1
View File
@@ -1,4 +1,5 @@
module.exports = {
chatlog: require('./chatlog'),
mute: require('./mute')
mute: require('./mute'),
reports: require('./reports')
};
+23
View File
@@ -0,0 +1,23 @@
const Sequelize = require('sequelize');
const sequelize = require('..');
const chatlog = require('./chatlog');
const reports = sequelize.define('reports', {
id: {
type: Sequelize.INTEGER(11),
allowNull: false,
autoIncrement: true,
primaryKey: true,
unique: true
},
reporter: {
type: 'varchar(320)',
allowNull: false
},
});
chatlog.hasMany(reports, { foreignKey: 'chatlogId', foreignKeyConstraint: true });
module.exports = reports;