/// <summary> /// Confirmar email de um usuário /// </summary> /// <param name="confirmRegisterRequest">Dados para validação do email</param> /// <returns></returns> public async Task<ConfirmRegisterResponse> ConfirmUserEmailAsync (ConfirmRegisterRequest confirmRegisterRequest) { _httpClient.DefaultRequestHeaders.Authorization = null; HttpResponseMessage response = await _httpClient.PostAsync( Endpoints.Auth.ConfirmRegister_v1_0, confirmRegisterRequest.ToStringContent()).ConfigureAwait(false); response.StatusCode.Should().Be(HttpStatusCode.OK); string bodyResponse = await response.Content.ReadAsStringAsync().ConfigureAwait(false); ConfirmRegisterResponse confirmRegisterResponse = JsonConvert.DeserializeObject<ConfirmRegisterResponse>( bodyResponse); confirmRegisterResponse.Should().NotBeNull(); confirmRegisterResponse.FirstName.Should().NotBeNull(); confirmRegisterResponse.LastName.Should().NotBeNull(); confirmRegisterResponse.Email.Should().Be(confirmRegisterRequest.Email); confirmRegisterResponse.Phone.Should().NotBeNull(); confirmRegisterResponse.IsEmailValidated.Should().BeTrue(); confirmRegisterResponse.RecoveryPasswordToken.Should().BeNullOrEmpty(); return confirmRegisterResponse; }
/// <summary> /// Cria e valida um novo usuário, após, vincula uma roleType ao usuário recem criado /// </summary> /// <param name="registerRequest">Dados para criação do usuário</param> /// <param name="roleType">Role para ser adicionada</param> /// <returns>Dados de autenticação</returns> public async Task<SigninResponse> RegisterNewUserConfirmEmailAndAddRoleAsync( RegisterRequest registerRequest, int roleType) { ConfirmRegisterResponse confirmRegisterResponse = await RegisterNewUserAndConfirmEmailAsync(registerRequest).ConfigureAwait(false); string sql = $"insert into user_role (user_id, role_type, created_on, created_by) values ({confirmRegisterResponse.Id}, {roleType}, now(), {confirmRegisterResponse.Id});"; using NpgsqlConnection npgsqlConnection = new NpgsqlConnection(Environment.GetEnvironmentVariable("DATABASE_CONNECTION_STRING")); npgsqlConnection.Open(); npgsqlConnection.State.Should().Be(System.Data.ConnectionState.Open); using NpgsqlCommand npgsqlCommand = new NpgsqlCommand(sql, npgsqlConnection); int lines = npgsqlCommand.ExecuteNonQuery(); lines.Should().Be(1); return await AuthValidUserAsync(new SigninRequest() { Email = registerRequest.Email, Password = registerRequest.Password }).ConfigureAwait(false); }