Skip to content

Commit 5ff1af7

Browse files
committed
Improve ParameterizableRequest API
1 parent 3625468 commit 5ff1af7

9 files changed

Lines changed: 116 additions & 98 deletions

File tree

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

Lines changed: 59 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -170,9 +170,8 @@ public ParameterizableRequest<Credentials> loginWithOAuthAccessToken(String toke
170170
.setAccessToken(token)
171171
.asDictionary();
172172

173-
ParameterizableRequest<Credentials> credentialsRequest = factory.POST(url, client, mapper, Credentials.class);
174-
credentialsRequest.getParameterBuilder().addAll(parameters);
175-
return credentialsRequest;
173+
return factory.POST(url, client, mapper, Credentials.class)
174+
.addParameters(parameters);
176175
}
177176

178177
/**
@@ -218,9 +217,8 @@ public ParameterizableRequest<Credentials> loginWithEmail(String email, String v
218217
* @return a request to start
219218
*/
220219
public Request<UserProfile> tokenInfo(String idToken) {
221-
ParameterizableRequest<UserProfile> request = profileRequest();
222-
request.getParameterBuilder().set(ParameterBuilder.ID_TOKEN_KEY, idToken);
223-
return request;
220+
return profileRequest()
221+
.addParameter(ParameterBuilder.ID_TOKEN_KEY, idToken);
224222
}
225223

