From 8f4d80e0084e55a91ba17660bab1354988cd81f7 Mon Sep 17 00:00:00 2001 From: "K.Ramesh" Date: Thu, 26 Jun 2025 15:01:45 +0530 Subject: [PATCH] fix: Update evenLogger signature to have completion handler (RMCCX-9260) --- Sources/REventLogger/EventLoggerModule.swift | 12 +++++++----- Sources/REventLogger/REventLogger.swift | 10 ++++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/Sources/REventLogger/EventLoggerModule.swift b/Sources/REventLogger/EventLoggerModule.swift index 49c8320..b933eef 100644 --- a/Sources/REventLogger/EventLoggerModule.swift +++ b/Sources/REventLogger/EventLoggerModule.swift @@ -35,7 +35,8 @@ final class REventLoggerModule { _ sourceVersion: String, _ errorCode: String, _ errorMessage: String, - _ info: [String: String]?) { + _ info: [String: String]?, + _ completion: (() -> Void?)? = nil) { if !isEventValid(sourceName, sourceVersion, errorCode, errorMessage) { Logger.debug("Event Logger event contains an empty parameter") @@ -57,22 +58,22 @@ final class REventLoggerModule { event.updateOccurrenceCount() } self?.eventsStorage.insertOrUpdateEvent(eventId, event: event) - self?.sendEventIfNeeded(eventType, eventId, event, isNewEvent) + self?.sendEventIfNeeded(eventType, eventId, event, isNewEvent, completion) } } - func sendEventIfNeeded(_ eventType: EventType, _ eventId: String, _ event: REvent, _ isNewEvent: Bool, maxEventCount: Int = REventConstants.maxEventCount) { + func sendEventIfNeeded(_ eventType: EventType, _ eventId: String, _ event: REvent, _ isNewEvent: Bool, maxEventCount: Int = REventConstants.maxEventCount, _ completion: (() -> Void?)? = nil) { // If full, send all of the events if eventsStorage.getEventCount() >= maxEventCount { sendAllEventsInStorage(deleteOldEventsOnFailure: isNewEvent) return } if isNewEvent && eventType == .critical { - sendCriticalEvent(eventId, event) + sendCriticalEvent(eventId, event, completion: completion) } } - func sendCriticalEvent(_ eventId: String, _ event: REvent) { + func sendCriticalEvent(_ eventId: String, _ event: REvent, completion: (() -> Void?)? = nil) { // Send the unique critical event immediately, and convert it to a warning type to prevent multiple alerts in server var criticalEvent = event eventsSender.sendEvents(events: [criticalEvent]) { result in @@ -83,6 +84,7 @@ final class REventLoggerModule { case .failure(let error): Logger.debug(error) } + completion?() } } diff --git a/Sources/REventLogger/REventLogger.swift b/Sources/REventLogger/REventLogger.swift index 398a05f..5f90b2e 100644 --- a/Sources/REventLogger/REventLogger.swift +++ b/Sources/REventLogger/REventLogger.swift @@ -65,9 +65,10 @@ public final class REventLogger { sourceVersion: String, errorCode: String, errorMessage: String, - info: [String: String]? = nil) { + info: [String: String]? = nil, + completion: (() -> Void?)? = nil) { if isConfigured { - eventLogger?.logEvent(EventType.critical, sourceName, sourceVersion, errorCode, errorMessage, info) + eventLogger?.logEvent(EventType.critical, sourceName, sourceVersion, errorCode, errorMessage, info, completion) } } @@ -83,9 +84,10 @@ public final class REventLogger { sourceVersion: String, errorCode: String, errorMessage: String, - info: [String: String]? = nil) { + info: [String: String]? = nil, + completion: (() -> Void?)? = nil) { if isConfigured { - eventLogger?.logEvent(EventType.warning, sourceName, sourceVersion, errorCode, errorMessage, info) + eventLogger?.logEvent(EventType.warning, sourceName, sourceVersion, errorCode, errorMessage, info, completion) } }