1// 2// BranchEvent+RNBranch.m 3// Branch-SDK 4// 5// Created by Jimmy Dee on 11/28/17. 6// 7 8#import "BranchEvent+RNBranch.h" 9#import "NSObject+RNBranch.h" 10#import "RNBranchProperty.h" 11 12@implementation BranchEvent(RNBranch) 13 14+ (NSDictionary<NSString *,RNBranchProperty *> *)supportedProperties 15{ 16 static NSDictionary<NSString *, RNBranchProperty *> *_eventProperties; 17 static dispatch_once_t once = 0; 18 dispatch_once(&once, ^{ 19 _eventProperties = 20 @{ 21 @"transactionID": [RNBranchProperty propertyWithSetterSelector:@selector(setTransactionID:) type:NSString.class], 22 @"currency": [RNBranchProperty propertyWithSetterSelector:@selector(setCurrency:) type:NSString.class], 23 @"revenue": [RNBranchProperty propertyWithSetterSelector:@selector(setRevenueWithString:) type:NSString.class], 24 @"shipping": [RNBranchProperty propertyWithSetterSelector:@selector(setShippingWithString:) type:NSString.class], 25 @"tax": [RNBranchProperty propertyWithSetterSelector:@selector(setTaxWithString:) type:NSString.class], 26 @"coupon": [RNBranchProperty propertyWithSetterSelector:@selector(setCoupon:) type:NSString.class], 27 @"affiliation": [RNBranchProperty propertyWithSetterSelector:@selector(setAffiliation:) type:NSString.class], 28 @"description": [RNBranchProperty propertyWithSetterSelector:@selector(setEventDescription:) type:NSString.class], 29 @"searchQuery": [RNBranchProperty propertyWithSetterSelector:@selector(setSearchQuery:) type:NSString.class], 30 @"customData": [RNBranchProperty propertyWithSetterSelector:@selector(setCustomData:) type:NSDictionary.class], 31 @"alias": [RNBranchProperty propertyWithSetterSelector:@selector(setAlias:) type:NSString.class] 32 }; 33 }); 34 35 return _eventProperties; 36} 37 38- (instancetype)initWithName:(NSString *)eventName map:(NSDictionary *)map 39{ 40 self = [self initWithName:eventName]; 41 if (self) { 42 [self setSupportedPropertiesWithMap:map]; 43 } 44 return self; 45} 46 47- (void)setRevenueWithString:(NSString *)revenue 48{ 49 self.revenue = [NSDecimalNumber decimalNumberWithString:revenue]; 50} 51 52- (void)setShippingWithString:(NSString *)shipping 53{ 54 self.shipping = [NSDecimalNumber decimalNumberWithString:shipping]; 55} 56 57- (void)setTaxWithString:(NSString *)tax 58{ 59 self.tax = [NSDecimalNumber decimalNumberWithString:tax]; 60} 61 62@end 63