| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- #import "BTClientMetadata.h"
- @interface BTClientMetadata () {
- @protected
- BTClientMetadataIntegrationType _integration;
- BTClientMetadataSourceType _source;
- NSString *_sessionId;
- }
- @end
- @implementation BTClientMetadata
- - (instancetype)init {
- self = [super init];
- if (self) {
- _integration = BTClientMetadataIntegrationCustom;
- _source = BTClientMetadataSourceUnknown;
- _sessionId = [[[NSUUID UUID] UUIDString] stringByReplacingOccurrencesOfString:@"-" withString:@""];
- }
- return self;
- }
- - (id)copyWithZone:(NSZone *)zone {
- BTClientMetadata *copiedMetadata = [[BTClientMetadata allocWithZone:zone] init];
- copiedMetadata->_integration = _integration;
- copiedMetadata->_source = _source;
- copiedMetadata->_sessionId = [_sessionId copyWithZone:zone];
- return copiedMetadata;
- }
- - (id)mutableCopyWithZone:(NSZone *)zone {
- BTMutableClientMetadata *mutableMetadata = [[BTMutableClientMetadata allocWithZone:zone] init];
- mutableMetadata.integration = _integration;
- mutableMetadata.source = _source;
- mutableMetadata.sessionId = [_sessionId copyWithZone:zone];
- return mutableMetadata;
- }
- - (NSString *)integrationString {
- return [[self class] integrationToString:self.integration];
- }
- - (NSString *)sourceString {
- return [[self class] sourceToString:self.source];
- }
- - (NSDictionary *)parameters {
- return @{
- @"integration": self.integrationString,
- @"source": self.sourceString,
- @"sessionId": self.sessionId
- };
- }
- #pragma mark Internal helpers
- + (NSString *)integrationToString:(BTClientMetadataIntegrationType)integration {
- switch (integration) {
- case BTClientMetadataIntegrationCustom:
- return @"custom";
- case BTClientMetadataIntegrationDropIn:
- return @"dropin";
- case BTClientMetadataIntegrationDropIn2:
- return @"dropin2";
- case BTClientMetadataIntegrationUnknown:
- return @"unknown";
- }
- }
- + (NSString *)sourceToString:(BTClientMetadataSourceType)source {
- switch (source) {
- case BTClientMetadataSourcePayPalApp:
- return @"paypal-app";
- case BTClientMetadataSourcePayPalBrowser:
- return @"paypal-browser";
- case BTClientMetadataSourceVenmoApp:
- return @"venmo-app";
- case BTClientMetadataSourceForm:
- return @"form";
- case BTClientMetadataSourceUnknown:
- return @"unknown";
- }
- }
- @end
- @implementation BTMutableClientMetadata
- - (void)setIntegration:(BTClientMetadataIntegrationType)integration {
- _integration = integration;
- }
- - (void)setSource:(BTClientMetadataSourceType)source {
- _source = source;
- }
- - (void)setSessionId:(NSString *)sessionId {
- _sessionId = sessionId;
- }
- @end
|