public async Task <IActionResult> Login([FromBody] CreateUserSessionCommand command)
        {
            var result = await _bus.Send(command);

            return(result.Success
                ? Success(result.Value)
                : Error(result.ErrorMessage, result.Code));
        }
Exemple #2
0
        public async Task <DomainResult <string> > Handle(CreateUserSessionCommand command, CancellationToken cancellationToken)
        {
            var user = await _accountRepository.GetUserByEmailAndPassword(command.Email, command.Password);

            if (user is null)
            {
                return(DomainResult.Failure <string>("User not found", HttpStatusCode.Unauthorized));
            }

            var token = _jwtAuthService.CreateJwtToken(user);

            return(DomainResult.Ok(token));
        }
        public async void Post_Accounts_WithValidUser_Success()
        {
            // Arrange
            var command = new CreateUserSessionCommand {
                Email = "*****@*****.**", Password = "******"
            };

            //Act
            using (var body = new StringContent(JsonConvert.SerializeObject(command), Encoding.UTF8, "application/json"))
                using (var result = await Client.PostAsync(_resource, body))
                {
                    var response = await result.ReadAsResponseAsync <string>();

                    //Assert
                    response.IsSuccess.Should().BeTrue();
                    response.Result.Should().NotBeNullOrWhiteSpace();
                }
        }
        public async Task LoginAsAdmin()
        {
            var command = new CreateUserSessionCommand {
                Email = "*****@*****.**", Password = "******"
            };

            using (var body = new StringContent(JsonConvert.SerializeObject(command), Encoding.UTF8, "application/json"))
                using (var result = await Client.PostAsync("/api/accounts/", body))
                {
                    result.EnsureSuccessStatusCode();

                    var response = await result.ReadAsResponseAsync <string>();

                    if (Client.DefaultRequestHeaders.Contains("Authorization"))
                    {
                        Client.DefaultRequestHeaders.Remove("Authorization");
                    }

                    Client.DefaultRequestHeaders.Add("Authorization", $"Bearer {response.Result}");
                }
        }