Skip to content

Commit 3997574

Browse files
committed
Add DatabaseConnectionRequest
For non-authentication related requests
1 parent 12ca19e commit 3997574

5 files changed

Lines changed: 90 additions & 117 deletions

File tree

lib/src/main/java/com/auth0/authentication/AuthenticationAPIClient.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ public Request<UserProfile> tokenInfo(String idToken) {
229229
* @param username of the user and must be non null
230230
* @return a request to start
231231
*/
232-
public ParameterizableRequest<DatabaseUser> createUser(String email, String password, String username) {
232+
public DatabaseConnectionRequest<DatabaseUser> createUser(String email, String password, String username) {
233233
HttpUrl url = HttpUrl.parse(auth0.getDomainUrl()).newBuilder()
234234
.addPathSegment(DB_CONNECTIONS_PATH)
235235
.addPathSegment(SIGN_UP_PATH)
@@ -242,8 +242,9 @@ public ParameterizableRequest<DatabaseUser> createUser(String email, String pass
242242
.setConnection(defaultDbConnection)
243243
.setClientId(getClientId())
244244
.asDictionary();
245-
return factory.POST(url, client, mapper, DatabaseUser.class)
245+
final ParameterizableRequest<DatabaseUser> request = factory.POST(url, client, mapper, DatabaseUser.class)
246246
.addParameters(parameters);
247+
return new DatabaseConnectionRequest(request);
247248
}
248249

249250
/**
@@ -253,7 +254,7 @@ public ParameterizableRequest<DatabaseUser> createUser(String email, String pass
253254
* @param password of the user and must be non null
254255
* @return a request to start
255256
*/
256-
public ParameterizableRequest<DatabaseUser> createUser(String email, String password) {
257+
public DatabaseConnectionRequest<DatabaseUser> createUser(String email, String password) {
257258
return createUser(email, password, null);
258259
}
259260

@@ -267,7 +268,7 @@ public ParameterizableRequest<DatabaseUser> createUser(String email, String pass
267268
* @return a request to configure and start that will yield {@link Credentials}
268269
*/
269270
public SignUpRequest signUp(String email, String password, String username) {
270-
final ParameterizableRequest<DatabaseUser> createUserRequest = createUser(email, password, username);
271+
final DatabaseConnectionRequest<DatabaseUser> createUserRequest = createUser(email, password, username);
271272
final AuthenticationRequest authenticationRequest = login(email, password);
272273
return new SignUpRequest(createUserRequest, authenticationRequest);
273274
}
@@ -281,7 +282,7 @@ public SignUpRequest signUp(String email, String password, String username) {
281282
* @return a request to configure and start that will yield {@link Credentials}
282283
*/
283284
public SignUpRequest signUp(String email, String password) {
284-
ParameterizableRequest<DatabaseUser> createUserRequest = createUser(email, password);
285+
DatabaseConnectionRequest<DatabaseUser> createUserRequest = createUser(email, password);
285286
final AuthenticationRequest authenticationRequest = login(email, password);
286287
return new SignUpRequest(createUserRequest, authenticationRequest);
287288
}
@@ -292,7 +293,7 @@ public SignUpRequest signUp(String email, String password) {
292293
* @param email of the user that changes the password. It's also where the email will be sent with the link to perform the change password.
293294
* @return a request to configure and start
294295
*/
295-
public ChangePasswordRequest requestChangePassword(String email) {
296+
public ParameterizableRequest<Void> requestChangePassword(String email) {
296297
HttpUrl url = HttpUrl.parse(auth0.getDomainUrl()).newBuilder()
297298
.addPathSegment(DB_CONNECTIONS_PATH)
298299
.addPathSegment(CHANGE_PASSWORD_PATH)
@@ -303,9 +304,8 @@ public ChangePasswordRequest requestChangePassword(String email) {
303304
.setClientId(getClientId())
304305
.setConnection(defaultDbConnection)
305306
.asDictionary();
306-
ParameterizableRequest<Void> request = factory.POST(url, client, mapper)
307+
return factory.POST(url, client, mapper)
307308
.addParameters(parameters);
308-
return new ChangePasswordRequest(request);
309309
}
310310

311311
/**

lib/src/main/java/com/auth0/authentication/ChangePasswordRequest.java

Lines changed: 0 additions & 103 deletions
This file was deleted.
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
package com.auth0.authentication;
2+
3+
import com.auth0.Auth0Exception;
4+
import com.auth0.callback.BaseCallback;
5+
import com.auth0.request.ParameterizableRequest;
6+
7+
import java.util.Map;
8+
9+
/**
10+
* Request to perform a non-authentication related action
11+
* like creating a user or requesting a change password
12+
*/
13+
public class DatabaseConnectionRequest<T> {
14+
15+
private final ParameterizableRequest<T> request;
16+
17+
public DatabaseConnectionRequest(ParameterizableRequest<T> request) {
18+
this.request = request;
19+
}
20+
21+
/**
22+
* Add the given parameters to the request
23+
* @param parameters to be sent with the request
24+
* @return itself
25+
*/
26+
public DatabaseConnectionRequest<T> addParameters(Map<String, Object> parameters) {
27+
request.addParameters(parameters);
28+
return this;
29+
}
30+
31+
/**
32+
* Add a parameter by name to the request
33+
* @param name of the parameter
34+
* @param value of the parameter
35+
* @return itself
36+
*/
37+
public DatabaseConnectionRequest<T> addParameter(String name, Object value) {
38+
request.addParameter(name, value);
39+
return this;
40+
}
41+
42+
/**
43+
* Add a header for the request, e.g. "Authorization"
44+
* @param name of the header
45+
* @param value of the header
46+
* @return itself
47+
*/
48+
public DatabaseConnectionRequest<T> addHeader(String name, String value) {
49+
request.addHeader(name, value);
50+
return this;
51+
}
52+
53+
/**
54+
* Set the Auth0 Database Connection used for this request using its name.
55+
* @param connection name
56+
* @return itself
57+
*/
58+
public DatabaseConnectionRequest<T> setConnection(String connection) {
59+
request.addParameter(ParameterBuilder.CONNECTION_KEY, connection);
60+
return this;
61+
}
62+
63+
/**
64+
* Executes the request async and returns its results via callback
65+
* @param callback called on success or failure of the request
66+
*/
67+
public void start(BaseCallback<T> callback) {
68+
request.start(callback);
69+
}
70+
71+
/**
72+
* Executes the request synchronously
73+
* @return the request result
74+
* @throws Auth0Exception if the request failed
75+
*/
76+
public T execute() throws Auth0Exception {
77+
return request.execute();
78+
}
79+
}

lib/src/main/java/com/auth0/authentication/SignUpRequest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@
3939
*/
4040
public class SignUpRequest implements Request<Credentials> {
4141

42-
private final ParameterizableRequest<DatabaseUser> signUpRequest;
42+
private final DatabaseConnectionRequest<DatabaseUser> signUpRequest;
4343
private final AuthenticationRequest authenticationRequest;
4444

45-
SignUpRequest(ParameterizableRequest<DatabaseUser> signUpRequest, AuthenticationRequest authenticationRequest) {
45+
SignUpRequest(DatabaseConnectionRequest<DatabaseUser> signUpRequest, AuthenticationRequest authenticationRequest) {
4646
this.signUpRequest = signUpRequest;
4747
this.authenticationRequest = authenticationRequest;
4848
}
@@ -83,6 +83,7 @@ public SignUpRequest setScope(String scope) {
8383
* @return itself
8484
*/
8585
public SignUpRequest setConnection(String connection) {
86+
signUpRequest.setConnection(connection);
8687
authenticationRequest.setConnection(connection);
8788
return this;
8889
}

lib/src/test/java/com/auth0/authentication/AuthenticationAPIClientTest.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,6 @@ public void shouldChangePassword() throws Exception {
531531

532532
final MockBaseCallback<Void> callback = new MockBaseCallback<>();
533533
client.requestChangePassword("support@auth0.com")
534-
.setNewPassword("123123123")
535534
.start(callback);
536535

537536
final RecordedRequest request = mockAPI.takeRequest();
@@ -540,7 +539,6 @@ public void shouldChangePassword() throws Exception {
540539
Map<String, String> body = bodyFromRequest(request);
541540
assertThat(body, hasEntry("email", "support@auth0.com"));
542541
assertThat(body, not(hasKey("username")));
543-
assertThat(body, hasEntry("password", "123123123"));
544542

545543
assertThat(callback, hasNoError());
546544
}
@@ -550,7 +548,6 @@ public void shouldChangePasswordSync() throws Exception {
550548
mockAPI.willReturnSuccessfulChangePassword();
551549

552550
client.requestChangePassword("support@auth0.com")
553-
.setNewPassword("123123123")
554551
.execute();
555552

556553
final RecordedRequest request = mockAPI.takeRequest();
@@ -559,7 +556,6 @@ public void shouldChangePasswordSync() throws Exception {
559556
Map<String, String> body = bodyFromRequest(request);
560557
assertThat(body, hasEntry("email", "support@auth0.com"));
561558
assertThat(body, not(hasKey("username")));
562-
assertThat(body, hasEntry("password", "123123123"));
563559
}
564560

565561
@Test

0 commit comments

Comments
 (0)