public async Task <IActionResult> BlockUser([FromRoute] int id) { LogBeginOfRequest(); if (!ModelState.IsValid) { LogEndOfRequest("Failed Bad request", 400); return(BadRequest(ModelState)); } if (VerifyIfUserIdEqualsTokenClaimName(id)) { LogEndOfRequest($"User id {GetUserTypeFromToken()} {GetUserTypeFromToken()}, Trying to block himself", 400); return(BadRequest()); } try { var command = new BlockUserCommand(id); await userService.BlockUserCommand.HandleAsync(command); LogEndOfRequest("Success", 200); return(Ok()); } catch (KeyNotFoundException) { LogEndOfRequest($"Failed User with id {id} not found", 404); return(NotFound()); } }
public void UserIdIsValid_ShouldNotHaveError() { _command = new BlockUserCommand { UserId = "userId" }; _sut.ShouldNotHaveValidationErrorFor(x => x.UserId, _command); }
public void UserIdIsNullOrEmpty_ShouldHaveError(string userId) { _command = new BlockUserCommand { UserId = userId }; _sut.ShouldHaveValidationErrorFor(x => x.UserId, _command); }
public ActionResult BlockUser(BlockUserCommand command) { string error; User user; if ((user = _repository.GetUserByToken(command.user_token)) != null) { var interlocutor = _repository.GetUserByPublicToken(command.opposide_public_token); if (interlocutor != null) { if (command.blocked_reason.Length < 100) { var blockedUser = _repository.GetBlockedUser(user.Id, interlocutor.Id); if (blockedUser == null) { blockedUser = new BlockedUser { UserId = user.Id, BlockedUserId = interlocutor.Id, Reason = command.blocked_reason, Deleted = false }; _repository.CreateBlockedUser(blockedUser); _logger.LogInformation($"Block user by user, id -> {user.Id}."); return(Ok(new MessageResponse(true, "User was blocked."))); } else { error = "User blocked current user."; } } else { error = "Reason message can't be longer than 100 characters."; } } else { error = "No user with that opposide_public_token."; } } else { error = "Server can't define user by token."; } _logger.LogWarning(error); var response = new MessageResponse(false, error); return(StatusCode(500, response)); }
public void SetUp() { _service = new Mock <IBlockUserService>(); _unitOfWork = new Mock <IUnitOfWork>(); _sut = new BlockUserCommandHandler(_service.Object, _unitOfWork.Object); _command = new BlockUserCommand { UserId = "userId", }; _userToBlock = new User("email", "organizationId"); _service.Setup(x => x.GetUser(_command.UserId, default)) .ReturnsAsync(_userToBlock); }
public async Task <ActionResult> BlockUser(BlockUserCommand command, CancellationToken token) { await Mediator.Send(command, token); return(NoContent()); }