Feature/vba 77 (#178)
* Add say command (#174) Co-authored-by: Ethan Lane <ethan@vylpes.com> Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/174 * Add repo and funding link to about message (#176) Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/176 * Add other subreddits to bunny command (#177) Reviewed-on: https://gitea.vylpes.xyz/RabbitLabs/vylbot-app/pulls/177 * Add database table * Save moderation actions to database * Add audit command to see a user's audits * Add audit view subcommand * Add audit clear subcommand * Create add audit subcommand * Fix bot crashing when viewing an audit with no reason * Fix changes requested
This commit is contained in:
parent
2da5e1aa75
commit
cd666d24fd
12 changed files with 293 additions and 1 deletions
56
src/entity/Audit.ts
Normal file
56
src/entity/Audit.ts
Normal file
|
@ -0,0 +1,56 @@
|
|||
import { Column, Entity, getConnection, ManyToOne } from "typeorm";
|
||||
import { AuditType } from "../constants/AuditType";
|
||||
import BaseEntity from "../contracts/BaseEntity";
|
||||
import StringTools from "../helpers/StringTools";
|
||||
|
||||
@Entity()
|
||||
export default class Audit extends BaseEntity {
|
||||
constructor(userId: string, auditType: AuditType, reason: string, moderatorId: string, serverId: string) {
|
||||
super();
|
||||
|
||||
this.AuditId = StringTools.RandomString(5).toUpperCase();
|
||||
this.UserId = userId;
|
||||
this.AuditType = auditType;
|
||||
this.Reason = reason;
|
||||
this.ModeratorId = moderatorId;
|
||||
this.ServerId = serverId;
|
||||
}
|
||||
|
||||
@Column()
|
||||
AuditId: string;
|
||||
|
||||
@Column()
|
||||
UserId: string;
|
||||
|
||||
@Column()
|
||||
AuditType: AuditType;
|
||||
|
||||
@Column()
|
||||
Reason: string;
|
||||
|
||||
@Column()
|
||||
ModeratorId: string;
|
||||
|
||||
@Column()
|
||||
ServerId: string;
|
||||
|
||||
public static async FetchAuditsByUserId(userId: string, serverId: string): Promise<Audit[] | undefined> {
|
||||
const connection = getConnection();
|
||||
|
||||
const repository = connection.getRepository(Audit);
|
||||
|
||||
const all = await repository.find({ UserId: userId, ServerId: serverId });
|
||||
|
||||
return all;
|
||||
}
|
||||
|
||||
public static async FetchAuditByAuditId(auditId: string, serverId: string): Promise<Audit | undefined> {
|
||||
const connection = getConnection();
|
||||
|
||||
const repository = connection.getRepository(Audit);
|
||||
|
||||
const single = await repository.findOne({ AuditId: auditId, ServerId: serverId });
|
||||
|
||||
return single;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue