feat(chat): add chat room management functionality
- Created new chat schema in the database. - Implemented chat room model with necessary fields (title, ownerId, roomTypeId, etc.). - Added room type model and rights model for chat functionality. - Developed API endpoints for managing chat rooms, including create, edit, and delete operations. - Integrated chat room management into the admin interface with a dedicated view and dialog for room creation/editing. - Added internationalization support for chat room management UI. - Implemented autocomplete for victim selection in underground activities. - Enhanced the underground view with new activity types and political target selection.
This commit is contained in:
@@ -2,6 +2,7 @@ import AdminService from '../services/adminService.js';
|
||||
import Joi from 'joi';
|
||||
|
||||
class AdminController {
|
||||
// --- Chat Room Admin ---
|
||||
constructor() {
|
||||
this.getOpenInterests = this.getOpenInterests.bind(this);
|
||||
this.changeInterest = this.changeInterest.bind(this);
|
||||
@@ -9,6 +10,15 @@ class AdminController {
|
||||
this.changeTranslation = this.changeTranslation.bind(this);
|
||||
this.getOpenContacts = this.getOpenContacts.bind(this);
|
||||
this.answerContact = this.answerContact.bind(this);
|
||||
this.searchUser = this.searchUser.bind(this);
|
||||
this.getFalukantUserById = this.getFalukantUserById.bind(this);
|
||||
this.changeFalukantUser = this.changeFalukantUser.bind(this);
|
||||
this.getRoomTypes = this.getRoomTypes.bind(this);
|
||||
this.getGenderRestrictions = this.getGenderRestrictions.bind(this);
|
||||
this.getUserRights = this.getUserRights.bind(this);
|
||||
this.getRooms = this.getRooms.bind(this);
|
||||
this.createRoom = this.createRoom.bind(this);
|
||||
this.deleteRoom = this.deleteRoom.bind(this);
|
||||
}
|
||||
|
||||
async getOpenInterests(req, res) {
|
||||
@@ -126,6 +136,66 @@ class AdminController {
|
||||
res.status(403).json({ error: error.message });
|
||||
}
|
||||
}
|
||||
|
||||
async getRoomTypes(req, res) {
|
||||
try {
|
||||
const types = await AdminService.getRoomTypes();
|
||||
res.status(200).json(types);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
}
|
||||
|
||||
async getGenderRestrictions(req, res) {
|
||||
try {
|
||||
const restrictions = await AdminService.getGenderRestrictions();
|
||||
res.status(200).json(restrictions);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
}
|
||||
|
||||
async getUserRights(req, res) {
|
||||
try {
|
||||
const rights = await AdminService.getUserRights();
|
||||
res.status(200).json(rights);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
}
|
||||
|
||||
async getRooms(req, res) {
|
||||
try {
|
||||
const rooms = await AdminService.getRooms();
|
||||
res.status(200).json(rooms);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
}
|
||||
|
||||
async createRoom(req, res) {
|
||||
try {
|
||||
const room = await AdminService.createRoom(req.body);
|
||||
res.status(201).json(room);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
}
|
||||
|
||||
async deleteRoom(req, res) {
|
||||
try {
|
||||
await AdminService.deleteRoom(req.params.id);
|
||||
res.sendStatus(204);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default AdminController;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -219,6 +219,10 @@ const menuStructure = {
|
||||
visible: ["mainadmin", "forum"],
|
||||
path: "/admin/forum"
|
||||
},
|
||||
chatrooms: {
|
||||
visible: ["mainadmin", "chatrooms"],
|
||||
path: "/admin/chatrooms"
|
||||
},
|
||||
userrights: {
|
||||
visible: ["mainadmin", "rights"],
|
||||
path: "/admin/rights"
|
||||
|
||||
Reference in New Issue
Block a user