PPDataCollector.m 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. //
  2. // PPDataCollector.m
  3. // PPDataCollector
  4. //
  5. // Copyright © 2015 PayPal, Inc. All rights reserved.
  6. //
  7. #import "PPDataCollector_Internal.h"
  8. #import "PPRMOCMagnesSDK.h"
  9. #import "PPRMOCMagnesResult.h"
  10. #if __has_include("PayPalUtils.h")
  11. #import "PPOTDevice.h"
  12. #import "PPOTVersion.h"
  13. #import "PPOTMacros.h"
  14. #import "PPOTURLSession.h"
  15. #else
  16. #import <PayPalUtils/PPOTDevice.h>
  17. #import <PayPalUtils/PPOTVersion.h>
  18. #import <PayPalUtils/PPOTMacros.h>
  19. #import <PayPalUtils/PPOTURLSession.h>
  20. #endif
  21. @implementation PPDataCollector
  22. + (PPRMOCMagnesSDKResult *)generateMagnesResultWithClientMetadataID:(NSString *)clientMetadataID disableBeacon:(BOOL)disableBeacon data:(NSDictionary *)data {
  23. [[PPRMOCMagnesSDK shared] setUpEnvironment:LIVE withOptionalAppGuid:[PPOTDevice appropriateIdentifier] withOptionalAPNToken:nil disableRemoteConfiguration:NO disableBeacon:disableBeacon forMagnesSource:MAGNES_SOURCE_BRAINTREE];
  24. return [[PPRMOCMagnesSDK shared] collectAndSubmitWithPayPalClientMetadataId:[clientMetadataID copy] withAdditionalData:data];
  25. }
  26. + (NSString *)generateClientMetadataID:(NSString *)clientMetadataID disableBeacon:(BOOL)disableBeacon data:(NSDictionary *)data {
  27. PPRMOCMagnesSDKResult *result = [PPDataCollector generateMagnesResultWithClientMetadataID:clientMetadataID disableBeacon:disableBeacon data:data];
  28. PPLog(@"ClientMetadataID: %@", [result getPayPalClientMetaDataId]);
  29. return [result getPayPalClientMetaDataId];
  30. }
  31. + (NSString *)generateClientMetadataIDWithoutBeacon:(NSString *)clientMetadataID data:(NSDictionary *)data {
  32. return [PPDataCollector generateClientMetadataID:clientMetadataID disableBeacon:YES data:data];
  33. }
  34. + (NSString *)generateClientMetadataID {
  35. return [PPDataCollector generateClientMetadataID:nil disableBeacon:NO data:nil];
  36. }
  37. + (nonnull NSString *)clientMetadataID:(nullable NSString *)pairingID {
  38. return [PPDataCollector generateClientMetadataID:pairingID disableBeacon:NO data:nil];
  39. }
  40. + (nonnull NSString *)clientMetadataID {
  41. return [self generateClientMetadataID];
  42. }
  43. + (nonnull NSString *)collectPayPalDeviceData {
  44. NSMutableDictionary *dataDictionary = [NSMutableDictionary new];
  45. NSString *payPalClientMetadataId = [PPDataCollector generateClientMetadataID];
  46. if (payPalClientMetadataId) {
  47. dataDictionary[@"correlation_id"] = payPalClientMetadataId;
  48. }
  49. NSError *error;
  50. NSData *data = [NSJSONSerialization dataWithJSONObject:dataDictionary options:0 error:&error];
  51. if (!data) {
  52. NSLog(@"ERROR: Failed to create deviceData string, error = %@", error);
  53. }
  54. return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  55. }
  56. + (PPRMOCMagnesSDKResult *)collectPayPalDeviceInfoWithClientMetadataID:(nullable NSString *)clientMetadataID
  57. {
  58. return [PPDataCollector generateMagnesResultWithClientMetadataID:clientMetadataID disableBeacon:NO data:nil];
  59. }
  60. @end