public async Task Test_users_crud_sequence() { // Get all the users var usersBefore = await apiClient.Users.GetAllAsync(); // Add a new user var newUserRequest = new UserCreateRequest { Connection = connection.Name, Email = $"{Guid.NewGuid().ToString("N")}@nonexistingdomain.aaa", EmailVerified = true, Password = "******" }; var newUserResponse = await apiClient.Users.CreateAsync(newUserRequest); newUserResponse.Should().NotBeNull(); newUserResponse.Email.Should().Be(newUserRequest.Email); // Get all the users again. Verify we now have one more var usersAfter = await apiClient.Users.GetAllAsync(); usersAfter.Count.Should().Be(usersBefore.Count + 1); // Update the user var updateUserRequest = new UserUpdateRequest { Email = $"{Guid.NewGuid().ToString("N")}@nonexistingdomain.aaa", VerifyEmail = false }; var updateUserResponse = await apiClient.Users.UpdateAsync(newUserResponse.UserId, updateUserRequest); updateUserResponse.Should().NotBeNull(); updateUserResponse.Email.Should().Be(updateUserRequest.Email); // Get a single user var user = await apiClient.Users.GetAsync(newUserResponse.UserId); user.Should().NotBeNull(); user.Email.Should().Be(updateUserResponse.Email); // Delete the user and ensure we get an exception when trying to fetch them again await apiClient.Users.DeleteAsync(user.UserId); Func<Task> getFunc = async () => await apiClient.Users.GetAsync(user.UserId); getFunc.ShouldThrow<ApiException>().And.ApiError.ErrorCode.Should().Be("inexistent_user"); }
/// <summary> /// Updates a user. /// </summary> /// <param name="id">The id of the user to update.</param> /// <param name="request">The <see cref="UserUpdateRequest" /> containing the information you wish to update.</param> /// <returns>Task<User>.</returns> public Task<User> Update(string id, UserUpdateRequest request) { return Connection.PatchAsync<User>("users/{id}", request, new Dictionary<string, string> { {"id", id} }); }
public Task<User> Update(string id, UserUpdateRequest request) { return UpdateAsync(id, request); }
public async Task Can_update_user_metadata() { // Add a new user with metadata var newUserRequest = new UserCreateRequest { Connection = connection.Name, Email = $"{Guid.NewGuid().ToString("N")}@nonexistingdomain.aaa", EmailVerified = true, Password = "******", AppMetadata = new { a = 1, b = 2 }, UserMetadata = new { c = 3, d = 4 } }; var newUserResponse = await apiClient.Users.CreateAsync(newUserRequest); // Do some updating var updateUserRequest = new UserUpdateRequest(); updateUserRequest.AppMetadata = new ExpandoObject(); updateUserRequest.AppMetadata.IsSubscribedTo = "1"; var updateUserResponse = await apiClient.Users.UpdateAsync(newUserResponse.UserId, updateUserRequest); // Get the user to ensure the metadata was set var user = await apiClient.Users.GetAsync(newUserResponse.UserId); // Delete the user await apiClient.Users.DeleteAsync(user.UserId); }
public async Task Test_user_blocking() { // Add a new user, and ensure user is not blocked var newUserRequest = new UserCreateRequest { Connection = connection.Name, Email = $"{Guid.NewGuid().ToString("N")}@nonexistingdomain.aaa", EmailVerified = true, Password = "******" }; var newUserResponse = await apiClient.Users.CreateAsync(newUserRequest); newUserResponse.Blocked.Should().BeFalse(); // Ensure the user is not blocked when we select the user individually var user = await apiClient.Users.GetAsync(newUserResponse.UserId); user.Blocked.Should().BeFalse(); // Block the user, and ensure returned user is blocked var updateUserRequest = new UserUpdateRequest { Blocked = true }; var updateUserResponse = await apiClient.Users.UpdateAsync(newUserResponse.UserId, updateUserRequest); updateUserResponse.Blocked.Should().BeTrue(); // Ensure the user is not blocked when we select the user individually user = await apiClient.Users.GetAsync(newUserResponse.UserId); user.Blocked.Should().BeTrue(); // Delete the user await apiClient.Users.DeleteAsync(user.UserId); }