Use a model class for mod actions
This commit is contained in:
parent
47f124c7d6
commit
e9fb76f76d
3 changed files with 39 additions and 9 deletions
|
@ -1,4 +1,5 @@
|
||||||
import knex from "../knex";
|
import knex from "../knex";
|
||||||
|
import ModAction from "../models/ModAction";
|
||||||
|
|
||||||
export class GuildModActions {
|
export class GuildModActions {
|
||||||
protected guildId: string;
|
protected guildId: string;
|
||||||
|
@ -7,34 +8,42 @@ export class GuildModActions {
|
||||||
this.guildId = guildId;
|
this.guildId = guildId;
|
||||||
}
|
}
|
||||||
|
|
||||||
find(id: number) {
|
async find(id: number): Promise<ModAction> {
|
||||||
return knex("mod_actions")
|
const result = await knex("mod_actions")
|
||||||
.where("guild_id", this.guildId)
|
.where("guild_id", this.guildId)
|
||||||
.where("id", id)
|
.where("id", id)
|
||||||
.first();
|
.first();
|
||||||
|
|
||||||
|
return result ? new ModAction(result) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
findByCaseNumber(caseNumber: number) {
|
async findByCaseNumber(caseNumber: number): Promise<ModAction> {
|
||||||
return knex("mod_actions")
|
const result = await knex("mod_actions")
|
||||||
.where("guild_id", this.guildId)
|
.where("guild_id", this.guildId)
|
||||||
.where("case_number", caseNumber)
|
.where("case_number", caseNumber)
|
||||||
.first();
|
.first();
|
||||||
|
|
||||||
|
return result ? new ModAction(result) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
getActionNotes(actionId: number) {
|
async getActionNotes(actionId: number): Promise<ModAction[]> {
|
||||||
return knex("mod_action_notes")
|
const results = await knex("mod_action_notes")
|
||||||
.where("mod_action_id", actionId)
|
.where("mod_action_id", actionId)
|
||||||
.select();
|
.select();
|
||||||
|
|
||||||
|
return results.map(r => new ModAction(r));
|
||||||
}
|
}
|
||||||
|
|
||||||
getByUserId(userId: string) {
|
async getByUserId(userId: string): Promise<ModAction[]> {
|
||||||
return knex("mod_actions")
|
const results = await knex("mod_actions")
|
||||||
.where("guild_id", this.guildId)
|
.where("guild_id", this.guildId)
|
||||||
.where("user_id", userId)
|
.where("user_id", userId)
|
||||||
.select();
|
.select();
|
||||||
|
|
||||||
|
return results.map(r => new ModAction(r));
|
||||||
}
|
}
|
||||||
|
|
||||||
create(data) {
|
async create(data): Promise<number> {
|
||||||
return knex
|
return knex
|
||||||
.insert({
|
.insert({
|
||||||
...data,
|
...data,
|
||||||
|
|
14
src/models/ModAction.ts
Normal file
14
src/models/ModAction.ts
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
import Model from "./Model";
|
||||||
|
|
||||||
|
export default class ModAction extends Model {
|
||||||
|
public id: number;
|
||||||
|
public guild_id: string;
|
||||||
|
public case_number: number;
|
||||||
|
public user_id: string;
|
||||||
|
public user_name: string;
|
||||||
|
public mod_id: string;
|
||||||
|
public mod_name: string;
|
||||||
|
public action_type: number;
|
||||||
|
public audit_log_id: string;
|
||||||
|
public created_at: string;
|
||||||
|
}
|
7
src/models/Model.ts
Normal file
7
src/models/Model.ts
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
export default class Model {
|
||||||
|
constructor(props) {
|
||||||
|
for (const key in props) {
|
||||||
|
this[key] = props[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue