From 8bd91f7026b8b1d7dac3cf7a4ba0d5c73033eeab Mon Sep 17 00:00:00 2001
From: Ramiro <rbentancor@globaluy.com>
Date: Mon, 25 Oct 2021 21:29:18 -0300
Subject: [PATCH] UserCotroller (Cotroller no Controller), UserService

---
 dist/Controllers/UserCotroller.js     | 128 ++++++++++++++------------
 dist/Controllers/UserCotroller.js.map |   2 +-
 dist/Services/UserService.js          |  46 +++++++--
 dist/Services/UserService.js.map      |   2 +-
 src/Controllers/UserCotroller.ts      |  13 ++-
 src/DTOs/UserDTO.ts                   |   7 ++
 src/Services/UserService.ts           |  36 +++++---
 7 files changed, 153 insertions(+), 81 deletions(-)

diff --git a/dist/Controllers/UserCotroller.js b/dist/Controllers/UserCotroller.js
index f368b53..143adc3 100644
--- a/dist/Controllers/UserCotroller.js
+++ b/dist/Controllers/UserCotroller.js
@@ -18,54 +18,34 @@ const UserService_1 = __importDefault(require("../Services/UserService"));
 const config_1 = require("../config/config");
 const token_middleware_1 = require("../middlewares/token.middleware");
 const router = (0, express_1.Router)();
-const listAll = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
+const listUsers = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
     try {
-        const users = yield UserService_1.default
-            .listAll(Number(req.query.limit), Number(req.query.offset));
-        return res.status(200).send(users);
-    }
-    catch (error) {
-        const e = error;
-        return res.status(400).json({ error: e.message });
-    }
-});
-const listPending = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
-    try {
-        const users = yield UserService_1.default
-            .listPending(Number(req.query.limit), Number(req.query.offset), String(req.query.search));
-        return res.status(200).send(users);
-    }
-    catch (error) {
-        const e = error;
-        return res.status(400).json({ error: e.message });
-    }
-});
-const listApproved = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
-    try {
-        const users = yield UserService_1.default
-            .listApproved(Number(req.query.limit), Number(req.query.offset), String(req.query.search));
-        return res.status(200).send(users);
-    }
-    catch (error) {
-        const e = error;
-        return res.status(400).json({ error: e.message });
-    }
-});
-const listClients = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
-    try {
-        const users = yield UserService_1.default
-            .listClients(Number(req.query.limit), Number(req.query.offset), String(req.query.search));
-        return res.status(200).send(users);
-    }
-    catch (error) {
-        const e = error;
-        return res.status(400).json({ error: e.message });
-    }
-});
-const listAdmins = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
-    try {
-        const users = yield UserService_1.default
-            .listAdmins(Number(req.query.limit), Number(req.query.offset), String(req.query.search));
+        let users;
+        if (req.query.type !== null) {
+            if (req.query.type === 'pending') {
+                users = yield UserService_1.default
+                    .listPending(Number(req.query.limit), Number(req.query.offset), String(req.query.search));
+            }
+            else if (req.query.type === 'approved') {
+                users = yield UserService_1.default
+                    .listApproved(Number(req.query.limit), Number(req.query.offset), String(req.query.search));
+            }
+            else if (req.query.type === 'clients') {
+                users = yield UserService_1.default
+                    .listClients(Number(req.query.limit), Number(req.query.offset), String(req.query.search));
+            }
+            else if (req.query.type === 'admins') {
+                users = yield UserService_1.default
+                    .listAdmins(Number(req.query.limit), Number(req.query.offset), String(req.query.search));
+            }
+            else {
+                return res.status(400).json({ error: 'Invalid type' });
+            }
+        }
+        else {
+            users = yield UserService_1.default
+                .listAll(Number(req.query.limit), Number(req.query.offset));
+        }
         return res.status(200).send(users);
     }
     catch (error) {
@@ -168,7 +148,6 @@ const login = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
         });
     }
     catch (error) {
-        console.log(error);
         const e = error;
         return res.status(400).json({ error: e.message });
     }
@@ -181,24 +160,57 @@ const checkUser = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
         return res.status(400).send();
     }
 });
+const validate = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
+    const { token } = req.body;
+    if (token) {
+        jsonwebtoken_1.default.verify(token, config_1.secret.auth, (error, decoded) => {
+            if (error) {
+                const message = 'Invalid token';
+                return res.status(401).send({ message });
+            }
+            const userId = decoded.user;
+            return res.status(200).send({ userId });
+        });
+    }
+    else {
+        return res.status(400).send('auth token not supplied');
+    }
+    return res.status(500).send();
+});
+const listUsersById = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
+    try {
+        const { userIds } = req.body;
+        const users = yield UserService_1.default.listUsersById(userIds);
+        return res.status(200).send(users);
+    }
+    catch (error) {
+        const e = error;
+        return res.status(400).json({ error: e.message });
+    }
+});
+const getUser = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
+    try {
+        const userId = Number(req.params.id);
+        const user = yield UserService_1.default.getUser(userId);
+        return res.status(200).send(user);
+    }
+    catch (error) {
+        const e = error;
+        return res.status(400).json({ error: e.message });
+    }
+});
 router.route('/login')
     .post(login);
 router.route('/')
     .post(create);
