fidel-react-native 1.6.4 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -51
- package/README.md +4 -378
- package/android/build.gradle +12 -8
- package/android/jacoco.gradle +2 -2
- package/android/src/main/java/com/fidelreactlibrary/FidelModule.java +61 -44
- package/android/src/main/java/com/fidelreactlibrary/FidelPackage.java +64 -49
- package/android/src/main/java/com/fidelreactlibrary/adapters/CardVerificationConfigurationProperties.java +22 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelCardSchemesAdapter.java +46 -29
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelCardVerificationChoiceAdapter.java +57 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelCountryAdapter.java +47 -19
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelProgramTypeAdapter.java +46 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelSetupAdapter.java +108 -6
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelSetupProperties.java +67 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelVerificationConfigurationAdapter.java +35 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/ImageFromReadableMapAdapter.java +5 -1
- package/android/src/main/java/com/fidelreactlibrary/adapters/ResultsAdapter.java +288 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/CardSchemesAdapter.java +6 -2
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/CardVerificationChoiceAdapter.java +11 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/CountryAdapter.java +14 -3
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/DataAdapter.java +5 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/ProgramTypeAdapter.java +11 -0
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/VerificationConfigurationAdapter.java +9 -0
- package/android/src/main/java/com/fidelreactlibrary/events/BridgeLibraryEvent.java +17 -0
- package/android/src/main/java/com/fidelreactlibrary/events/BridgeLibraryEventEmitter.java +24 -0
- package/android/src/main/java/com/fidelreactlibrary/events/CardVerificationChoiceObserver.java +29 -0
- package/android/src/main/java/com/fidelreactlibrary/events/CardVerificationStartedObserver.java +31 -0
- package/android/src/main/java/com/fidelreactlibrary/events/ResultsObserver.java +72 -0
- package/android/src/test/java/com/fidelreactlibrary/FidelModuleTests.java +50 -31
- package/android/src/test/java/com/fidelreactlibrary/FidelPackageTests.java +0 -1
- package/android/src/test/java/com/fidelreactlibrary/{FidelCardSchemesAdapterTests.java → adapters/FidelCardSchemesAdapterTests.java} +51 -47
- package/android/src/test/java/com/fidelreactlibrary/adapters/FidelCardVerificationChoiceAdapterTest.java +70 -0
- package/android/src/test/java/com/fidelreactlibrary/adapters/FidelCountryAdapterTests.java +157 -0
- package/android/src/test/java/com/fidelreactlibrary/adapters/FidelProgramTypeAdapterTests.java +54 -0
- package/android/src/test/java/com/fidelreactlibrary/adapters/FidelSetupAdapterTests.java +900 -0
- package/android/src/test/java/com/fidelreactlibrary/adapters/FidelVerificationConfigurationAdapterTest.java +51 -0
- package/android/src/test/java/com/fidelreactlibrary/adapters/ResultsAdapterTests.java +74 -0
- package/android/src/test/java/com/fidelreactlibrary/{ErrorEventEmitterTests.java → events/BridgeLibraryEventEmitterTests.java} +18 -7
- package/android/src/test/java/com/fidelreactlibrary/events/BridgeLibraryEventTests.java +17 -0
- package/android/src/test/java/com/fidelreactlibrary/events/CardVerificationStartedObserverTests.java +49 -0
- package/android/src/test/java/com/fidelreactlibrary/events/ResultsObserverTests.java +38 -0
- package/android/src/test/java/com/fidelreactlibrary/fakes/CardSchemeAdapterStub.java +17 -6
- package/android/src/test/java/com/fidelreactlibrary/fakes/ConstantsProviderStub.java +2 -2
- package/android/src/test/java/com/fidelreactlibrary/fakes/CountryAdapterStub.java +25 -10
- package/android/src/test/java/com/fidelreactlibrary/fakes/{DataConverterStub.java → DataAdapterStub.java} +3 -3
- package/android/src/test/java/com/fidelreactlibrary/fakes/ProgramTypeAdapterStub.java +31 -0
- package/android/src/test/java/com/fidelreactlibrary/fakes/ReactContextMock.java +1 -1
- package/android/src/test/java/com/fidelreactlibrary/fakes/ReadableArrayStub.java +82 -0
- package/android/src/test/java/com/fidelreactlibrary/fakes/ReadableMapStub.java +175 -40
- package/android/src/test/java/com/fidelreactlibrary/fakes/VerificationConfigurationAdapterStub.java +13 -0
- package/fidel-react-native.podspec +1 -1
- package/index.js +78 -19
- package/ios/Adapters/CardSchemesAdapter.swift +13 -0
- package/ios/Adapters/ConsentDetailsAdapter.swift +19 -0
- package/ios/Adapters/EnrollmentResultAdapter.swift +28 -0
- package/ios/Adapters/ErrorResultAdapter.swift +71 -0
- package/ios/{FLRNImageAdapter.h → Adapters/FLRNImageFromRNAdapter.h} +2 -3
- package/ios/Adapters/FidelSetupAdapter.swift +89 -0
- package/ios/Adapters/FidelVerificationConfigurationAdapter.swift +19 -0
- package/ios/Adapters/VerificationResultAdapter.swift +17 -0
- package/ios/CardVerificationConfigurationProperties.swift +14 -0
- package/ios/Constants/CardSchemeConstants.swift +38 -0
- package/ios/Constants/CardVerificationChoiceConstants.swift +24 -0
- package/ios/Constants/CountryConstants.swift +47 -0
- package/ios/Constants/EnrollmentErrorTypeConstants.swift +25 -0
- package/ios/Constants/ErrorTypeConstants.swift +37 -0
- package/ios/Constants/ExportedConstantsProvider.swift +42 -0
- package/ios/Constants/ProgramTypeConstants.swift +30 -0
- package/ios/Constants/ResultTypeConstants.swift +35 -0
- package/ios/Constants/VerificationErrorTypeConstants.swift +29 -0
- package/ios/Events/BridgeLibraryEvent.swift +14 -0
- package/ios/Events/CardVerificationChoiceSelectedObserver.swift +23 -0
- package/ios/Events/CardVerificationStartedObserver.swift +21 -0
- package/ios/Events/EventObserver.swift +13 -0
- package/ios/Events/JSResultProperties.swift +15 -0
- package/ios/Events/JSResultTypes.swift +14 -0
- package/ios/Events/ResultsObserver.swift +37 -0
- package/ios/FidelSetupProperties.swift +33 -0
- package/ios/NativeFidelBridge.m +13 -0
- package/ios/NativeFidelBridge.swift +100 -0
- package/package.json +1 -4
- package/android/src/main/java/com/fidelreactlibrary/adapters/FidelOptionsAdapter.java +0 -121
- package/android/src/main/java/com/fidelreactlibrary/adapters/WritableMapDataConverter.java +0 -94
- package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/DataConverter.java +0 -5
- package/android/src/main/java/com/fidelreactlibrary/events/CallbackActivityEventListener.java +0 -64
- package/android/src/main/java/com/fidelreactlibrary/events/CallbackInput.java +0 -7
- package/android/src/main/java/com/fidelreactlibrary/events/ErrorEventEmitter.java +0 -22
- package/android/src/test/java/com/fidelreactlibrary/CallbackActivityEventListenerTests.java +0 -133
- package/android/src/test/java/com/fidelreactlibrary/FidelCountryAdapterTests.java +0 -74
- package/android/src/test/java/com/fidelreactlibrary/FidelOptionsAdapterTests.java +0 -414
- package/android/src/test/java/com/fidelreactlibrary/FidelSetupAdapterTests.java +0 -65
- package/android/src/test/java/com/fidelreactlibrary/WritableMapDataConverterTests.java +0 -186
- package/android/src/test/java/com/fidelreactlibrary/fakes/CallbackInputSpy.java +0 -12
- package/android/src/test/java/com/fidelreactlibrary/fakes/CallbackSpy.java +0 -18
- package/android/src/test/java/com/fidelreactlibrary/fakes/IntentMock.java +0 -20
- package/ios/FLRNCardSchemesAdapter.h +0 -16
- package/ios/FLRNCardSchemesFromJSAdapter.h +0 -14
- package/ios/FLRNCardSchemesFromJSAdapter.m +0 -39
- package/ios/FLRNConstantsProvider.h +0 -15
- package/ios/FLRNImageFromRNAdapter.h +0 -14
- package/ios/FLRNObjectToDictionaryAdapter.h +0 -15
- package/ios/FLRNOptionsAdapter.h +0 -24
- package/ios/FLRNOptionsAdapter.m +0 -133
- package/ios/FLRNRuntimeObjectToDictionaryAdapter.h +0 -14
- package/ios/FLRNRuntimeObjectToDictionaryAdapter.m +0 -36
- package/ios/FLRNSDKOptions.h +0 -24
- package/ios/FLRNSDKSetupOptions.h +0 -14
- package/ios/FLRNSetupAdapter.h +0 -17
- package/ios/FLRNSetupAdapter.m +0 -50
- package/ios/Fidel.h +0 -20
- package/ios/Fidel.m +0 -79
- package/ios/RCTConvert+CardScheme.h +0 -33
- package/ios/RCTConvert+Options.h +0 -52
- package/ios/RCTConvert+Options.m +0 -21
- /package/ios/{FLRNImageFromRNAdapter.m → Adapters/FLRNImageFromRNAdapter.m} +0 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
package com.fidelreactlibrary.adapters;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.Nullable;
|
|
4
|
+
|
|
5
|
+
import com.fidelapi.entities.CardVerificationConfiguration;
|
|
6
|
+
import com.fidelreactlibrary.adapters.abstraction.VerificationConfigurationAdapter;
|
|
7
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
8
|
+
|
|
9
|
+
public class FidelVerificationConfigurationAdapter implements VerificationConfigurationAdapter {
|
|
10
|
+
|
|
11
|
+
@Override
|
|
12
|
+
public CardVerificationConfiguration adapt(ReadableMap data) {
|
|
13
|
+
String id = "";
|
|
14
|
+
String consentId = "";
|
|
15
|
+
String last4Digits = null;
|
|
16
|
+
if (data != null) {
|
|
17
|
+
id = getStringParam(data, CardVerificationConfigurationProperties.ID, "");
|
|
18
|
+
consentId = getStringParam(data, CardVerificationConfigurationProperties.CONSENT_ID, "");
|
|
19
|
+
last4Digits = getStringParam(data, CardVerificationConfigurationProperties.LAST_4_DIGITS, null);
|
|
20
|
+
}
|
|
21
|
+
return new CardVerificationConfiguration(id, consentId, last4Digits);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
private static String getStringParam(ReadableMap data, CardVerificationConfigurationProperties key,
|
|
25
|
+
@Nullable String defaultValue) {
|
|
26
|
+
String value = defaultValue;
|
|
27
|
+
if (data.hasKey(key.jsName())) {
|
|
28
|
+
value = data.getString(key.jsName());
|
|
29
|
+
if (value == null) {
|
|
30
|
+
value = defaultValue;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
35
|
+
}
|
package/android/src/main/java/com/fidelreactlibrary/adapters/ImageFromReadableMapAdapter.java
CHANGED
|
@@ -27,7 +27,7 @@ import java.io.IOException;
|
|
|
27
27
|
public final class ImageFromReadableMapAdapter implements DataProcessor<ReadableMap> {
|
|
28
28
|
|
|
29
29
|
public DataOutput<Bitmap> bitmapOutput;
|
|
30
|
-
private Context context;
|
|
30
|
+
private final Context context;
|
|
31
31
|
|
|
32
32
|
public ImageFromReadableMapAdapter(Context context) {
|
|
33
33
|
this.context = context;
|
|
@@ -35,6 +35,10 @@ public final class ImageFromReadableMapAdapter implements DataProcessor<Readable
|
|
|
35
35
|
|
|
36
36
|
@Override
|
|
37
37
|
public void process(ReadableMap data) {
|
|
38
|
+
if (data == null || !data.hasKey("uri")) {
|
|
39
|
+
bitmapOutput.output(null);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
38
42
|
String imageURIString = data.getString("uri");
|
|
39
43
|
Uri imageURI = Uri.parse(imageURIString);
|
|
40
44
|
if (imageURI.getScheme() != null && (imageURI.getScheme().equals("http") ||
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
package com.fidelreactlibrary.adapters;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
import androidx.annotation.Nullable;
|
|
5
|
+
|
|
6
|
+
import com.facebook.react.bridge.WritableMap;
|
|
7
|
+
import com.fidelapi.entities.CardScheme;
|
|
8
|
+
import com.fidelapi.entities.Country;
|
|
9
|
+
import com.fidelapi.entities.EnrollmentErrorType;
|
|
10
|
+
import com.fidelapi.entities.FidelErrorType;
|
|
11
|
+
import com.fidelapi.entities.VerificationErrorType;
|
|
12
|
+
import com.fidelreactlibrary.adapters.abstraction.CardSchemesAdapter;
|
|
13
|
+
import com.fidelreactlibrary.adapters.abstraction.ConstantsProvider;
|
|
14
|
+
import com.fidelreactlibrary.adapters.abstraction.CountryAdapter;
|
|
15
|
+
import com.fidelreactlibrary.adapters.abstraction.DataAdapter;
|
|
16
|
+
import com.fidelreactlibrary.adapters.abstraction.ObjectFactory;
|
|
17
|
+
|
|
18
|
+
import org.json.JSONException;
|
|
19
|
+
import org.json.JSONObject;
|
|
20
|
+
|
|
21
|
+
import java.lang.reflect.Field;
|
|
22
|
+
import java.lang.reflect.Method;
|
|
23
|
+
import java.util.HashMap;
|
|
24
|
+
import java.util.Iterator;
|
|
25
|
+
import java.util.Map;
|
|
26
|
+
|
|
27
|
+
public final class ResultsAdapter implements DataAdapter<Object, WritableMap>, ConstantsProvider {
|
|
28
|
+
|
|
29
|
+
private final ObjectFactory<WritableMap> writableMapFactory;
|
|
30
|
+
private final CountryAdapter countryAdapter;
|
|
31
|
+
private final CardSchemesAdapter cardSchemesAdapter;
|
|
32
|
+
|
|
33
|
+
public ResultsAdapter(ObjectFactory<WritableMap> writableMapFactory,
|
|
34
|
+
CountryAdapter countryAdapter,
|
|
35
|
+
CardSchemesAdapter cardSchemesAdapter) {
|
|
36
|
+
this.writableMapFactory = writableMapFactory;
|
|
37
|
+
this.countryAdapter = countryAdapter;
|
|
38
|
+
this.cardSchemesAdapter = cardSchemesAdapter;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@Override
|
|
42
|
+
public WritableMap getAdaptedObjectFor(Object data) {
|
|
43
|
+
if (data == null) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
WritableMap map = writableMapFactory.create();
|
|
47
|
+
for (Field field: data.getClass().getDeclaredFields()) {
|
|
48
|
+
if (field.getType() == String.class) {
|
|
49
|
+
String fieldValue = null;
|
|
50
|
+
try {
|
|
51
|
+
fieldValue = (String)field.get(data);
|
|
52
|
+
} catch (Throwable e) {
|
|
53
|
+
String getterMethodName = String.format("get%s", field.getName());
|
|
54
|
+
for (Method method: data.getClass().getDeclaredMethods()) {
|
|
55
|
+
if (method.getName().toLowerCase().equals(getterMethodName) && method.getReturnType() == String.class) {
|
|
56
|
+
try {
|
|
57
|
+
fieldValue = (String)method.invoke(data);
|
|
58
|
+
} catch (Throwable ignored) {}
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (fieldValue != null) {
|
|
64
|
+
map.putString(field.getName(), fieldValue);
|
|
65
|
+
} else {
|
|
66
|
+
map.putNull(field.getName());
|
|
67
|
+
}
|
|
68
|
+
} else if (field.getType() == boolean.class || field.getType() == Boolean.class) {
|
|
69
|
+
try {
|
|
70
|
+
map.putBoolean(field.getName(), field.getBoolean(data));
|
|
71
|
+
} catch (Throwable e) {
|
|
72
|
+
map.putBoolean(field.getName(), false);
|
|
73
|
+
}
|
|
74
|
+
} else if (field.getType() == int.class) {
|
|
75
|
+
try {
|
|
76
|
+
map.putInt(field.getName(), field.getInt(data));
|
|
77
|
+
} catch (Throwable e) {
|
|
78
|
+
map.putInt(field.getName(), -1);
|
|
79
|
+
}
|
|
80
|
+
} else if (field.getType() == long.class) {
|
|
81
|
+
try {
|
|
82
|
+
map.putDouble(field.getName(), field.getLong(data));
|
|
83
|
+
} catch (Throwable e) {
|
|
84
|
+
map.putDouble(field.getName(), (long)-1);
|
|
85
|
+
}
|
|
86
|
+
} else if (field.getType() == JSONObject.class) {
|
|
87
|
+
try {
|
|
88
|
+
JSONObject jsonObject = (JSONObject)field.get(data);
|
|
89
|
+
WritableMap mapToPut = this.getMapFor(jsonObject);
|
|
90
|
+
map.putMap(field.getName(), mapToPut);
|
|
91
|
+
} catch (Throwable e) {
|
|
92
|
+
map.putNull(field.getName());
|
|
93
|
+
}
|
|
94
|
+
} else if (field.getType() == Country.class) {
|
|
95
|
+
try {
|
|
96
|
+
String countryValue = countryAdapter.jsCountryValue((Country)field.get(data));
|
|
97
|
+
map.putString(field.getName(), countryValue);
|
|
98
|
+
} catch (Throwable e) {
|
|
99
|
+
map.putNull(field.getName());
|
|
100
|
+
}
|
|
101
|
+
} else if (field.getType() == CardScheme.class) {
|
|
102
|
+
try {
|
|
103
|
+
String cardSchemeValue = cardSchemesAdapter.jsValue((CardScheme)field.get(data));
|
|
104
|
+
map.putString(field.getName(), cardSchemeValue);
|
|
105
|
+
} catch (Throwable e) {
|
|
106
|
+
map.putNull(field.getName());
|
|
107
|
+
}
|
|
108
|
+
} else if (field.getType() == FidelErrorType.class) {
|
|
109
|
+
try {
|
|
110
|
+
FidelErrorType errorType = (FidelErrorType) field.get(data);
|
|
111
|
+
String jsErrorType = getJSErrorType(errorType);
|
|
112
|
+
map.putString(field.getName(), jsErrorType);
|
|
113
|
+
String jsErrorSubtype = getJSErrorSubtype(errorType);
|
|
114
|
+
if (jsErrorSubtype != null) {
|
|
115
|
+
map.putString("subtype", jsErrorSubtype);
|
|
116
|
+
}
|
|
117
|
+
} catch (Throwable e) {
|
|
118
|
+
map.putString(field.getName(), "unknown");
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return map;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
@NonNull
|
|
126
|
+
private String getJSErrorType(FidelErrorType errorType) {
|
|
127
|
+
if (errorType == FidelErrorType.UserCanceled.INSTANCE) {
|
|
128
|
+
return "userCanceled";
|
|
129
|
+
} else if (errorType == FidelErrorType.DeviceNotSecure.INSTANCE) {
|
|
130
|
+
return "deviceNotSecure";
|
|
131
|
+
} else if (errorType == FidelErrorType.SdkConfigurationError.INSTANCE) {
|
|
132
|
+
return "sdkConfigurationError";
|
|
133
|
+
} else if (errorType instanceof FidelErrorType.EnrollmentError) {
|
|
134
|
+
return "enrollmentError";
|
|
135
|
+
} else if (errorType instanceof FidelErrorType.VerificationError) {
|
|
136
|
+
return "verificationError";
|
|
137
|
+
}
|
|
138
|
+
return "unknown";
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
@Nullable
|
|
142
|
+
private String getJSErrorSubtype(FidelErrorType errorType) {
|
|
143
|
+
if (errorType instanceof FidelErrorType.EnrollmentError) {
|
|
144
|
+
FidelErrorType.EnrollmentError enrollmentError = (FidelErrorType.EnrollmentError)errorType;
|
|
145
|
+
return enrollmentErrorTypeJSValue(enrollmentError.type);
|
|
146
|
+
} else if (errorType instanceof FidelErrorType.VerificationError) {
|
|
147
|
+
FidelErrorType.VerificationError verificationError = (FidelErrorType.VerificationError)errorType;
|
|
148
|
+
return verificationErrorTypeJSValue(verificationError.type);
|
|
149
|
+
}
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
private String enrollmentErrorTypeJSValue(EnrollmentErrorType enrollmentErrorType) {
|
|
154
|
+
switch (enrollmentErrorType) {
|
|
155
|
+
case CARD_ALREADY_EXISTS:
|
|
156
|
+
return "cardAlreadyExists";
|
|
157
|
+
case INVALID_PROGRAM_ID:
|
|
158
|
+
return "invalidProgramId";
|
|
159
|
+
case INVALID_SDK_KEY:
|
|
160
|
+
return "invalidSdkKey";
|
|
161
|
+
case INEXISTENT_PROGRAM:
|
|
162
|
+
return "inexistentProgram";
|
|
163
|
+
case CARD_CONSENT_ISSUER_PROCESSING_CHARGE_ERROR:
|
|
164
|
+
return "cardConsentIssuerProcessingChargeError";
|
|
165
|
+
case CARD_CONSENT_DUPLICATE_TRANSACTION_ERROR:
|
|
166
|
+
return "cardConsentDuplicateTransactionError";
|
|
167
|
+
case CARD_CONSENT_INSUFFICIENT_FUNDS_ERROR:
|
|
168
|
+
return "cardConsentInsufficientFundsError";
|
|
169
|
+
case CARD_CONSENT_PROCESSING_CHARGE_ERROR:
|
|
170
|
+
return "cardConsentProcessingChargeError";
|
|
171
|
+
case CARD_CONSENT_INCORRECT_CARD_DETAILS_ERROR:
|
|
172
|
+
return "cardConsentIncorrectCardDetailsError";
|
|
173
|
+
case CARD_CONSENT_CARD_LIMIT_EXCEEDED:
|
|
174
|
+
return "cardConsentCardLimitExceeded";
|
|
175
|
+
case CARD_CONSENT_ERROR_GENERIC:
|
|
176
|
+
return "cardConsentErrorGeneric";
|
|
177
|
+
case UNAUTHORIZED:
|
|
178
|
+
return "unauthorized";
|
|
179
|
+
case UNEXPECTED:
|
|
180
|
+
return "unexpected";
|
|
181
|
+
}
|
|
182
|
+
return "unexpected";
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
private String verificationErrorTypeJSValue(VerificationErrorType enrollmentErrorType) {
|
|
186
|
+
switch (enrollmentErrorType) {
|
|
187
|
+
case UNEXPECTED:
|
|
188
|
+
return "unexpected";
|
|
189
|
+
case UNAUTHORIZED:
|
|
190
|
+
return "unauthorized";
|
|
191
|
+
case INCORRECT_AMOUNT:
|
|
192
|
+
return "incorrectAmount";
|
|
193
|
+
case MAXIMUM_ATTEMPTS_REACHED:
|
|
194
|
+
return "maximumAttemptsReached";
|
|
195
|
+
case CARD_ALREADY_VERIFIED:
|
|
196
|
+
return "cardAlreadyVerified";
|
|
197
|
+
case CARD_NOT_FOUND:
|
|
198
|
+
return "cardNotFound";
|
|
199
|
+
case VERIFICATION_NOT_FOUND:
|
|
200
|
+
return "verificationNotFound";
|
|
201
|
+
case GENERIC_ERROR:
|
|
202
|
+
return "genericError";
|
|
203
|
+
}
|
|
204
|
+
return "unexpected";
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
@NonNull
|
|
208
|
+
@Override
|
|
209
|
+
public Map<String, Object> getConstants() {
|
|
210
|
+
Map<String, Object> errorConstants = new HashMap<>();
|
|
211
|
+
Map<String, String> errorTypeConstants = new HashMap<>();
|
|
212
|
+
putErrorTypeConstant(errorTypeConstants, FidelErrorType.UserCanceled.INSTANCE);
|
|
213
|
+
putErrorTypeConstant(errorTypeConstants, FidelErrorType.DeviceNotSecure.INSTANCE);
|
|
214
|
+
putErrorTypeConstant(errorTypeConstants, FidelErrorType.SdkConfigurationError.INSTANCE);
|
|
215
|
+
putErrorTypeConstant(errorTypeConstants, new FidelErrorType.EnrollmentError(EnrollmentErrorType.CARD_ALREADY_EXISTS));
|
|
216
|
+
putErrorTypeConstant(errorTypeConstants, new FidelErrorType.VerificationError(VerificationErrorType.CARD_ALREADY_VERIFIED));
|
|
217
|
+
errorConstants.put("ErrorType", errorTypeConstants);
|
|
218
|
+
|
|
219
|
+
Map<String, String> enrollmentErrorTypeConstants = new HashMap<>();
|
|
220
|
+
putEnrollmentErrorTypeConstant(enrollmentErrorTypeConstants, EnrollmentErrorType.CARD_ALREADY_EXISTS);
|
|
221
|
+
putEnrollmentErrorTypeConstant(enrollmentErrorTypeConstants, EnrollmentErrorType.INEXISTENT_PROGRAM);
|
|
222
|
+
putEnrollmentErrorTypeConstant(enrollmentErrorTypeConstants, EnrollmentErrorType.INVALID_PROGRAM_ID);
|
|
223
|
+
putEnrollmentErrorTypeConstant(enrollmentErrorTypeConstants, EnrollmentErrorType.INVALID_SDK_KEY);
|
|
224
|
+
putEnrollmentErrorTypeConstant(enrollmentErrorTypeConstants, EnrollmentErrorType.CARD_CONSENT_ISSUER_PROCESSING_CHARGE_ERROR);
|
|
225
|
+
putEnrollmentErrorTypeConstant(enrollmentErrorTypeConstants, EnrollmentErrorType.CARD_CONSENT_DUPLICATE_TRANSACTION_ERROR);
|
|
226
|
+
putEnrollmentErrorTypeConstant(enrollmentErrorTypeConstants, EnrollmentErrorType.CARD_CONSENT_INSUFFICIENT_FUNDS_ERROR);
|
|
227
|
+
putEnrollmentErrorTypeConstant(enrollmentErrorTypeConstants, EnrollmentErrorType.CARD_CONSENT_PROCESSING_CHARGE_ERROR);
|
|
228
|
+
putEnrollmentErrorTypeConstant(enrollmentErrorTypeConstants, EnrollmentErrorType.CARD_CONSENT_INCORRECT_CARD_DETAILS_ERROR);
|
|
229
|
+
putEnrollmentErrorTypeConstant(enrollmentErrorTypeConstants, EnrollmentErrorType.CARD_CONSENT_CARD_LIMIT_EXCEEDED);
|
|
230
|
+
putEnrollmentErrorTypeConstant(enrollmentErrorTypeConstants, EnrollmentErrorType.CARD_CONSENT_ERROR_GENERIC);
|
|
231
|
+
putEnrollmentErrorTypeConstant(enrollmentErrorTypeConstants, EnrollmentErrorType.UNAUTHORIZED);
|
|
232
|
+
putEnrollmentErrorTypeConstant(enrollmentErrorTypeConstants, EnrollmentErrorType.UNEXPECTED);
|
|
233
|
+
errorConstants.put("EnrollmentErrorType", enrollmentErrorTypeConstants);
|
|
234
|
+
|
|
235
|
+
Map<String, String> verificationErrorTypeConstants = new HashMap<>();
|
|
236
|
+
putVerificationErrorTypeConstant(verificationErrorTypeConstants, VerificationErrorType.GENERIC_ERROR);
|
|
237
|
+
putVerificationErrorTypeConstant(verificationErrorTypeConstants, VerificationErrorType.UNEXPECTED);
|
|
238
|
+
putVerificationErrorTypeConstant(verificationErrorTypeConstants, VerificationErrorType.CARD_ALREADY_VERIFIED);
|
|
239
|
+
putVerificationErrorTypeConstant(verificationErrorTypeConstants, VerificationErrorType.VERIFICATION_NOT_FOUND);
|
|
240
|
+
putVerificationErrorTypeConstant(verificationErrorTypeConstants, VerificationErrorType.MAXIMUM_ATTEMPTS_REACHED);
|
|
241
|
+
putVerificationErrorTypeConstant(verificationErrorTypeConstants, VerificationErrorType.INCORRECT_AMOUNT);
|
|
242
|
+
putVerificationErrorTypeConstant(verificationErrorTypeConstants, VerificationErrorType.UNAUTHORIZED);
|
|
243
|
+
putVerificationErrorTypeConstant(verificationErrorTypeConstants, VerificationErrorType.CARD_NOT_FOUND);
|
|
244
|
+
errorConstants.put("VerificationErrorType", verificationErrorTypeConstants);
|
|
245
|
+
return errorConstants;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
private void putErrorTypeConstant(Map<String, String> map, FidelErrorType errorType) {
|
|
249
|
+
String errorTypeJSValue = getJSErrorType(errorType);
|
|
250
|
+
map.put(errorTypeJSValue, errorTypeJSValue);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
private void putEnrollmentErrorTypeConstant(Map<String, String> map, EnrollmentErrorType errorType) {
|
|
254
|
+
String errorTypeJSValue = enrollmentErrorTypeJSValue(errorType);
|
|
255
|
+
map.put(errorTypeJSValue, errorTypeJSValue);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
private void putVerificationErrorTypeConstant(Map<String, String> map, VerificationErrorType errorType) {
|
|
259
|
+
String errorTypeJSValue = verificationErrorTypeJSValue(errorType);
|
|
260
|
+
map.put(errorTypeJSValue, errorTypeJSValue);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
private WritableMap getMapFor(JSONObject json) {
|
|
264
|
+
Iterator<String> jsonKeyIterator = json.keys();
|
|
265
|
+
WritableMap map = writableMapFactory.create();
|
|
266
|
+
while (jsonKeyIterator.hasNext()) {
|
|
267
|
+
String key = jsonKeyIterator.next();
|
|
268
|
+
try {
|
|
269
|
+
Object value = json.get(key);
|
|
270
|
+
Class<?> valueClass = value.getClass();
|
|
271
|
+
if (valueClass == String.class) {
|
|
272
|
+
map.putString(key, (String)value);
|
|
273
|
+
} else if (valueClass == Boolean.class) {
|
|
274
|
+
map.putBoolean(key, (boolean)value);
|
|
275
|
+
} else if (valueClass == Integer.class) {
|
|
276
|
+
map.putInt(key, (int)value);
|
|
277
|
+
} else if (valueClass == JSONObject.class) {
|
|
278
|
+
WritableMap mapToPut = this.getMapFor((JSONObject)value);
|
|
279
|
+
map.putMap(key, mapToPut);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
catch (JSONException e) {
|
|
283
|
+
e.printStackTrace();
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return map;
|
|
287
|
+
}
|
|
288
|
+
}
|
package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/CardSchemesAdapter.java
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
package com.fidelreactlibrary.adapters.abstraction;
|
|
2
2
|
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
import androidx.annotation.Nullable;
|
|
5
|
+
|
|
3
6
|
import com.facebook.react.bridge.ReadableArray;
|
|
4
|
-
import com.
|
|
7
|
+
import com.fidelapi.entities.CardScheme;
|
|
5
8
|
|
|
6
9
|
import java.util.Set;
|
|
7
10
|
|
|
8
11
|
public interface CardSchemesAdapter extends ConstantsProvider {
|
|
9
|
-
Set<
|
|
12
|
+
@NonNull Set<CardScheme> cardSchemesWithReadableArray(@Nullable ReadableArray cardSchemes);
|
|
13
|
+
@NonNull String jsValue(@NonNull CardScheme cardScheme);
|
|
10
14
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
package com.fidelreactlibrary.adapters.abstraction;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
|
|
5
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
6
|
+
import com.fidelapi.entities.CardVerificationChoice;
|
|
7
|
+
|
|
8
|
+
public interface CardVerificationChoiceAdapter {
|
|
9
|
+
|
|
10
|
+
ReadableMap adapt(@NonNull CardVerificationChoice cardVerificationChoice);
|
|
11
|
+
}
|
package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/CountryAdapter.java
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
package com.fidelreactlibrary.adapters.abstraction;
|
|
2
2
|
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
import androidx.annotation.Nullable;
|
|
5
|
+
|
|
3
6
|
import com.facebook.react.bridge.ReadableArray;
|
|
4
|
-
import com.
|
|
7
|
+
import com.fidelapi.entities.Country;
|
|
8
|
+
|
|
9
|
+
import java.util.Set;
|
|
5
10
|
|
|
6
11
|
public interface CountryAdapter extends ConstantsProvider {
|
|
7
|
-
|
|
8
|
-
|
|
12
|
+
@NonNull
|
|
13
|
+
Set<Country> parseAllowedCountries(@Nullable ReadableArray inputArray);
|
|
14
|
+
|
|
15
|
+
@Nullable
|
|
16
|
+
Country countryWithJSValue(String jsValue);
|
|
17
|
+
|
|
18
|
+
@NonNull
|
|
19
|
+
String jsCountryValue(@NonNull Country country);
|
|
9
20
|
}
|
package/android/src/main/java/com/fidelreactlibrary/adapters/abstraction/ProgramTypeAdapter.java
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
package com.fidelreactlibrary.adapters.abstraction;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
import androidx.annotation.Nullable;
|
|
5
|
+
|
|
6
|
+
import com.fidelapi.entities.ProgramType;
|
|
7
|
+
|
|
8
|
+
public interface ProgramTypeAdapter extends ConstantsProvider {
|
|
9
|
+
@NonNull
|
|
10
|
+
ProgramType parseProgramType(@Nullable String programType);
|
|
11
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
package com.fidelreactlibrary.adapters.abstraction;
|
|
2
|
+
|
|
3
|
+
import com.fidelapi.entities.CardVerificationConfiguration;
|
|
4
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
5
|
+
|
|
6
|
+
public interface VerificationConfigurationAdapter {
|
|
7
|
+
|
|
8
|
+
CardVerificationConfiguration adapt(ReadableMap data);
|
|
9
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
package com.fidelreactlibrary.events;
|
|
2
|
+
|
|
3
|
+
public enum BridgeLibraryEvent {
|
|
4
|
+
RESULT_AVAILABLE("ResultAvailable"),
|
|
5
|
+
CARD_VERIFICATION_STARTED("CardVerificationStarted"),
|
|
6
|
+
CARD_VERIFICATION_CHOICE("CardVerificationChoiceSelected");
|
|
7
|
+
|
|
8
|
+
private final String eventName;
|
|
9
|
+
|
|
10
|
+
BridgeLibraryEvent(String eventName) {
|
|
11
|
+
this.eventName = eventName;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
public String getEventName() {
|
|
15
|
+
return this.eventName;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
package com.fidelreactlibrary.events;
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
4
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
5
|
+
import com.facebook.react.modules.core.DeviceEventManagerModule.RCTDeviceEventEmitter;
|
|
6
|
+
import com.fidelreactlibrary.adapters.abstraction.DataProcessor;
|
|
7
|
+
|
|
8
|
+
public final class BridgeLibraryEventEmitter implements DataProcessor<ReadableMap> {
|
|
9
|
+
|
|
10
|
+
private final ReactApplicationContext reactContext;
|
|
11
|
+
private final BridgeLibraryEvent eventToEmit;
|
|
12
|
+
|
|
13
|
+
public BridgeLibraryEventEmitter(ReactApplicationContext reactContext, BridgeLibraryEvent eventToEmit) {
|
|
14
|
+
this.reactContext = reactContext;
|
|
15
|
+
this.eventToEmit = eventToEmit;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@Override
|
|
19
|
+
public void process(ReadableMap data) {
|
|
20
|
+
reactContext
|
|
21
|
+
.getJSModule(RCTDeviceEventEmitter.class)
|
|
22
|
+
.emit(eventToEmit.getEventName(), data);
|
|
23
|
+
}
|
|
24
|
+
}
|
package/android/src/main/java/com/fidelreactlibrary/events/CardVerificationChoiceObserver.java
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
package com.fidelreactlibrary.events;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
|
|
5
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
6
|
+
import com.facebook.react.bridge.WritableMap;
|
|
7
|
+
import com.fidelapi.entities.CardVerificationChoice;
|
|
8
|
+
import com.fidelapi.entities.abstraction.OnCardVerificationChoiceSelectedObserver;
|
|
9
|
+
import com.fidelapi.utils.FidelExperimental;
|
|
10
|
+
import com.fidelreactlibrary.adapters.abstraction.CardVerificationChoiceAdapter;
|
|
11
|
+
import com.fidelreactlibrary.adapters.abstraction.DataProcessor;
|
|
12
|
+
import com.fidelreactlibrary.adapters.abstraction.ObjectFactory;
|
|
13
|
+
|
|
14
|
+
@FidelExperimental
|
|
15
|
+
public class CardVerificationChoiceObserver implements OnCardVerificationChoiceSelectedObserver {
|
|
16
|
+
private final DataProcessor<ReadableMap> adaptedVerificationChoiceDetailsProcessor;
|
|
17
|
+
private final CardVerificationChoiceAdapter cardVerificationChoiceAdapter;
|
|
18
|
+
|
|
19
|
+
public CardVerificationChoiceObserver(DataProcessor<ReadableMap> adaptedVerificationChoiceDetailsProcessor,
|
|
20
|
+
CardVerificationChoiceAdapter cardVerificationChoiceAdapter) {
|
|
21
|
+
this.adaptedVerificationChoiceDetailsProcessor = adaptedVerificationChoiceDetailsProcessor;
|
|
22
|
+
this.cardVerificationChoiceAdapter = cardVerificationChoiceAdapter;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@Override
|
|
26
|
+
public void onCardVerificationChoiceSelected(@NonNull CardVerificationChoice cardVerificationChoice) {
|
|
27
|
+
adaptedVerificationChoiceDetailsProcessor.process(cardVerificationChoiceAdapter.adapt(cardVerificationChoice));
|
|
28
|
+
}
|
|
29
|
+
}
|
package/android/src/main/java/com/fidelreactlibrary/events/CardVerificationStartedObserver.java
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
package com.fidelreactlibrary.events;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
|
|
5
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
6
|
+
import com.facebook.react.bridge.WritableMap;
|
|
7
|
+
import com.fidelapi.entities.ConsentDetails;
|
|
8
|
+
import com.fidelapi.entities.abstraction.OnCardVerificationStartedObserver;
|
|
9
|
+
import com.fidelreactlibrary.adapters.abstraction.DataProcessor;
|
|
10
|
+
import com.fidelreactlibrary.adapters.abstraction.ObjectFactory;
|
|
11
|
+
|
|
12
|
+
public class CardVerificationStartedObserver implements OnCardVerificationStartedObserver {
|
|
13
|
+
|
|
14
|
+
private final DataProcessor<ReadableMap> adaptedConsentDetailsProcessor;
|
|
15
|
+
private final ObjectFactory<WritableMap> writableMapFactory;
|
|
16
|
+
|
|
17
|
+
public CardVerificationStartedObserver(DataProcessor<ReadableMap> adaptedConsentDetailsProcessor,
|
|
18
|
+
ObjectFactory<WritableMap> writableMapFactory) {
|
|
19
|
+
this.adaptedConsentDetailsProcessor = adaptedConsentDetailsProcessor;
|
|
20
|
+
this.writableMapFactory = writableMapFactory;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@Override
|
|
24
|
+
public void onCardVerificationStarted(@NonNull ConsentDetails consentDetails) {
|
|
25
|
+
WritableMap map = writableMapFactory.create();
|
|
26
|
+
map.putString("cardId", consentDetails.getCardId());
|
|
27
|
+
map.putString("consentId", consentDetails.getConsentId());
|
|
28
|
+
map.putString("programId", consentDetails.getProgramId());
|
|
29
|
+
adaptedConsentDetailsProcessor.process(map);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
package com.fidelreactlibrary.events;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
4
|
+
|
|
5
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
6
|
+
import com.facebook.react.bridge.WritableMap;
|
|
7
|
+
import com.fidelapi.entities.EnrollmentResult;
|
|
8
|
+
import com.fidelapi.entities.FidelError;
|
|
9
|
+
import com.fidelapi.entities.FidelResult;
|
|
10
|
+
import com.fidelapi.entities.VerificationResult;
|
|
11
|
+
import com.fidelapi.entities.abstraction.OnResultObserver;
|
|
12
|
+
import com.fidelreactlibrary.adapters.abstraction.ConstantsProvider;
|
|
13
|
+
import com.fidelreactlibrary.adapters.abstraction.DataAdapter;
|
|
14
|
+
import com.fidelreactlibrary.adapters.abstraction.DataProcessor;
|
|
15
|
+
import com.fidelreactlibrary.adapters.abstraction.ObjectFactory;
|
|
16
|
+
|
|
17
|
+
import java.util.HashMap;
|
|
18
|
+
import java.util.Map;
|
|
19
|
+
|
|
20
|
+
public final class ResultsObserver implements OnResultObserver, ConstantsProvider {
|
|
21
|
+
|
|
22
|
+
private final DataAdapter<Object, WritableMap> resultAdapter;
|
|
23
|
+
private final DataProcessor<ReadableMap> resultHandler;
|
|
24
|
+
private final ObjectFactory<WritableMap> writableMapFactory;
|
|
25
|
+
|
|
26
|
+
private final String ENROLLMENT_RESULT_TYPE = "EnrollmentResult";
|
|
27
|
+
private final String ERROR_RESULT_TYPE = "Error";
|
|
28
|
+
private final String VERIFICATION_RESULT_TYPE = "VerificationResult";
|
|
29
|
+
|
|
30
|
+
public ResultsObserver(DataAdapter<Object, WritableMap> resultAdapter,
|
|
31
|
+
DataProcessor<ReadableMap> resultHandler,
|
|
32
|
+
ObjectFactory<WritableMap> writableMapFactory) {
|
|
33
|
+
this.resultAdapter = resultAdapter;
|
|
34
|
+
this.resultHandler = resultHandler;
|
|
35
|
+
this.writableMapFactory = writableMapFactory;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@Override
|
|
39
|
+
public void onResultAvailable(FidelResult fidelResult) {
|
|
40
|
+
WritableMap resultMap = writableMapFactory.create();
|
|
41
|
+
String RESULT_TYPE_KEY = "type";
|
|
42
|
+
if (fidelResult instanceof FidelResult.Enrollment) {
|
|
43
|
+
EnrollmentResult enrollmentResult = ((FidelResult.Enrollment) fidelResult).getEnrollmentResult();
|
|
44
|
+
WritableMap adaptedObject = resultAdapter.getAdaptedObjectFor(enrollmentResult);
|
|
45
|
+
resultMap.putString(RESULT_TYPE_KEY, ENROLLMENT_RESULT_TYPE);
|
|
46
|
+
resultMap.putMap("enrollmentResult", adaptedObject);
|
|
47
|
+
} else if (fidelResult instanceof FidelResult.Verification) {
|
|
48
|
+
VerificationResult verificationResult = ((FidelResult.Verification) fidelResult).getVerificationResult();
|
|
49
|
+
WritableMap adaptedObject = resultAdapter.getAdaptedObjectFor(verificationResult);
|
|
50
|
+
resultMap.putString(RESULT_TYPE_KEY, VERIFICATION_RESULT_TYPE);
|
|
51
|
+
resultMap.putMap("verificationResult", adaptedObject);
|
|
52
|
+
} else {
|
|
53
|
+
resultMap.putString(RESULT_TYPE_KEY, ERROR_RESULT_TYPE);
|
|
54
|
+
FidelError error = ((FidelResult.Error) fidelResult).getError();
|
|
55
|
+
WritableMap adaptedError = resultAdapter.getAdaptedObjectFor(error);
|
|
56
|
+
resultMap.putMap("error", adaptedError);
|
|
57
|
+
}
|
|
58
|
+
resultHandler.process(resultMap);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@NonNull
|
|
62
|
+
@Override
|
|
63
|
+
public Map<String, Object> getConstants() {
|
|
64
|
+
final Map<String, Object> constants = new HashMap<>();
|
|
65
|
+
final Map<String, String> resultTypesMap = new HashMap<>();
|
|
66
|
+
resultTypesMap.put(ENROLLMENT_RESULT_TYPE, ENROLLMENT_RESULT_TYPE);
|
|
67
|
+
resultTypesMap.put(ERROR_RESULT_TYPE, ERROR_RESULT_TYPE);
|
|
68
|
+
resultTypesMap.put(VERIFICATION_RESULT_TYPE, VERIFICATION_RESULT_TYPE);
|
|
69
|
+
constants.put("ResultType", resultTypesMap);
|
|
70
|
+
return constants;
|
|
71
|
+
}
|
|
72
|
+
}
|