public override async Task <SignUpReply> SignUpByEmail(SignUpByEmailRequest request, ServerCallContext context) { var command = new SignUpByEmailCommand( new EmailIdentity(request.Email), request.Password, _language, ParseIpAddress(request.Ip) ); var data = await _mediator.Send(command); return(data.ToSignUpReply()); }
public async Task SignUpByEmailShouldBeSucceed() { var dateTimeBeforeSignUp = DateTime.UtcNow; /* sign up using service */ var expectedUser = UserFactory.GenerateUserUsingEmail(); var requestBodyObject = new SignUpByEmailRequest { Email = expectedUser.Email, Password = UserFactory.DefaultPassword, FirstName = expectedUser.FirstName, LastName = expectedUser.LastName }; var content = new StringContent(JsonConvert.SerializeObject(requestBodyObject), Encoding.UTF8, "application/json"); var httpResponse = await _apiFixture.Client.PostAsync(_apiFixture.ApplicationSettings.AuthServiceAPISettings.SignUpByEmailUrl, content); httpResponse.EnsureSuccessStatusCode(); var actualUserReponse = JsonConvert.DeserializeObject <UserResponse>( await httpResponse.Content.ReadAsStringAsync()); /* check if the created user response is match with expected user */ Assert.NotNull(actualUserReponse); Assert.NotNull(actualUserReponse.Id); Assert.Equal(expectedUser.Email, actualUserReponse.Email); Assert.Equal(expectedUser.FirstName, actualUserReponse.FirstName); Assert.Equal(expectedUser.LastName, actualUserReponse.LastName); Assert.True(expectedUser.SignUpDate > dateTimeBeforeSignUp); /* check again if the user stored in database is match with expected user */ var actualUser = _persistenceFixture.GetUserByEmail(expectedUser.Email); Assert.NotNull(actualUser); Assert.Equal(expectedUser.Email, actualUser.Email); Assert.Equal(expectedUser.FirstName, actualUser.FirstName); Assert.Equal(expectedUser.LastName, actualUser.LastName); Assert.True(expectedUser.SignUpDate > dateTimeBeforeSignUp); }
public async Task <IActionResult> SignUpByEmailAsync( [HttpTrigger(AuthorizationLevel.Function, "post", Route = "sign-up-by-email")] HttpRequest req, ILogger log) { string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); var signUpByEmailRequest = JsonConvert.DeserializeObject <SignUpByEmailRequest>(requestBody); var invalidParameters = new SignUpByEmailRequest(); Email email = null; Password password = null; Name firstName = null; Name lastName = null; try { email = signUpByEmailRequest.Email; } catch (ParameterException e) { invalidParameters.Email = e.Message; } try { password = signUpByEmailRequest.Password; } catch (ParameterException e) { invalidParameters.Password = e.Message; } try { firstName = signUpByEmailRequest.FirstName; } catch (ParameterException e) { invalidParameters.FirstName = e.Message; } try { lastName = signUpByEmailRequest.LastName; } catch (ParameterException e) { invalidParameters.LastName = e.Message; } if (email == null || password == null || firstName == null || lastName == null) { return(new BadRequestObjectResult( new ErrorParametersResponse { InvalidParametersObject = invalidParameters })); } try { var user = await _signUpUseCase.SignUpByEmail( email : email, password : password, firstName : firstName, lastName : lastName); return(new CreatedResult( "", UserResponse.Load(user))); } catch (ConflictException e) { return(new ConflictObjectResult( ErrorResponse.Conflict( message: e.Message ))); } catch (DomainException e) { return(new BadRequestObjectResult( ErrorResponse.BadRequest( message: e.Message ))); } }