switch from json to mongodb for ack
parent
392fe6ac15
commit
5a2ce235b7
|
@ -1,5 +1,5 @@
|
|||
import { Route, Server } from '../../../class';
|
||||
import acknowledgements from '../../../configs/acknowledgements.json';
|
||||
// import acknowledgements from '../../../configs/acknowledgements.json';
|
||||
|
||||
export default class Internal extends Route {
|
||||
constructor(server: Server) {
|
||||
|
@ -22,6 +22,7 @@ export default class Internal extends Route {
|
|||
if (member.roles.includes('446104438969466890') || member.roles.includes('701481967149121627')) status = true;
|
||||
return res.status(200).json({ staff: status, username: member.user.username, discriminator: member.user.discriminator, nick: member.nick, avatarURL: member.user.avatarURL, pager: pagerNumber?.num });
|
||||
}
|
||||
const acknowledgements = await this.server.client.db.Staff.find().lean().exec();
|
||||
return res.status(200).json(acknowledgements);
|
||||
} catch (err) {
|
||||
return this.handleError(err, res);
|
||||
|
|
|
@ -3,7 +3,7 @@ import pluris from 'pluris';
|
|||
import mongoose from 'mongoose';
|
||||
import { promises as fs } from 'fs';
|
||||
import { Collection, Command, LocalStorage, Util, ServerManagement, Event } from '.';
|
||||
import { File, FileInterface, Member, MemberInterface, Moderation, ModerationInterface, Note, NoteInterface, PagerNumber, PagerNumberInterface, Rank, RankInterface, Redirect, RedirectInterface, Stat, StatInterface } from '../models';
|
||||
import { File, FileInterface, Member, MemberInterface, Moderation, ModerationInterface, Note, NoteInterface, PagerNumber, PagerNumberInterface, Rank, RankInterface, Redirect, RedirectInterface, Staff, StaffInterface, Stat, StatInterface } from '../models';
|
||||
import { Config } from '../../types'; // eslint-disable-line
|
||||
|
||||
pluris(eris);
|
||||
|
@ -21,14 +21,14 @@ export default class Client extends eris.Client {
|
|||
|
||||
public serverManagement: ServerManagement;
|
||||
|
||||
public db: { File: mongoose.Model<FileInterface>, Member: mongoose.Model<MemberInterface>, Moderation: mongoose.Model<ModerationInterface>, Note: mongoose.Model<NoteInterface>, PagerNumber: mongoose.Model<PagerNumberInterface>, Rank: mongoose.Model<RankInterface>, Redirect: mongoose.Model<RedirectInterface>, Stat: mongoose.Model<StatInterface>, local: { muted: LocalStorage } };
|
||||
public db: { File: mongoose.Model<FileInterface>, Member: mongoose.Model<MemberInterface>, Moderation: mongoose.Model<ModerationInterface>, Note: mongoose.Model<NoteInterface>, PagerNumber: mongoose.Model<PagerNumberInterface>, Rank: mongoose.Model<RankInterface>, Redirect: mongoose.Model<RedirectInterface>, Staff: mongoose.Model<StaffInterface>, Stat: mongoose.Model<StatInterface>, local: { muted: LocalStorage } };
|
||||
|
||||
constructor(token: string, options?: eris.ClientOptions) {
|
||||
super(token, options);
|
||||
this.commands = new Collection<Command>();
|
||||
this.events = new Collection<Event>();
|
||||
this.intervals = new Collection<NodeJS.Timeout>();
|
||||
this.db = { File, Member, Moderation, Note, PagerNumber, Rank, Redirect, Stat, local: { muted: new LocalStorage('muted') } };
|
||||
this.db = { File, Member, Moderation, Note, PagerNumber, Rank, Redirect, Staff, Stat, local: { muted: new LocalStorage('muted') } };
|
||||
}
|
||||
|
||||
public async loadDatabase() {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
import moment from 'moment';
|
||||
import { Message, Member } from 'eris';
|
||||
import { Client, Command, RichEmbed } from '../class';
|
||||
import acknowledgements from '../configs/acknowledgements.json';
|
||||
// import acknowledgements from '../configs/acknowledgements.json';
|
||||
import { whois as emotes } from '../configs/emotes.json';
|
||||
|
||||
export default class Whois extends Command {
|
||||
|
@ -29,7 +29,8 @@ export default class Whois extends Command {
|
|||
}
|
||||
const embed = new RichEmbed();
|
||||
embed.setThumbnail(member.avatarURL);
|
||||
const ackResolve = this.resolveStaffInformation(member.id);
|
||||
// const ackResolve = this.resolveStaffInformation(member.id);
|
||||
const ackResolve = await this.client.db.Staff.findOne({ userID: member.id }).lean().exec();
|
||||
let title = `${member.user.username}#${member.user.discriminator}`;
|
||||
if (ackResolve?.pn?.length > 0) title += `, ${ackResolve.pn.join(', ')}`;
|
||||
embed.setAuthor(title, member.user.avatarURL);
|
||||
|
@ -189,7 +190,7 @@ export default class Whois extends Command {
|
|||
}
|
||||
|
||||
public resolveStaffInformation(id: string) {
|
||||
return acknowledgements.find((m) => m.id === id);
|
||||
return null; // acknowledgements.find((m) => m.id === id);
|
||||
}
|
||||
|
||||
public capsFirstLetter(string?: string): string | void {
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
import { Document, Schema, model } from 'mongoose';
|
||||
|
||||
export interface StaffInterface extends Document {
|
||||
name: string,
|
||||
userID: string,
|
||||
title: string,
|
||||
dept: string,
|
||||
pn: string[],
|
||||
emailAddress: string,
|
||||
gitlab: string,
|
||||
github: string,
|
||||
bio: string,
|
||||
acknowledgements: string[],
|
||||
}
|
||||
|
||||
const Staff: Schema = new Schema({
|
||||
name: String,
|
||||
userID: String,
|
||||
title: String,
|
||||
dept: String,
|
||||
pn: Array,
|
||||
emailAddress: String,
|
||||
gitlab: String,
|
||||
github: String,
|
||||
bio: String,
|
||||
acknowledgements: Array,
|
||||
});
|
||||
|
||||
export default model<StaffInterface>('Staff', Staff);
|
|
@ -5,4 +5,5 @@ export { default as Note, NoteInterface } from './Note';
|
|||
export { default as PagerNumber, PagerNumberInterface, PagerNumberRaw } from './PagerNumber';
|
||||
export { default as Rank, RankInterface } from './Rank';
|
||||
export { default as Redirect, RedirectInterface, RedirectRaw } from './Redirect';
|
||||
export { default as Staff, StaffInterface } from './Staff';
|
||||
export { default as Stat, StatInterface } from './Stat';
|
||||
|
|
Loading…
Reference in New Issue