Skip to content

Commit a2ce1a9

Browse files
committed
refactor: filter authorization details by type
1 parent 3fa7fb6 commit a2ce1a9

File tree

6 files changed

+10
-7
lines changed

6 files changed

+10
-7
lines changed

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,10 @@ void onSuccess(Rich consentDetails) {
242242
}
243243
```
244244

245-
Or, if you prefer to work with typed objects, you can pass a Class that has been annotated with `@AuthorizationDetailsType("[type]")`.
245+
Or, if you prefer to work with typed objects, you can use the filter helper passing a Class that has been annotated with `@AuthorizationDetailsType("[type]")`.
246+
247+
> [!WARNING]
248+
> When using the filter helper, you still need to check if there are other authorization details in the rich consent record to prevent the user giving consent to something they didn't see rendered.
246249
247250
```java
248251
@AuthorizationDetailsType("payment")
@@ -269,7 +272,7 @@ class PaymentDetails {
269272
void onSuccess(Rich consentDetails) {
270273
List<PaymentDetails> authorizationDetails = consentDetails
271274
.getRequestedDetails()
272-
.getAuthorizationDetails(PaymentDetails.class);
275+
.filterAuthorizationDetailsByType(PaymentDetails.class);
273276

274277
int amount = authorizationDetails.get(0).getAmount();
275278
...

app/src/main/java/com/auth0/guardian/sample/NotificationActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ private void updateUI() {
159159
} else {
160160
List<PaymentInitiationDetails> paymentInitiationDetailsList = richConsent
161161
.getRequestedDetails()
162-
.getAuthorizationDetails(PaymentInitiationDetails.class);
162+
.filterAuthorizationDetailsByType(PaymentInitiationDetails.class);
163163

164164
if (paymentInitiationDetailsList.isEmpty()) {
165165
fragment = ConsentBasicDetailsFragment.newInstance(

guardian/src/main/java/com/auth0/android/guardian/sdk/GuardianRichConsentRequestedDetails.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public List<Map<String, Object>> getAuthorizationDetails() {
7676
}
7777

7878
@Override
79-
public <T> List<T> getAuthorizationDetails(@NonNull Class<T> clazz) {
79+
public <T> List<T> filterAuthorizationDetailsByType(@NonNull Class<T> clazz) {
8080
List<T> types = new ArrayList<>();
8181

8282
if (!clazz.isAnnotationPresent(AuthorizationDetailsType.class)) {

guardian/src/main/java/com/auth0/android/guardian/sdk/RichConsentRequestedDetails.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,5 @@ public interface RichConsentRequestedDetails {
3636
* @param clazz Class annotated with @AuthorizationDetailsType to convert the item into.
3737
* @return The list of types found by the provided type. If none found, returns an empty list.
3838
*/
39-
<T> List<T> getAuthorizationDetails(@NonNull Class<T> clazz);
39+
<T> List<T> filterAuthorizationDetailsByType(@NonNull Class<T> clazz);
4040
}

guardian/src/test/java/com/auth0/android/guardian/sdk/GuardianRichConsentRequestedDetailsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public void shouldHaveCorrectData() {
4040

4141
@Test(expected = GuardianException.class)
4242
public void getAuthorizationDetailsShouldFailWhenUsedWithANonAnnotatedType() {
43-
subject.getAuthorizationDetails(NotAnnotatedPaymentIntentTestingAuthorizationDetailsType.class);
43+
subject.filterAuthorizationDetailsByType(NotAnnotatedPaymentIntentTestingAuthorizationDetailsType.class);
4444
}
4545

4646
}

guardian/src/test/java/com/auth0/android/guardian/sdk/RichConsentsAPIClientTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public void shouldFetchRichConsentWithRichAuthorizationDetails() throws Exceptio
131131

132132
PaymentIntentTestingAuthorizationDetailsType paymentIntent = capturedRichConsent
133133
.getRequestedDetails()
134-
.getAuthorizationDetails(PaymentIntentTestingAuthorizationDetailsType.class)
134+
.filterAuthorizationDetailsByType(PaymentIntentTestingAuthorizationDetailsType.class)
135135
.get(0);
136136

137137
assertThat(paymentIntent, is(notNullValue()));

0 commit comments

Comments
 (0)