ghorsington 4 лет назад
Родитель
Сommit
e5b4dba130
1 измененных файлов с 19 добавлено и 17 удалено
  1. 19 17
      bot/src/util.ts

+ 19 - 17
bot/src/util.ts

@@ -1,5 +1,5 @@
 import { GuildMember } from "discord.js";
-import { getRepository } from "typeorm";
+import { getRepository, In } from "typeorm";
 import { KnownUser } from "@db/entity/KnownUser";
 
 const VALID_EXTENSIONS = new Set([
@@ -15,44 +15,46 @@ export function isDevelopment() {
 
 export function isValidImage(fileName: string) {
     let extPosition = fileName.lastIndexOf(".");
-    if(extPosition < 0)
+    if (extPosition < 0)
         return false;
     let ext = fileName.substring(extPosition + 1).toLowerCase();
     return VALID_EXTENSIONS.has(ext);
 }
 
-export async function isAuthorisedAsync(member : GuildMember) {
-    if(!member)
+export async function isAuthorisedAsync(member: GuildMember) {
+    if (!member)
         return false;
-        
+
     let repo = getRepository(KnownUser);
 
     let user = await repo.findOne({
         where: { userID: member.id },
-        select: [ "canModerate" ]
+        select: ["canModerate"]
     });
 
     if (user && user.canModerate)
         return true;
 
-    let role = await repo.createQueryBuilder()
-                .select(["userId"])
-                .where("userId in (:...ids)", {ids: member.roles.keyArray()})
-                .andWhere("canModerate = 1")
-                .getOne();
+    let role = await repo.findOne({
+        select: ["userID"],
+        where: {
+            userID: In(member.roles.keyArray()),
+            canModerate: true
+        }
+    });
     if (role)
         return true;
     return false;
 }
 
-export function compareNumbers<T>(prop : (o : T) => number) {
+export function compareNumbers<T>(prop: (o: T) => number) {
     return (a: T, b: T) => {
         let ap = prop(a);
         let bp = prop(b);
 
-        if(ap < bp)
+        if (ap < bp)
             return 1;
-        else if(ap > bp)
+        else if (ap > bp)
             return -1;
         return 0;
     };
@@ -63,13 +65,13 @@ export type Dict<TVal> = { [key: string]: TVal };
 export class NeighBuilder {
     private data: any[];
 
-    constructor() {}
+    constructor() { }
 
     append(...data: any[]) {
         this.data.concat(data);
     }
 
-    appendLine(...data: any[]){
+    appendLine(...data: any[]) {
         this.append(data);
         this.data.push("\n");
     }
@@ -79,6 +81,6 @@ export class NeighBuilder {
     }
 }
 
-export function getNumberEnums(e: any) : number[] {
+export function getNumberEnums(e: any): number[] {
     return Object.keys(e).filter(k => typeof e[k as any] === "number").map(k => e[k as any]);
 }