From 777e5e47b2232509cfcb9c8168fad2f5dfb15d3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Andr=C3=A9?= Date: Thu, 26 Mar 2020 10:16:41 +0100 Subject: [PATCH] Add checks on the login and creating of user --- .../Interface/IUserService.cs | 2 +- Back/skydiveLogs-api.Business/UserService.cs | 13 ++++++++++-- .../Controllers/UserController.cs | 21 +++++++++++++++++-- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/Back/skydiveLogs-api.Business/Interface/IUserService.cs b/Back/skydiveLogs-api.Business/Interface/IUserService.cs index 27964cf..e2a414b 100644 --- a/Back/skydiveLogs-api.Business/Interface/IUserService.cs +++ b/Back/skydiveLogs-api.Business/Interface/IUserService.cs @@ -8,6 +8,6 @@ namespace skydiveLogs_api.Business.Interface User GetById(int userId); - void AddNewUser(User user); + bool AddNewUser(User user); } } diff --git a/Back/skydiveLogs-api.Business/UserService.cs b/Back/skydiveLogs-api.Business/UserService.cs index 4a2d495..1bf2444 100644 --- a/Back/skydiveLogs-api.Business/UserService.cs +++ b/Back/skydiveLogs-api.Business/UserService.cs @@ -27,10 +27,19 @@ namespace skydiveLogs_api.Business return _userRepository.GetByLogin(login, EncryptPassword(password)); } - public void AddNewUser(User newUser) + public bool AddNewUser(User newUser) { newUser.Password = EncryptPassword(newUser.Password); - _userRepository.Add(newUser); + var foundUser = _userRepository.GetByLogin(newUser.Login, newUser.Password); + var result = false; + + if (foundUser == null) + { + _userRepository.Add(newUser); + result = true; + } + + return result; } private string EncryptPassword(string password) diff --git a/Back/skydiveLogs-api/Controllers/UserController.cs b/Back/skydiveLogs-api/Controllers/UserController.cs index 824ca48..dfdb9fb 100644 --- a/Back/skydiveLogs-api/Controllers/UserController.cs +++ b/Back/skydiveLogs-api/Controllers/UserController.cs @@ -72,9 +72,26 @@ namespace skydiveLogs_api.Controllers [AllowAnonymous] [HttpPost] [EnableCors] - public void Post([FromBody] UserReq value) + public IActionResult Post([FromBody] UserReq userToAdd) { - _userService.AddNewUser(_mapper.Map(value)); + IActionResult result; + var newUser = _mapper.Map(userToAdd); + var userAdded = _userService.AddNewUser(newUser); + + if (!userAdded) + { + result = BadRequest(new { message = "Error during the creation of the user." }); + } + else + { + newUser.Password = null; + var resp = _mapper.Map(newUser); + resp.Token = CreateToken(resp); + + result = Ok(resp); + } + + return result; } private string CreateToken(UserResp foundUser)