added identifier in requestparameters & correlationId
This commit is contained in:
parent
85f7096499
commit
3d1f1617c5
@ -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))
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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];
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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?) {
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user