added identifier in requestparameters & correlationId

This commit is contained in:
Krishna Kishore Bandaru 2023-04-28 21:05:37 +05:30
parent 85f7096499
commit 3d1f1617c5
7 changed files with 15 additions and 11 deletions

View File

@ -44,6 +44,7 @@ open class ActionOpenPageHandler: MVMCoreJSONActionHandlerProtocol {
/// Adds client parameters and makes calls performRequest()
open func performRequestAddingClientParameters(with requestParameters: MVMCoreRequestParameters, model: ActionOpenPageModel, delegateObject: DelegateObject?, additionalData: [AnyHashable : Any]?) async throws -> MVMCoreLoadRequestOperation? {
let actionUUID = MVMCoreActionHandler.getUUID(additionalData: additionalData) ?? UUID().uuidString
requestParameters.identifier = actionUUID
if !requestParameters.backgroundRequest, let pageType = requestParameters.pageType {
MVMCoreLoggingHandler.shared()?.logCoreEvent(.pageStarted(pageType: pageType, requestUUID: actionUUID))
}

View File

@ -114,7 +114,7 @@
error.nativeDrivenErrorScreen = YES;
error.silentError = NO;
error.messageToDisplay = error.messageToDisplay ?: [MVMCoreGetterUtility hardcodedStringWithKey:HardcodedErrorUnableToProcess];
error.identifier = loadObject.identifier;
error.requestId = loadObject.identifier; //To track for errors due to invalid JSON or any errors thrown at viewcontroller level.
}
return error;
}

View File

@ -55,6 +55,9 @@
if (errorObject.messageToDisplay) {
[responseInfo setObject:errorObject.messageToDisplay forKey:KeyUserMessage];
}
if (errorObject.requestId) {
self.identifier = errorObject.requestId;
}
self.responseInfoMap = responseInfo;
}
return self;

View File

@ -156,7 +156,7 @@
MVMCoreRequestParameters *requestForMissingData = [MVMCoreLoadRequestOperation createRequestForDataWithLoadObject:loadObject];
if (!requestForMissingData) {
[[MVMCoreLoggingHandler sharedLoggingHandler] logPageLoadCompleteFor:loadObject.requestParameters.pageType serverProcessingTime:@"0" requestURL:loadObject.requestParameters.URL.absoluteString requestUUID:loadObject.identifier isFromCache:loadObject.pageDataFromCache];
[[MVMCoreLoggingHandler sharedLoggingHandler] logPageLoadCompleteFor:loadObject.requestParameters.pageType serverProcessingTime:@"0" requestURL:loadObject.requestParameters.URL.absoluteString requestUUID:loadObject.identifier isFromCache:loadObject.pageDataFromCache correlationId: nil];
// We have all the needed data, continue with the load.
[MVMCoreLoadRequestOperation handleLoadObject:loadObject error:nil];
@ -170,9 +170,10 @@
[MVMCoreLoadRequestOperation sendRequest:requestForMissingData loadObject:loadObject completionHandler:^(NSDictionary * _Nullable json) {
NSString *serverProcessTime = [(NSDictionary *)json objectChainOfKeysOrIndexes:@[@"ResponseInfo", @"timeStamp"]] ?: @"0";
NSString *correlationId = [(NSDictionary *)json objectChainOfKeysOrIndexes:@[@"ResponseInfo", @"correlationId"]];
if(!self.backgroundLoad && loadObject.requestParameters.pageType && serverProcessTime) {
[[MVMCoreLoggingHandler sharedLoggingHandler] logPageLoadCompleteFor:loadObject.requestParameters.pageType serverProcessingTime:serverProcessTime requestURL:loadObject.requestParameters.URL.absoluteString requestUUID:loadObject.identifier isFromCache:loadObject.pageDataFromCache];
[[MVMCoreLoggingHandler sharedLoggingHandler] logPageLoadCompleteFor:loadObject.requestParameters.pageType serverProcessingTime:serverProcessTime requestURL:loadObject.requestParameters.URL.absoluteString requestUUID:loadObject.identifier isFromCache:loadObject.pageDataFromCache correlationId:correlationId];
}
// Process the data retrieved from the server.
@ -309,11 +310,9 @@
// Error json not correct format.
MVMCoreErrorObject *errorObject = [[MVMCoreLoadHandler sharedGlobal] errorForLoadObject:loadObject withTitle:[MVMCoreGetterUtility hardcodedStringWithKey:HardcodedErrorTitle] message:[MVMCoreGetterUtility hardcodedStringWithKey:HardcodedErrorCritical] code:ErrorCodeJSONNotDictionary domain:ErrorDomainSystem];
errorObject.identifier = loadObject.identifier;
[MVMCoreLoadRequestOperation loadAbortedWithError:errorObject loadObject:loadObject];
}
} else {
error.identifier = loadObject.identifier;
// Error with the request/response
[[MVMCoreLoadHandler sharedGlobal] attachLoadInformation:loadObject toError:error];
[MVMCoreLoadRequestOperation loadAbortedWithError:error loadObject:loadObject];

View File

@ -101,6 +101,9 @@ typedef NS_ENUM(NSInteger, MFLoadStyle) {
/// A flag for if it should be a background request or not.
@property (assign, nonatomic) BOOL backgroundRequest;
//Unique Identifier for event tracking
@property (nullable, strong, nonatomic) NSString *identifier;
// Creates an object with the given page type and extra parameters. Adds the extra parameters to the standard request parameters. Will add any modules needed by the page type by default.
- (nullable instancetype)initWithPageType:(nonnull NSString *)pageType extraParameters:(nullable NSDictionary *)extraParameters;

View File

@ -98,7 +98,8 @@ public enum MVMCoreEvent {
requestUUID: String,
serverProcessingTime: String,
requestURL: String,
isFromCache: Bool
isFromCache: Bool,
correlationId: String?
)
case pageProcessingComplete(
@ -170,8 +171,8 @@ extension MVMCoreLoggingHandler {
logCoreEvent(.pageLoadStarted(pageType: pageType, requestUUID: requestUUID, requestURL: requestURL))
}
@objc func logPageLoadComplete(for pageType: String, serverProcessingTime: String, requestURL: String, requestUUID: String, isFromCache: Bool) {
logCoreEvent(.pageLoadComplete(pageType: pageType, requestUUID: requestUUID, serverProcessingTime: serverProcessingTime, requestURL: requestURL, isFromCache: isFromCache))
@objc func logPageLoadComplete(for pageType: String, serverProcessingTime: String, requestURL: String, requestUUID: String, isFromCache: Bool, correlationId: String?) {
logCoreEvent(.pageLoadComplete(pageType: pageType, requestUUID: requestUUID, serverProcessingTime: serverProcessingTime, requestURL: requestURL, isFromCache: isFromCache, correlationId: correlationId))
}
@objc func logPageProcessingComplete(for pageType: String, requestUUID: String, webUrl: String?) {

View File

@ -28,9 +28,6 @@
@property (nonatomic, assign) NSInteger httpStatusCode;
@property (nullable, strong, nonatomic) NSDictionary *serverResponseInfo;
//Unique Identifier for event tracking
@property (nonatomic, nonatomic, nonnull) NSString *identifier;
// For the crash log.
@property (nullable, strong, nonatomic) NSDictionary *crashLog;