Feature/48 database (#114)
* Add database and default values * Add ability to save a setting to the database * Get commands and events to use database * Setup and config command * Update commands to check roles per server * Different rules per server Signed-off-by: Ethan Lane <ethan@vylpes.com> * Different prefix per server Signed-off-by: Ethan Lane <ethan@vylpes.com> * Add verification system Signed-off-by: Ethan Lane <ethan@vylpes.com> * Disabled commands per server * Add devmode for default prefix * Update embeds * Fix broken tests
This commit is contained in:
parent
c8edd1b4c5
commit
6a00c49ef3
53 changed files with 1816 additions and 373 deletions
19
src/entity/Server.ts
Normal file
19
src/entity/Server.ts
Normal file
|
@ -0,0 +1,19 @@
|
|||
import { Column, Entity, getConnection, OneToMany } from "typeorm";
|
||||
import BaseEntity from "../contracts/BaseEntity";
|
||||
import Setting from "./Setting";
|
||||
|
||||
@Entity()
|
||||
export default class Server extends BaseEntity {
|
||||
constructor(serverId: string) {
|
||||
super();
|
||||
|
||||
this.Id = serverId;
|
||||
}
|
||||
|
||||
@OneToMany(() => Setting, x => x.Server)
|
||||
Settings: Setting[];
|
||||
|
||||
public AddSettingToServer(setting: Setting) {
|
||||
this.Settings.push(setting);
|
||||
}
|
||||
}
|
37
src/entity/Setting.ts
Normal file
37
src/entity/Setting.ts
Normal file
|
@ -0,0 +1,37 @@
|
|||
import { Column, Entity, getConnection, ManyToOne } from "typeorm";
|
||||
import BaseEntity from "../contracts/BaseEntity";
|
||||
import Server from "./Server";
|
||||
|
||||
@Entity()
|
||||
export default class Setting extends BaseEntity {
|
||||
constructor(key: string, value: string) {
|
||||
super();
|
||||
|
||||
this.Key = key;
|
||||
this.Value = value;
|
||||
}
|
||||
|
||||
@Column()
|
||||
Key: string;
|
||||
|
||||
@Column()
|
||||
Value: string;
|
||||
|
||||
@ManyToOne(() => Server, x => x.Settings)
|
||||
Server: Server;
|
||||
|
||||
public UpdateBasicDetails(key: string, value: string) {
|
||||
this.Key = key;
|
||||
this.Value = value;
|
||||
}
|
||||
|
||||
public static async FetchOneByKey(key: string, relations?: string[]): Promise<Setting | undefined> {
|
||||
const connection = getConnection();
|
||||
|
||||
const repository = connection.getRepository(Setting);
|
||||
|
||||
const single = await repository.findOne({ Key: key }, { relations: relations || [] });
|
||||
|
||||
return single;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue