From e176e69e1da5331b97c20bd0c242121821eb912d Mon Sep 17 00:00:00 2001
From: Antonin Coquet <ext.sopra.acoquet@grandlyon.com>
Date: Wed, 24 Mar 2021 16:55:02 +0100
Subject: [PATCH] feat: updating user servuce

---
 src/users/users.controller.ts | 14 +++++++++++++-
 src/users/users.service.ts    |  6 ++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/users/users.controller.ts b/src/users/users.controller.ts
index 382369894..85ec07d85 100644
--- a/src/users/users.controller.ts
+++ b/src/users/users.controller.ts
@@ -9,6 +9,8 @@ import { PasswordResetDto } from './dto/reset-password.dto';
 import { UsersService } from './users.service';
 import { StructuresService } from '../structures/services/structures.service';
 import { TempUserService } from '../temp-user/temp-user.service';
+import { RolesGuard } from './guards/roles.guard';
+import { Roles } from './decorators/roles.decorator';
 
 @Controller('users')
 export class UsersController {
@@ -117,8 +119,9 @@ export class UsersController {
     return user;
   }
 
+  @UseGuards(JwtAuthGuard, RolesGuard)
+  @Roles('admin')
   @Post('delete-user')
-  @ApiResponse({ status: 200, description: 'User deleted' })
   public async deleteUser(@Req() req, @Body() email: { email: string }) {
     const user = await this.usersService.deleteOne(email.email);
     user.structuresLink.forEach((structureId) => {
@@ -131,8 +134,17 @@ export class UsersController {
     return user;
   }
 
+  @UseGuards(JwtAuthGuard, RolesGuard)
+  @Roles('admin')
   @Get()
   public async getAllUsers(@Req() req) {
     return this.usersService.findAll();
   }
+
+  @UseGuards(JwtAuthGuard, RolesGuard)
+  @Roles('admin')
+  @Post('searchUsers')
+  public async searchUsers(@Req() req, @Body() searchString: { searchString: string }) {
+    return this.usersService.searchUsers(searchString.searchString);
+  }
 }
diff --git a/src/users/users.service.ts b/src/users/users.service.ts
index c7806f64e..8d0404c3f 100644
--- a/src/users/users.service.ts
+++ b/src/users/users.service.ts
@@ -499,4 +499,10 @@ export class UsersService {
     });
     return owners;
   }
+
+  public async searchUsers(searchString: string) {
+    return this.userModel
+    .find( {email: new RegExp(searchString, 'i') })
+    .exec();
+  }
 }
-- 
GitLab