mirror of
https://github.com/JonnyBro/JaBa.git
synced 2025-02-01 07:04:11 +05:00
feat: added data from database
This commit is contained in:
parent
c2d1c85696
commit
823aea886f
1 changed files with 60 additions and 0 deletions
|
@ -7,6 +7,9 @@ import logger from "../helpers/logger.js";
|
||||||
import ConfigService from "../services/config/index.js";
|
import ConfigService from "../services/config/index.js";
|
||||||
import InternationalizationService from "../services/languages/index.js";
|
import InternationalizationService from "../services/languages/index.js";
|
||||||
import { SUPER_CONTEXT } from "../constants/index.js";
|
import { SUPER_CONTEXT } from "../constants/index.js";
|
||||||
|
import GuildModel from "../models/GuildModel.js";
|
||||||
|
import UserModel from "../models/UserModel.js";
|
||||||
|
import MemberModel from "../models/MemberModel.js";
|
||||||
|
|
||||||
export class ExtendedClient extends Client {
|
export class ExtendedClient extends Client {
|
||||||
/**
|
/**
|
||||||
|
@ -21,6 +24,7 @@ export class ExtendedClient extends Client {
|
||||||
this.configService = new ConfigService();
|
this.configService = new ConfigService();
|
||||||
this.adapter = new MongooseAdapter(this.configService.get("mongoDB"));
|
this.adapter = new MongooseAdapter(this.configService.get("mongoDB"));
|
||||||
this.i18n = new InternationalizationService(this);
|
this.i18n = new InternationalizationService(this);
|
||||||
|
this.cacheReminds = new Map();
|
||||||
new Player(this);
|
new Player(this);
|
||||||
|
|
||||||
SUPER_CONTEXT.enterWith(this);
|
SUPER_CONTEXT.enterWith(this);
|
||||||
|
@ -37,4 +41,60 @@ export class ExtendedClient extends Client {
|
||||||
logger.error(error);
|
logger.error(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves a guild data object from the database.
|
||||||
|
* @param {string} guildId - The ID of the guild to find or create.
|
||||||
|
* @returns {Promise<GuildModel>} The guild data object, either retrieved from the database or newly created.
|
||||||
|
*/
|
||||||
|
async getGuildData(guildId) {
|
||||||
|
let guildData = await this.adapter.findOne(GuildModel, { id: guildId });
|
||||||
|
|
||||||
|
if (!guildData) {
|
||||||
|
guildData = new GuildModel({ id: guildId });
|
||||||
|
await guildData.save();
|
||||||
|
}
|
||||||
|
|
||||||
|
return guildData;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a User data from the database.
|
||||||
|
* @param {string} userID - The ID of the user to find or create.
|
||||||
|
* @returns {Promise<UserModel>} The user data object, either retrieved from the database or newly created.
|
||||||
|
*/
|
||||||
|
async getUserData(userID) {
|
||||||
|
let userData = await this.adapter.findOne(UserModel, { id: userID });
|
||||||
|
|
||||||
|
if (!userData) {
|
||||||
|
userData = new UserModel({ id: userID });
|
||||||
|
await userData.save();
|
||||||
|
}
|
||||||
|
|
||||||
|
return userData;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a Member data from the database.
|
||||||
|
* @param {string} memberId - The ID of the member to find or create.
|
||||||
|
* @param {string} guildId - The ID of the guild the member belongs to.
|
||||||
|
* @returns {Promise<MemberModel>} The member data object, either retrieved from the database or newly created.
|
||||||
|
*/
|
||||||
|
async getMemberData(memberId, guildId) {
|
||||||
|
let memberData = await this.adapter.findOne(MemberModel, { guildID: guildId, id: memberId });
|
||||||
|
|
||||||
|
if (!memberData) {
|
||||||
|
memberData = new MemberModel({ id: memberId, guildID: guildId });
|
||||||
|
await memberData.save();
|
||||||
|
|
||||||
|
const guildData = await this.getGuildData(guildId);
|
||||||
|
|
||||||
|
if (guildData) {
|
||||||
|
guildData.members.push(memberData._id);
|
||||||
|
await guildData.save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return memberData;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue