Skip to content

Commit a8b707f

Browse files
committed
handle multiple entries in validation result map for subscription and in-app purchase
1 parent 7675278 commit a8b707f

1 file changed

Lines changed: 28 additions & 20 deletions

File tree

index.js

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -37,22 +37,26 @@ AppsFlyerPurchaseConnector.onSubscriptionValidationResultSuccess = (
3737
}
3838

3939
const subValidationSuccessListener =
40-
purchaseConnectorEventEmitter.addListener(
41-
AppsFlyerConstants.SUBSCRIPTION_VALIDATION_SUCCESS,
42-
(result) => {
43-
try {
44-
const firstEntryValue = Object.values(result)[0];
45-
const validationResult =
46-
SubscriptionValidationResult.fromJson(firstEntryValue);
47-
onSuccess(validationResult);
48-
} catch (error) {
49-
console.error(
50-
"Failed to parse subscription validation result:",
51-
error
52-
);
53-
}
40+
purchaseConnectorEventEmitter.addListener(
41+
AppsFlyerConstants.SUBSCRIPTION_VALIDATION_SUCCESS,
42+
(result) => {
43+
try {
44+
const parsedResults = Object.entries(result).reduce(
45+
(acc, [purchaseToken, validationResult]) => {
46+
acc[purchaseToken] = SubscriptionValidationResult.fromJson(validationResult);
47+
return acc;
48+
},
49+
{}
50+
);
51+
onSuccess(parsedResults);
52+
} catch (error) {
53+
console.error(
54+
"Failed to parse subscription validation results:",
55+
error
56+
);
5457
}
55-
);
58+
}
59+
);
5660

5761
pcEventsMap[AppsFlyerConstants.SUBSCRIPTION_VALIDATION_SUCCESS] =
5862
subValidationSuccessListener;
@@ -104,13 +108,17 @@ AppsFlyerPurchaseConnector.onInAppValidationResultSuccess = (onSuccess) => {
104108
AppsFlyerConstants.IN_APP_PURCHASE_VALIDATION_SUCCESS,
105109
(result) => {
106110
try {
107-
const firstEntryValue = Object.values(result)[0];
108-
const purchaseValidationResult =
109-
InAppPurchaseValidationResult.fromJson(firstEntryValue);
110-
onSuccess(purchaseValidationResult);
111+
const parsedResults = Object.entries(result).reduce(
112+
(acc, [purchaseToken, validationResult]) => {
113+
acc[purchaseToken] = InAppPurchaseValidationResult.fromJson(validationResult);
114+
return acc;
115+
},
116+
{}
117+
);
118+
onSuccess(parsedResults);
111119
} catch (error) {
112120
console.error(
113-
"Failed to handle in-app purchase validation result:",
121+
"Failed to handle in-app purchase validation results:",
114122
error
115123
);
116124
}

0 commit comments

Comments
 (0)