diff --git a/src/main/java/com/auth0/client/mgmt/UsersEntity.java b/src/main/java/com/auth0/client/mgmt/UsersEntity.java index 4d1695c6..6d06a3b6 100644 --- a/src/main/java/com/auth0/client/mgmt/UsersEntity.java +++ b/src/main/java/com/auth0/client/mgmt/UsersEntity.java @@ -735,6 +735,28 @@ public Request deleteAuthenticationMethodById(String userId, String authen return new VoidRequest(this.client, tokenProvider, url, HttpMethod.DELETE); } + /** + * Deletes all authentication methods for the given user. + * A token with scope {@code delete:authentication_methods} is needed. + * @see https://auth0.com/docs/api/management/v2/users/delete-authentication-methods + * + * @param userId the user to delete the authentication method for + * @return a Request to execute. + */ + public Request deleteAllAuthenticationMethods(String userId) { + Asserts.assertNotNull(userId, "user ID"); + + String url = baseUrl + .newBuilder() + .addPathSegments("api/v2/users") + .addPathSegment(userId) + .addPathSegment("authentication-methods") + .build() + .toString(); + + return new VoidRequest(this.client, tokenProvider, url, HttpMethod.DELETE); + } + /** * Updates an authentication method. * A token with scope {@code update:authentication_methods} is needed. diff --git a/src/test/java/com/auth0/client/mgmt/UsersEntityTest.java b/src/test/java/com/auth0/client/mgmt/UsersEntityTest.java index 5c6eaf4c..61f519c9 100644 --- a/src/test/java/com/auth0/client/mgmt/UsersEntityTest.java +++ b/src/test/java/com/auth0/client/mgmt/UsersEntityTest.java @@ -1309,6 +1309,26 @@ public void shouldDeleteUserAuthenticationMethodById() throws Exception { assertThat(recordedRequest, hasHeader("Authorization", "Bearer apiToken")); } + @Test + public void shouldNotDeleteAllAuthenticationMethodsWithNullUserId() { + verifyThrows(IllegalArgumentException.class, + () -> api.users().deleteAllAuthenticationMethods(null), + "'user ID' cannot be null!"); + } + + @Test + public void shouldDeleteAllAuthenticationMethods() throws Exception { + Request request = api.users().deleteAllAuthenticationMethods("1"); + assertThat(request, is(notNullValue())); + + server.noContentResponse(); + request.execute().getBody(); + RecordedRequest recordedRequest = server.takeRequest(); + + assertThat(recordedRequest, hasMethodAndPath(HttpMethod.DELETE, "/api/v2/users/1/authentication-methods")); + assertThat(recordedRequest, hasHeader("Authorization", "Bearer apiToken")); + } + @Test public void invalidateRememberedBrowsersThrowsWhenUserIdIsNull() { verifyThrows(IllegalArgumentException.class,