From a39ad1e6b8f8b5707f47fd32d9fccdde6e21d009 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me>
Date: Mon, 3 Jul 2023 23:40:05 +0200
Subject: [PATCH] UserManager => Add get staff function

---
 ExpressAPI/src/managers/UserManager.ts | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/ExpressAPI/src/managers/UserManager.ts b/ExpressAPI/src/managers/UserManager.ts
index f100c2d..748ca4c 100644
--- a/ExpressAPI/src/managers/UserManager.ts
+++ b/ExpressAPI/src/managers/UserManager.ts
@@ -1,6 +1,7 @@
-import User       from '../models/User';
-import db         from '../helpers/DatabaseHelper';
-import GitlabUser from '../shared/types/Gitlab/GitlabUser';
+import User        from '../models/User';
+import db          from '../helpers/DatabaseHelper';
+import GitlabUser  from '../shared/types/Gitlab/GitlabUser';
+import EnonceStaff from '../models/EnonceStaff';
 
 
 class UserManager {
@@ -62,6 +63,14 @@ class UserManager {
     async getFromGitlabUsers(gitlabUsers: Array<GitlabUser>, createIfNotExist: boolean = false): Promise<Array<User | number>> {
         return Promise.all(gitlabUsers.map(gitlabUser => this.getFromGitlabUser(gitlabUser, createIfNotExist)));
     }
+
+    async getStaffOfEnonce(enonceName: string): Promise<Array<User>> {
+        const raw = await db<User>(User.tableName)
+        .innerJoin(EnonceStaff.tableName, `${ EnonceStaff.tableName }.userId`, `${ User.tableName }.userId`)
+        .where('enonceName', enonceName);
+
+        return raw ? raw.map(user => this.createObjectFromRawSql(user)) : [];
+    }
 }
 
 
-- 
GitLab