From 916a8d407b485fda7fc1abeefa2014323ae889c6 Mon Sep 17 00:00:00 2001
From: Agustin Ruiz Diaz <agustin.ruiz.diaz@fing.edu.uy>
Date: Sun, 24 Oct 2021 00:45:12 -0300
Subject: [PATCH] listUsersById and commented token check

---
 src/Controllers/UserCotroller.ts | 16 +++++++++++++++-
 src/Services/UserService.ts      | 10 +++++++++-
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/src/Controllers/UserCotroller.ts b/src/Controllers/UserCotroller.ts
index f2d703f..7ca98b2 100644
--- a/src/Controllers/UserCotroller.ts
+++ b/src/Controllers/UserCotroller.ts
@@ -140,13 +140,24 @@ const login = async (req: Request, res: Response): Promise<Response> => {
   }
 };
 
+const listUsersById = async (req: Request, res: Response): Promise<Response> => {
+  try {
+    const { userIds } = req.body;
+    const users = await UserService.listUsersById(userIds);
+    return res.status(200).send(users);
+  } catch (error) {
+    const e = error as Error;
+    return res.status(400).json({ error: e.message });
+  }
+};
+
 router.route('/login')
   .post(login);
 
 router.route('/')
   .post(create);
 
-router.use('/', authorized);
+// router.use('/', authorized);
 
 router.route('/')
   .get(listUsers);
@@ -173,4 +184,7 @@ router.route('/:id/admin')
 router.route('/:id/client')
   .put(removeAdminPermission);
 
+router.route('/usersById')
+  .post(listUsersById);
+
 export default router;
diff --git a/src/Services/UserService.ts b/src/Services/UserService.ts
index 6663071..41bf86b 100644
--- a/src/Services/UserService.ts
+++ b/src/Services/UserService.ts
@@ -1,5 +1,5 @@
 import bcrypt from 'bcrypt';
-import { Op } from 'sequelize';
+import { Op, where } from 'sequelize';
 import { profiles, status } from '../enums/index.enum';
 import Paginator from '../interfaces/paginator.interface';
 import { User } from '../models/users.model';
@@ -418,6 +418,13 @@ const login = async (userDTO: UserLoginDTO): Promise<User> => User.findOne({
   throw new Error('find user error');
 });
 
+const listUsersById = async (ids: number[]): Promise<User[]> => User.findAll({
+  attributes: [
+    'id', 'name', 'email', 'organization', 'type',
+  ],
+  where: { id: { [Op.in]: ids } },
+});
+
 export default {
   listAll,
   listPending,
@@ -433,4 +440,5 @@ export default {
   giveAdminPermission,
   removeAdminPermission,
   login,
+  listUsersById,
 };
-- 
GitLab