226224
/**
@@ -237,14 +235,15 @@ public ParameterizableRequest<DatabaseUser> createUser(String email, String pass
237235
.addPathSegment(SIGN_UP_PATH)
238236
.build();
239237

240-
ParameterizableRequest<DatabaseUser> request = factory.POST(url, client, mapper, DatabaseUser.class);
241-
request.getParameterBuilder()
238+
Map<String, Object> parameters = ParameterBuilder.newBuilder()
242239
.set(USERNAME_KEY, username)
243240
.set(EMAIL_KEY, email)
244241
.set(PASSWORD_KEY, password)
245242
.setConnection(defaultDbConnection)
246-
.setClientId(getClientId());
247-
return request;
243+
.setClientId(getClientId())
244+
.asDictionary();
245+
return factory.POST(url, client, mapper, DatabaseUser.class)
246+
.addParameters(parameters);
248247
}
249248

250249
/**
@@ -299,11 +298,13 @@ public ChangePasswordRequest requestChangePassword(String email) {
299298
.addPathSegment(CHANGE_PASSWORD_PATH)
300299
.build();
301300

302-
ParameterizableRequest<Void> request = factory.POST(url, client, mapper);
303-
request.getParameterBuilder()
301+
final Map<String, Object> parameters = ParameterBuilder.newBuilder()
304302
.set(EMAIL_KEY, email)
305303
.setClientId(getClientId())
306-
.setConnection(defaultDbConnection);
304+
.setConnection(defaultDbConnection)
305+
.asDictionary();
306+
ParameterizableRequest<Void> request = factory.POST(url, client, mapper)
307+
.addParameters(parameters);
307308
return new ChangePasswordRequest(request);
308309
}
309310

@@ -314,8 +315,8 @@ public ChangePasswordRequest requestChangePassword(String email) {
314315
* @return a request to configure and start
315316
*/
316317
public DelegationRequest<Delegation> delegationWithIdToken(String idToken) {
317-
ParameterizableRequest<Delegation> request = delegation(Delegation.class);
318-
request.getParameterBuilder().set(ParameterBuilder.ID_TOKEN_KEY, idToken);
318+
ParameterizableRequest<Delegation> request = delegation(Delegation.class)
319+
.addParameter(ParameterBuilder.ID_TOKEN_KEY, idToken);
319320

320321
return new DelegationRequest<>(request)
321322
.setApiType(DelegationRequest.DEFAULT_API_TYPE);
@@ -329,8 +330,8 @@ public DelegationRequest<Delegation> delegationWithIdToken(String idToken) {
329330
* @return a request to configure and start
330331
*/
331332
public DelegationRequest<Delegation> delegationWithRefreshToken(String refreshToken) {
332-
ParameterizableRequest<Delegation> request = delegation(Delegation.class);
333-
request.getParameterBuilder().set(ParameterBuilder.REFRESH_TOKEN_KEY, refreshToken);
333+
ParameterizableRequest<Delegation> request = delegation(Delegation.class)
334+
.addParameter(ParameterBuilder.REFRESH_TOKEN_KEY, refreshToken);
334335

335336
return new DelegationRequest<>(request)
336337
.setApiType(DelegationRequest.DEFAULT_API_TYPE);
@@ -344,8 +345,8 @@ public DelegationRequest<Delegation> delegationWithRefreshToken(String refreshTo
344345
* @return a request to configure and start
345346
*/
346347
public DelegationRequest<Map<String, Object>> delegationWithIdToken(String idToken, String apiType) {
347-
ParameterizableRequest<Map<String, Object>> request = delegation();
348-
request.getParameterBuilder().set(ParameterBuilder.ID_TOKEN_KEY, idToken);
348+
ParameterizableRequest<Map<String, Object>> request = delegation()
349+
.addParameter(ParameterBuilder.ID_TOKEN_KEY, idToken);
349350

350351
return new DelegationRequest<>(request)
351352
.setApiType(apiType);
@@ -360,8 +361,8 @@ public DelegationRequest<Map<String, Object>> delegationWithIdToken(String idTok
360361
* @return a request to configure and start
361362
*/
362363
public DelegationRequest<Map<String, Object>> delegationWithRefreshToken(String refreshToken, String apiType) {
363-
ParameterizableRequest<Map<String, Object>> request = delegation();
364-
request.getParameterBuilder().set(ParameterBuilder.REFRESH_TOKEN_KEY, refreshToken);
364+
ParameterizableRequest<Map<String, Object>> request = delegation()
365+
.addParameter(ParameterBuilder.REFRESH_TOKEN_KEY, refreshToken);
365366

366367
return new DelegationRequest<>(request).setApiType(apiType);
367368
}
@@ -378,12 +379,14 @@ public Request<Void> unlink(String userId, String accessToken) {
378379
.addPathSegment(UNLINK_PATH)
379380
.build();
380381

381-
ParameterizableRequest<Void> request = factory.POST(url, client, mapper);
382-
request.getParameterBuilder()
382+
final Map<String, Object> parameters = ParameterBuilder.newBuilder()
383383
.setAccessToken(accessToken)
384384
.set(CLIENT_ID_KEY, getClientId())
385-
.set(USER_ID_KEY, userId);
386-
return request;
385+
.set(USER_ID_KEY, userId)
386+
.asDictionary();
387+
388+
return factory.POST(url, client, mapper)
389+
.addParameters(parameters);
387390
}
388391

389392
/**
@@ -394,12 +397,14 @@ public Request<Void> unlink(String userId, String accessToken) {
394397
* @return a request to configure and start
395398
*/
396399
public ParameterizableRequest<Void> passwordlessWithEmail(String email, PasswordlessType passwordlessType) {
397-
ParameterizableRequest<Void> request = passwordless();
398-
request.getParameterBuilder()
400+
final Map<String, Object> parameters = ParameterBuilder.newBuilder()
399401
.set(EMAIL_KEY, email)
400402
.setSend(passwordlessType)
401-
.setConnection(EMAIL_CONNECTION);
402-
return request;
403+
.setConnection(EMAIL_CONNECTION)
404+
.asDictionary();
405+
406+
return passwordless()
407+
.addParameters(parameters);
403408
}
404409

405410
/**
@@ -410,12 +415,13 @@ public ParameterizableRequest<Void> passwordlessWithEmail(String email, Password
410415
* @return a request to configure and start
411416
*/
412417
public ParameterizableRequest<Void> passwordlessWithSMS(String phoneNumber, PasswordlessType passwordlessType) {
413-
ParameterizableRequest<Void> request = passwordless();
414-
request.getParameterBuilder()
418+
final Map<String, Object> parameters = ParameterBuilder.newBuilder()
415419
.set(PHONE_NUMBER_KEY, phoneNumber)
416420
.setSend(passwordlessType)
417-
.setConnection(SMS_CONNECTION);
418-
return request;
421+
.setConnection(SMS_CONNECTION)
422+
.asDictionary();
423+
return passwordless()
424+
.addParameters(parameters);
419425
}
420426

421427
/**
@@ -429,24 +435,26 @@ public ParameterizableRequest<Map<String, Object>> delegation() {
429435
.addPathSegment(DELEGATION_PATH)
430436
.build();
431437

432-
ParameterizableRequest<Map<String, Object>> request = factory.rawPOST(url, client, mapper);
433-
request.getParameterBuilder()
438+
final Map<String, Object> parameters = ParameterBuilder.newBuilder()
434439
.setClientId(getClientId())
435-
.setGrantType(ParameterBuilder.GRANT_TYPE_JWT);
436-
return request;
440+
.setGrantType(ParameterBuilder.GRANT_TYPE_JWT)
441+
.asDictionary();
442+
return factory.rawPOST(url, client, mapper)
443+
.addParameters(parameters);
437444
}
438445

439446
protected <T> ParameterizableRequest<T> delegation(Class<T> clazz) {
440447
HttpUrl url = HttpUrl.parse(auth0.getDomainUrl()).newBuilder()
441448
.addPathSegment(DELEGATION_PATH)
442449
.build();
443450

444-
ParameterizableRequest<T> request = factory.POST(url, client, mapper, clazz);
445-
request.getParameterBuilder()
451+
final Map<String, Object> parameters = ParameterBuilder.newBuilder()
446452
.setClientId(getClientId())
447-
.setGrantType(GRANT_TYPE_JWT);
453+
.setGrantType(ParameterBuilder.GRANT_TYPE_JWT)
454+
.asDictionary();
448455

449-
return request;
456+
return factory.POST(url, client, mapper, clazz)
457+
.addParameters(parameters);
450458
}
451459

452460
/**
@@ -460,9 +468,11 @@ public ParameterizableRequest<Void> passwordless() {
460468
.addPathSegment(START_PATH)
461469
.build();
462470

463-
ParameterizableRequest<Void> request = factory.POST(url, client, mapper);
464-
request.getParameterBuilder().setClientId(getClientId());
465-
return request;
471+
final Map<String, Object> parameters = ParameterBuilder.newBuilder()
472+
.setClientId(getClientId())
473+
.asDictionary();
474+
return factory.POST(url, client, mapper)
475+
.addParameters(parameters);
466476
}
467477

468478
/**
@@ -482,12 +492,13 @@ protected ParameterizableRequest<Credentials> loginWithResourceOwner(Map<String,
482492
.addPathSegment(RESOURCE_OWNER_PATH)
483493
.build();
484494

485-
ParameterizableRequest<Credentials> request = factory.POST(url, client, mapper, Credentials.class);
486-
request.getParameterBuilder()
495+
final Map<String, Object> requestParameters = ParameterBuilder.newBuilder()
487496
.setClientId(getClientId())
488497
.setConnection(defaultDbConnection)
489-
.addAll(parameters);
490-
return request;
498+
.addAll(parameters)
499+
.asDictionary();
500+
return factory.POST(url, client, mapper, Credentials.class)
501+
.addParameters(requestParameters);
491502
}
492503

493504
private ParameterizableRequest<UserProfile> profileRequest() {

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

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public class AuthenticationRequest implements Request<Authentication> {
5656
* @return itself
5757
*/
5858
public AuthenticationRequest addParameters(Map<String, Object> parameters) {
59-
credentialsRequest.getParameterBuilder().addAll(parameters);
59+
credentialsRequest.addParameters(parameters);
6060
return this;
6161
}
6262

@@ -67,7 +67,7 @@ public AuthenticationRequest addParameters(Map<String, Object> parameters) {
6767
* @return itself
6868
*/
6969
public AuthenticationRequest setScope(String scope) {
70-
credentialsRequest.getParameterBuilder().setScope(scope);
70+
credentialsRequest.addParameter(ParameterBuilder.SCOPE_KEY, scope);
7171
return this;
7272
}
7373

@@ -78,7 +78,7 @@ public AuthenticationRequest setScope(String scope) {
7878
* @return itself
7979
*/
8080
public AuthenticationRequest setConnection(String connection) {
81-
credentialsRequest.getParameterBuilder().setConnection(connection);
81+
credentialsRequest.addParameter(ParameterBuilder.CONNECTION_KEY, connection);
8282
return this;
8383
}
8484

@@ -93,9 +93,7 @@ public void start(final BaseCallback<Authentication> callback) {
9393
@Override
9494
public void onSuccess(final Credentials credentials) {
9595
tokenInfoRequest
96-
.getParameterBuilder()
97-
.set(ID_TOKEN_KEY, credentials.getIdToken());
98-
tokenInfoRequest
96+
.addParameter(ID_TOKEN_KEY, credentials.getIdToken())
9997
.start(new BaseCallback<UserProfile>() {
10098
@Override
10199
public void onSuccess(UserProfile profile) {
@@ -125,8 +123,8 @@ public void onFailure(Auth0Exception error) {
125123
@Override
126124
public Authentication execute() throws Auth0Exception {
127125
Credentials credentials = credentialsRequest.execute();
128-
tokenInfoRequest.getParameterBuilder().set(ID_TOKEN_KEY, credentials.getIdToken());
129126
UserProfile profile = tokenInfoRequest
127+
.addParameter(ID_TOKEN_KEY, credentials.getIdToken())
130128
.execute();
131129
return new Authentication(profile, credentials);
132130
}

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

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ public class ChangePasswordRequest implements ParameterizableRequest<Void> {
4242

4343
ChangePasswordRequest(ParameterizableRequest<Void> request) {
4444
this.request = request;
45-
request.getParameterBuilder();
4645
}
4746

4847
/**
@@ -52,18 +51,20 @@ public class ChangePasswordRequest implements ParameterizableRequest<Void> {
5251
* @return itself
5352
*/
5453
public ChangePasswordRequest setNewPassword(String newPassword) {
55-
request.getParameterBuilder().set(PASSWORD_KEY, newPassword);
54+
request.addParameter(PASSWORD_KEY, newPassword);
55+
return this;
56+
}
57+
58+
@Override
59+
public ChangePasswordRequest addParameters(Map<String, Object> parameters) {
60+
request.addParameters(parameters);
5661
return this;
5762
}
5863

59-
/**
60-
* Getter for this request ParameterBuilder.
61-
*
62-
* @return the associated ParameterBuilder instance
63-
*/
6464
@Override
65-
public ParameterBuilder getParameterBuilder() {
66-
return request.getParameterBuilder();
65+
public ChangePasswordRequest addParameter(String name, Object value) {
66+
request.addParameter(name, value);
67+
return this;
6768
}
6869

6970
/**

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

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,19 +53,14 @@ public class DelegationRequest<T> implements Request<T> {
5353
this.request = request;
5454
}
5555

56-
private DelegationRequest<T> addParameter(String key, Object value) {
57-
request.getParameterBuilder().set(key, value);
58-
return this;
59-
}
60-
6156
/**
6257
* Add additional parameters to be sent in the request
6358
*
6459
* @param parameters as a non-null dictionary
6560
* @return itself
6661
*/
6762
public DelegationRequest<T> addParameters(Map<String, Object> parameters) {
68-
request.getParameterBuilder().addAll(parameters);
63+
request.addParameters(parameters);
6964
return this;
7065
}
7166

@@ -76,7 +71,8 @@ public DelegationRequest<T> addParameters(Map<String, Object> parameters) {
7671
* @return itself
7772
*/
7873
public DelegationRequest<T> setApiType(String apiType) {
79-
return addParameter(API_TYPE_KEY, apiType);
74+
request.addParameter(API_TYPE_KEY, apiType);
75+
return this;
8076
}
8177

8278
/**
@@ -86,7 +82,7 @@ public DelegationRequest<T> setApiType(String apiType) {
8682
* @return itself
8783
*/
8884
public DelegationRequest<T> setScope(String scope) {
89-
request.getParameterBuilder().setScope(scope);
85+
request.addParameter(ParameterBuilder.SCOPE_KEY, scope);
9086
return this;
9187
}
9288

@@ -97,7 +93,8 @@ public DelegationRequest<T> setScope(String scope) {
9793
* @return itself
9894
*/
9995
public DelegationRequest<T> setTarget(String target) {
100-
return addParameter(TARGET_KEY, target);
96+
request.addParameter(TARGET_KEY, target);
97+
return this;
10198
}
10299

103100
/**

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,14 @@ public class ParameterBuilder {
4040
public static final String SCOPE_OPENID = "openid";
4141
public static final String SCOPE_OFFLINE_ACCESS = "openid offline_access";
4242
public static final String ID_TOKEN_KEY = "id_token";
43+
public static final String SCOPE_KEY = "scope";
4344
public static final String REFRESH_TOKEN_KEY = "refresh_token";
45+
public static final String CONNECTION_KEY = "connection";
4446

4547
private static final String ACCESS_TOKEN_KEY = "access_token";
46-
private static final String CONNECTION_KEY = "connection";
4748
private static final String SEND_KEY = "send";
4849
private static final String CLIENT_ID_KEY = "client_id";
4950
private static final String GRANT_TYPE_KEY = "grant_type";
50-
private static final String SCOPE_KEY = "scope";
5151
private static final String DEVICE_KEY = "device";
5252

5353
private Map<String, Object> parameters;

0 commit comments

Comments
 (0)