UNPKG

4.44 kBPlain TextView Raw
1//
2// BranchContentMetadata+RNBranch.m
3// Branch-SDK
4//
5// Created by Jimmy Dee on 12/6/17.
6//
7
8#import "BranchContentMetadata+RNBranch.h"
9#import "NSObject+RNBranch.h"
10#import "RNBranchProperty.h"
11
12@implementation BranchContentMetadata(RNBranch)
13
14+ (NSDictionary<NSString *,RNBranchProperty *> *)supportedProperties
15{
16 static NSDictionary<NSString *, RNBranchProperty *> *_properties;
17 static dispatch_once_t once = 0;
18 dispatch_once(&once, ^{
19 _properties =
20 @{
21 @"contentSchema": [RNBranchProperty propertyWithSetterSelector:@selector(setContentSchema:) type:NSString.class],
22 @"quantity": [RNBranchProperty propertyWithSetterSelector:@selector(setQuantityWithNumber:) type:NSNumber.class],
23 @"price": [RNBranchProperty propertyWithSetterSelector:@selector(setPriceWithString:) type:NSString.class],
24 @"currency": [RNBranchProperty propertyWithSetterSelector:@selector(setCurrency:) type:NSString.class],
25 @"sku": [RNBranchProperty propertyWithSetterSelector:@selector(setSku:) type:NSString.class],
26 @"productName": [RNBranchProperty propertyWithSetterSelector:@selector(setProductName:) type:NSString.class],
27 @"productBrand": [RNBranchProperty propertyWithSetterSelector:@selector(setProductBrand:) type:NSString.class],
28 @"productCategory": [RNBranchProperty propertyWithSetterSelector:@selector(setProductCategory:) type:NSString.class],
29 @"productVariant": [RNBranchProperty propertyWithSetterSelector:@selector(setProductVariant:) type:NSString.class],
30 @"condition": [RNBranchProperty propertyWithSetterSelector:@selector(setCondition:) type:NSString.class],
31 @"ratingAverage": [RNBranchProperty propertyWithSetterSelector:@selector(setRatingAverageWithNumber:) type:NSNumber.class],
32 @"ratingCount": [RNBranchProperty propertyWithSetterSelector:@selector(setRatingCountWithNumber:) type:NSNumber.class],
33 @"ratingMax": [RNBranchProperty propertyWithSetterSelector:@selector(setRatingMaxWithNumber:) type:NSNumber.class],
34 @"addressStreet": [RNBranchProperty propertyWithSetterSelector:@selector(setAddressStreet:) type:NSString.class],
35 @"addressCity": [RNBranchProperty propertyWithSetterSelector:@selector(setAddressCity:) type:NSString.class],
36 @"addressRegion": [RNBranchProperty propertyWithSetterSelector:@selector(setAddressRegion:) type:NSString.class],
37 @"addressCountry": [RNBranchProperty propertyWithSetterSelector:@selector(setAddressCountry:) type:NSString.class],
38 @"addressPostalCode": [RNBranchProperty propertyWithSetterSelector:@selector(setAddressPostalCode:) type:NSString.class],
39 @"latitude": [RNBranchProperty propertyWithSetterSelector:@selector(setLatitudeWithNumber:) type:NSNumber.class],
40 @"longitude": [RNBranchProperty propertyWithSetterSelector:@selector(setLongitudeWithNumber:) type:NSNumber.class],
41 @"imageCaptions": [RNBranchProperty propertyWithSetterSelector:@selector(setImageCaptionsWithArray:) type:NSArray.class],
42 @"customMetadata": [RNBranchProperty propertyWithSetterSelector:@selector(setCustomMetadataWithDictionary:) type:NSDictionary.class]
43 };
44 });
45
46 return _properties;
47}
48
49- (instancetype)initWithMap:(NSDictionary *)map
50{
51 self = [self init];
52 if (self) {
53 [self setSupportedPropertiesWithMap:map];
54 }
55 return self;
56}
57
58- (void)setQuantityWithNumber:(NSNumber *)quantity
59{
60 self.quantity = quantity.doubleValue;
61}
62
63- (void)setPriceWithString:(NSString *)price
64{
65 self.price = [NSDecimalNumber decimalNumberWithString:price];
66}
67
68- (void)setRatingAverageWithNumber:(NSNumber *)ratingAverage
69{
70 self.ratingAverage = ratingAverage.doubleValue;
71}
72
73- (void)setRatingCountWithNumber:(NSNumber *)ratingCount
74{
75 self.ratingCount = ratingCount.integerValue;
76}
77
78- (void)setRatingMaxWithNumber:(NSNumber *)ratingMax
79{
80 self.ratingMax = ratingMax.doubleValue;
81}
82
83- (void)setLatitudeWithNumber:(NSNumber *)latitude
84{
85 self.latitude = latitude.doubleValue;
86}
87
88- (void)setLongitudeWithNumber:(NSNumber *)longitude
89{
90 self.longitude = longitude.doubleValue;
91}
92
93- (void)setImageCaptionsWithArray:(NSArray *)imageCaptions
94{
95 self.imageCaptions = imageCaptions.mutableCopy;
96}
97
98- (void)setCustomMetadataWithDictionary:(NSDictionary *)customMetadata
99{
100 self.customMetadata = customMetadata.mutableCopy;
101}
102
103@end