+router.post('/validate', validate);
 router.use('/', token_middleware_1.authorized);
 router.route('/check-user')
     .post(checkUser);
 router.route('/')
-    .get(listAll);
-router.route('/pending')
-    .get(listPending);
-router.route('/approved')
-    .get(listApproved);
-router.route('/clients')
-    .get(listClients);
-router.route('/admins')
-    .get(listAdmins);
+    .get(listUsers);
 router.route('/:id')
+    .get(getUser)
     .put(update)
     .patch(active);
 router.route('/:id/password')
@@ -213,5 +225,7 @@ router.route('/:id/admin')
     .put(giveAdminPermission);
 router.route('/:id/client')
     .put(removeAdminPermission);
+router.route('/usersById')
+    .post(listUsersById);
 exports.default = router;
 //# sourceMappingURL=UserCotroller.js.map
\ No newline at end of file
diff --git a/dist/Controllers/UserCotroller.js.map b/dist/Controllers/UserCotroller.js.map
index 842fb98..1ded590 100644
--- a/dist/Controllers/UserCotroller.js.map
+++ b/dist/Controllers/UserCotroller.js.map
@@ -1 +1 @@
-{"version":3,"file":"UserCotroller.js","sourceRoot":"","sources":["../../src/Controllers/UserCotroller.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"UserCotroller.js","sourceRoot":"","sources":["../../src/Controllers/UserCotroller.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/Services/UserService.js b/dist/Services/UserService.js
index d15478e..62484ec 100644
--- a/dist/Services/UserService.js
+++ b/dist/Services/UserService.js
@@ -210,15 +210,25 @@ const update = (userId, userDTO) => __awaiter(void 0, void 0, void 0, function*
             throw new Error('user not found');
         }
         else {
-            const emailUser = yield users_model_1.User.findOne({
-                where: {
-                    email: userDTO.email,
-                },
-            });
-            if (!emailUser || emailUser.get('id') === user.get('id')) {
+            if (userDTO.password.length > 6) {
+                if (userDTO.password === userDTO.repeat) {
+                    return user.update({
+                        name: userDTO.name,
+                        organization: userDTO.organization,
+                        password: bcrypt_1.default.hashSync(userDTO.password, 10),
+                        updatedAt: new Date(),
+                    }).catch((error) => {
+                        console.log(error);
+                        throw new Error('user update error');
+                    });
+                }
+                else {
+                    throw new Error('passwords dont match');
+                }
+            }
+            else {
                 return user.update({
                     name: userDTO.name,
-                    email: userDTO.email,
                     organization: userDTO.organization,
                     updatedAt: new Date(),
                 }).catch((error) => {
@@ -226,7 +236,6 @@ const update = (userId, userDTO) => __awaiter(void 0, void 0, void 0, function*
                     throw new Error('user update error');
                 });
             }
-            throw new Error('email in use');
         }
     })).catch((error) => {
         console.log(error);
@@ -418,10 +427,27 @@ const login = (userDTO) => __awaiter(void 0, void 0, void 0, function* () {
         }
     }).catch((error) => {
         console.log(error);
-        console.log('credentials:', userDTO);
         throw new Error('find user error');
     });
 });
+const listUsersById = (ids) => __awaiter(void 0, void 0, void 0, function* () {
+    const users = users_model_1.User.findAll({
+        attributes: [
+            'id', 'name', 'email', 'organization', 'type',
+        ],
+        where: { id: { [sequelize_1.Op.in]: ids } },
+    });
+    return users;
+});
+const getUser = (id) => __awaiter(void 0, void 0, void 0, function* () {
+    return users_model_1.User.findOne({
+        attributes: ['id', 'name', 'organization'],
+        where: {
+            id,
+            deletedAt: null
+        }
+    });
+});
 exports.default = {
     listAll,
     listPending,
@@ -437,5 +463,7 @@ exports.default = {
     giveAdminPermission,
     removeAdminPermission,
     login,
+    listUsersById,
+    getUser,
 };
 //# sourceMappingURL=UserService.js.map
\ No newline at end of file
diff --git a/dist/Services/UserService.js.map b/dist/Services/UserService.js.map
index 0c7508e..d93216f 100644
--- a/dist/Services/UserService.js.map
+++ b/dist/Services/UserService.js.map
@@ -1 +1 @@
-{"version":3,"file":"UserService.js","sourceRoot":"","sources":["../../src/Services/UserService.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"UserService.js","sourceRoot":"","sources":["../../src/Services/UserService.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/src/Controllers/UserCotroller.ts b/src/Controllers/UserCotroller.ts
index e3ac530..5fb7b71 100644
--- a/src/Controllers/UserCotroller.ts
+++ b/src/Controllers/UserCotroller.ts
@@ -134,7 +134,6 @@ const login = async (req: Request, res: Response): Promise<Response> => {
       user: logged,
     });
   } catch (error) {
-    console.log(error);
     const e = error as Error;
     return res.status(400).json({ error: e.message });
   }
@@ -176,6 +175,17 @@ const listUsersById = async (req: Request, res: Response): Promise<Response> =>
   }
 };
 
