From 72d6b02cdeef54960670de02d66d2af701f88e49 Mon Sep 17 00:00:00 2001 From: "Rakshitha ." Date: Mon, 2 Mar 2026 10:02:18 +0530 Subject: [PATCH] MOEN-43438: Logout callback --- CHANGELOG.md | 6 ++++++ Sources/MoEngagePluginBase/MoEngagePluginBridge.swift | 7 ++++++- Sources/MoEngagePluginBase/MoEngagePluginConstants.swift | 1 + Sources/MoEngagePluginBase/MoEngagePluginUtils.swift | 8 +++++++- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d1142f..9377f8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# Release Date + +## Release Version + +- [patch] Added support for logout callback. + # 02-02-2026 ## 6.8.0 diff --git a/Sources/MoEngagePluginBase/MoEngagePluginBridge.swift b/Sources/MoEngagePluginBase/MoEngagePluginBridge.swift index 276c3b3..45c3899 100644 --- a/Sources/MoEngagePluginBase/MoEngagePluginBridge.swift +++ b/Sources/MoEngagePluginBase/MoEngagePluginBridge.swift @@ -147,7 +147,12 @@ import MoEngageInApps @objc public func resetUser(_ userAttribute: [String: Any]) { if let identifier = MoEngagePluginUtils.fetchIdentifierFromPayload(attribute: userAttribute) { - MoEngageSDKAnalytics.sharedInstance.resetUser(forAppID: identifier) + MoEngageSDKAnalytics.sharedInstance.resetUser { success in + let messageHandler = MoEngagePluginMessageDelegate.fetchMessageQueueHandler(identifier: identifier) + let message = MoEngagePluginUtils.fetchLogOutPayload(identifier: identifier) + messageHandler?.flushMessage(eventName: MoEngagePluginConstants.CallBackEvents.logOutCompleted, message: message) + } + } } diff --git a/Sources/MoEngagePluginBase/MoEngagePluginConstants.swift b/Sources/MoEngagePluginBase/MoEngagePluginConstants.swift index 099301f..09a2300 100644 --- a/Sources/MoEngagePluginBase/MoEngagePluginConstants.swift +++ b/Sources/MoEngagePluginBase/MoEngagePluginConstants.swift @@ -119,6 +119,7 @@ public struct MoEngagePluginConstants { public static let inAppSelfHandled = "MoEInAppCampaignSelfHandled" public static let pushTokenGenerated = "MoEPushTokenGenerated" public static let pushClicked = "MoEPushClicked" + public static let logOutCompleted = "MoELogoutComplete" } struct ExternalPluginBase { diff --git a/Sources/MoEngagePluginBase/MoEngagePluginUtils.swift b/Sources/MoEngagePluginBase/MoEngagePluginUtils.swift index 1fb49c0..abe6b0d 100644 --- a/Sources/MoEngagePluginBase/MoEngagePluginUtils.swift +++ b/Sources/MoEngagePluginBase/MoEngagePluginUtils.swift @@ -163,7 +163,13 @@ public class MoEngagePluginUtils { return campaignPayload } -} + + static func fetchLogOutPayload(identifier: String) -> [String: Any] { + return [MoEngagePluginConstants.General.platform: MoEngagePluginConstants.General.iOS, + MoEngagePluginConstants.General.accountMeta: createAccountPayload(identifier: identifier) + ] + } +} extension MoEngageInAppCampaign { func fetchInAppPaylaod() -> [String: Any] {