// // PPDataCollector.m // PPDataCollector // // Copyright © 2015 PayPal, Inc. All rights reserved. // #import "PPDataCollector_Internal.h" #import "PPRMOCMagnesSDK.h" #import "PPRMOCMagnesResult.h" #if __has_include("PayPalUtils.h") #import "PPOTDevice.h" #import "PPOTVersion.h" #import "PPOTMacros.h" #import "PPOTURLSession.h" #else #import #import #import #import #endif @implementation PPDataCollector + (PPRMOCMagnesSDKResult *)generateMagnesResultWithClientMetadataID:(NSString *)clientMetadataID disableBeacon:(BOOL)disableBeacon data:(NSDictionary *)data { [[PPRMOCMagnesSDK shared] setUpEnvironment:LIVE withOptionalAppGuid:[PPOTDevice appropriateIdentifier] withOptionalAPNToken:nil disableRemoteConfiguration:NO disableBeacon:disableBeacon forMagnesSource:MAGNES_SOURCE_BRAINTREE]; return [[PPRMOCMagnesSDK shared] collectAndSubmitWithPayPalClientMetadataId:[clientMetadataID copy] withAdditionalData:data]; } + (NSString *)generateClientMetadataID:(NSString *)clientMetadataID disableBeacon:(BOOL)disableBeacon data:(NSDictionary *)data { PPRMOCMagnesSDKResult *result = [PPDataCollector generateMagnesResultWithClientMetadataID:clientMetadataID disableBeacon:disableBeacon data:data]; PPLog(@"ClientMetadataID: %@", [result getPayPalClientMetaDataId]); return [result getPayPalClientMetaDataId]; } + (NSString *)generateClientMetadataIDWithoutBeacon:(NSString *)clientMetadataID data:(NSDictionary *)data { return [PPDataCollector generateClientMetadataID:clientMetadataID disableBeacon:YES data:data]; } + (NSString *)generateClientMetadataID { return [PPDataCollector generateClientMetadataID:nil disableBeacon:NO data:nil]; } + (nonnull NSString *)clientMetadataID:(nullable NSString *)pairingID { return [PPDataCollector generateClientMetadataID:pairingID disableBeacon:NO data:nil]; } + (nonnull NSString *)clientMetadataID { return [self generateClientMetadataID]; } + (nonnull NSString *)collectPayPalDeviceData { NSMutableDictionary *dataDictionary = [NSMutableDictionary new]; NSString *payPalClientMetadataId = [PPDataCollector generateClientMetadataID]; if (payPalClientMetadataId) { dataDictionary[@"correlation_id"] = payPalClientMetadataId; } NSError *error; NSData *data = [NSJSONSerialization dataWithJSONObject:dataDictionary options:0 error:&error]; if (!data) { NSLog(@"ERROR: Failed to create deviceData string, error = %@", error); } return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; } + (PPRMOCMagnesSDKResult *)collectPayPalDeviceInfoWithClientMetadataID:(nullable NSString *)clientMetadataID { return [PPDataCollector generateMagnesResultWithClientMetadataID:clientMetadataID disableBeacon:NO data:nil]; } @end