+const getUser = async (req: Request, res: Response): Promise<Response> => {
+  try {
+    const userId = Number(req.params.id);
+    const user: User = await UserService.getUser(userId);
+    return res.status(200).send(user);
+  } catch (error) {
+    const e = error as Error;
+    return res.status(400).json({ error: e.message });
+  }
+};
+
 router.route('/login')
   .post(login);
 
@@ -193,6 +203,7 @@ router.route('/')
   .get(listUsers);
 
 router.route('/:id')
+  .get(getUser)
   .put(update)
   .patch(active);
 
diff --git a/src/DTOs/UserDTO.ts b/src/DTOs/UserDTO.ts
index fb50c64..ce39475 100644
--- a/src/DTOs/UserDTO.ts
+++ b/src/DTOs/UserDTO.ts
@@ -5,6 +5,13 @@ export interface UserCreateDTO {
   password: string;
 }
 
+export interface UserUpdateDTO {
+  name: string;
+  organization: string;
+  password: string;
+  repeat: string;
+}
+
 export interface UserLoginDTO {
   email: string;
   password: string;
diff --git a/src/Services/UserService.ts b/src/Services/UserService.ts
index a361287..f46ba86 100644
--- a/src/Services/UserService.ts
+++ b/src/Services/UserService.ts
@@ -4,7 +4,7 @@ import { profiles, status } from '../enums/index.enum';
 import Paginator from '../interfaces/paginator.interface';
 import { User } from '../models/users.model';
 
-import { UserCreateDTO, UserLoginDTO } from '../DTOs/UserDTO';
+import { UserCreateDTO, UserLoginDTO, UserUpdateDTO } from '../DTOs/UserDTO';
 
 const listPending = async (limit: number, offset: number,
   search: string): Promise<Paginator<User>> => {
@@ -210,7 +210,7 @@ const create = async (userDTO: UserCreateDTO): Promise<User> => User.findOne({
   throw error;
 });
 
-const update = async (userId: number, userDTO: UserCreateDTO): Promise<User> => User.findOne({
+const update = async (userId: number, userDTO: UserUpdateDTO): Promise<User> => User.findOne({
   attributes: [
     'id', 'name', 'email',
   ],
@@ -220,24 +220,28 @@ const update = async (userId: number, userDTO: UserCreateDTO): Promise<User> =>
 }).then(async (user: User) => {
   if (!user) {
     throw new Error('user not found');
-  } else {
-    const emailUser: User = await User.findOne({
-      where: {
-        email: userDTO.email,
-      },
-    });
-    if (!emailUser || emailUser.get('id') === user.get('id')) {
+  } else if (userDTO.password.length > 6) {
+    if (userDTO.password === userDTO.repeat) {
       return user.update({
         name: userDTO.name,
-        email: userDTO.email,
         organization: userDTO.organization,
+        password: bcrypt.hashSync(userDTO.password, 10),
         updatedAt: new Date(),
       }).catch((error: Error) => {
         console.log(error);
         throw new Error('user update error');
       });
     }
-    throw new Error('email in use');
+    throw new Error('passwords dont match');
+  } else {
+    return user.update({
+      name: userDTO.name,
+      organization: userDTO.organization,
+      updatedAt: new Date(),
+    }).catch((error: Error) => {
+      console.log(error);
+      throw new Error('user update error');
+    });
   }
 }).catch((error: Error) => {
   console.log(error);
@@ -414,7 +418,6 @@ const login = async (userDTO: UserLoginDTO): Promise<User> => User.findOne({
   }
 }).catch((error: Error) => {
   console.log(error);
-  console.log('credentials:', userDTO);
   throw new Error('find user error');
 });
 
@@ -428,6 +431,14 @@ const listUsersById = async (ids: number[]): Promise<User[]> => {
   return users;
 };
 
+const getUser = async (id: number): Promise<User> => User.findOne({
+  attributes: ['id', 'name', 'organization'],
+  where: {
+    id,
+    deletedAt: null,
+  },
+});
+
 export default {
   listAll,
   listPending,
@@ -444,4 +455,5 @@ export default {
   removeAdminPermission,
   login,
   listUsersById,
+  getUser,
 };
-- 
GitLab