public async Task TestCreatesNewUser() { var user = new User { Name = "Test User 1", Email = "*****@*****.**", Password = "******" }; try { var result = await _userRepository.AddUserAsync(user.Name, user.Email, user.Password); Assert.IsNotNull(result.User); var getUser = await _userRepository.GetUserAsync(user.Email); Assert.AreEqual(result.User.Name, getUser.Name); Assert.AreEqual(result.User.Email, getUser.Email); Assert.IsNull(getUser.Password); Assert.IsNotNull(result.User.HashedPassword); result = await _userRepository.AddUserAsync(user.Name, user.Email, user.Password); Assert.IsNotNull(result.ErrorMessage); Assert.IsTrue(result.ErrorMessage.Contains("E11000 duplicate key error"), "Duplicate key error is expected."); } catch (Exception e) { Assert.Fail(e.Message); } finally { await _userRepository.DeleteUserAsync(user.Email); } }
public async Task <ActionResult> AddUser([FromBody] User user) { Dictionary <string, string> errors = new Dictionary <string, string>(); if (user.Name.Length < 3) { errors.Add("name", "Your username must be at least 3 characters long."); } if (user.Password.Length < 8) { errors.Add("password", "Your password must be at least 8 characters long."); } if (errors.Count > 0) { return(BadRequest(new { error = errors })); } var response = await _userRepository.AddUserAsync(user.Name, user.Email, user.Password); if (response.User != null) { response.User.AuthToken = _jwtAuthentication.Value.GenerateToken(response.User); } if (!response.Success) { return(BadRequest(new { error = response.ErrorMessage })); } return(Ok(response.User)); }
public async Task <IActionResult> CreateUser([FromBody] User user) { if (user.FirstName.Length <= 0 || user.FirstName.Length >= 20 || user.LastName.Length <= 0 || user.LastName.Length >= 80 || user.Password == null) { return(BadRequest()); } await _repository.AddUserAsync(user); return(CreatedAtAction(nameof(GetUser), new { id = user.Id }, user)); }
public async Task <IActionResult> Post([FromBody] User user) { try { if ((await _usersRepository.GetUserByUserNameAsync(user.UserName)) != null) { return(BadRequest("Such userName already exists")); } if (await _usersRepository.AddUserAsync(user)) { return(Ok()); } } catch (Exception e) { _logger.LogError($"Error while posting user {e.Message}"); } return(BadRequest()); }