Add checks on the login and creating of user

This commit is contained in:
Sébastien André
2020-03-26 10:16:41 +01:00
parent 829178cb8c
commit 777e5e47b2
3 changed files with 31 additions and 5 deletions

View File

@@ -8,6 +8,6 @@ namespace skydiveLogs_api.Business.Interface
User GetById(int userId);
void AddNewUser(User user);
bool AddNewUser(User user);
}
}

View File

@@ -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)

View File

@@ -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<User>(value));
IActionResult result;
var newUser = _mapper.Map<User>(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<UserResp>(newUser);
resp.Token = CreateToken(resp);
result = Ok(resp);
}
return result;
}
private string CreateToken(UserResp foundUser)