From 2bce1fcc211358c42906846bb94f934a49b24eff Mon Sep 17 00:00:00 2001 From: akhiljain1907 Date: Mon, 18 Aug 2025 10:05:51 +0530 Subject: [PATCH 1/2] Optimize - Update Proposition with callback support (#496) * initial commit for update proposition api enhancement * fixed error on clicking update proposition due to null or undefined callback. * removed redundant code from RCTAEPOptimize.m * fixed callback signature in api call in Optimize.ts and updated tests * used separate callback for success and error case as native android sdk calls success and failure separately. * tests fix and removed callbacklog from testapp * fixed iOS bridge code to call both success and error callbacks and test update * fixed android bridge to use AdobeCallbackWithError to provide error callback with AEPoptimize error response * removed error parameter from createCallBackResponse * changed public api signature to pass onSuccess and onError as functions instead of objects * moved createCallbackResponse method from RCTAEPOptimizeModule to RCTAEPOptimizeUtil * sending propositions map directly instead of sending under response key in successCallback * added type for AEPOptimizeError and returned AEpOptimizeError type in errorCallback * fixed index.js --- .../app/OptimizeView.tsx | 20 +++- packages/optimize/__tests__/OptimizeTests.ts | 110 +++++++++++++++++- .../optimize/RCTAEPOptimizeModule.java | 31 ++++- .../optimize/RCTAEPOptimizeUtil.java | 41 +++++++ packages/optimize/ios/src/RCTAEPOptimize.m | 90 ++++++++++++-- packages/optimize/src/Optimize.ts | 32 ++++- packages/optimize/src/index.ts | 4 +- .../optimize/src/models/AEPOptimizeError.ts | 37 ++++++ 8 files changed, 343 insertions(+), 22 deletions(-) create mode 100644 packages/optimize/src/models/AEPOptimizeError.ts diff --git a/apps/AEPSampleAppNewArchEnabled/app/OptimizeView.tsx b/apps/AEPSampleAppNewArchEnabled/app/OptimizeView.tsx index a28ea79b8..a2a4ac3a0 100644 --- a/apps/AEPSampleAppNewArchEnabled/app/OptimizeView.tsx +++ b/apps/AEPSampleAppNewArchEnabled/app/OptimizeView.tsx @@ -73,7 +73,7 @@ export default () => { decisionScopeImage, decisionScopeHtml, decisionScopeJson, - decisionScopeTargetMbox, + decisionScopeTargetMbox ]; const optimizeExtensionVersion = async () => { @@ -87,6 +87,21 @@ export default () => { console.log('Updated Propositions'); }; + const testUpdatePropositionsCallback = () => { + console.log('Testing updatePropositions with callback...'); + Optimize.updatePropositions( + decisionScopes, + undefined, + undefined, + (response) => { + console.log('Callback received:', response); + }, + (error) => { + console.log('Error:', error); + } + ); + }; + const getPropositions = async () => { const propositions: Map = await Optimize.getPropositions(decisionScopes); @@ -329,6 +344,9 @@ export default () => {