Skip to content

Commit 8928247

Browse files
feat: Add MPRoktConfig Support (#10)
* feat: Add MPRoktConfig Support
1 parent 8c29f19 commit 8928247

2 files changed

Lines changed: 38 additions & 0 deletions

File tree

mParticle-Rokt/MPKitRokt.m

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ - (void)start {
8989
- (MPKitExecStatus *)executeWithViewName:(NSString * _Nullable)viewName
9090
attributes:(NSDictionary<NSString *, NSString *> * _Nonnull)attributes
9191
placements:(NSDictionary<NSString *, MPRoktEmbeddedView *> * _Nullable)placements
92+
config:(MPRoktConfig * _Nullable)mpRoktConfig
9293
callbacks:(MPRoktEventCallback * _Nullable)callbacks
9394
filteredUser:(FilteredMParticleUser * _Nonnull)filteredUser {
9495
NSDictionary<NSString *, NSString *> *mpAttributes = [filteredUser.userAttributes transformValuesToString];
@@ -109,9 +110,13 @@ - (MPKitExecStatus *)executeWithViewName:(NSString * _Nullable)viewName
109110
[finalAtt addEntriesFromDictionary:@{sandboxKey: attributes[sandboxKey]}];
110111
}
111112

113+
//Convert MPRoktConfig to RoktConfig
114+
RoktConfig *roktConfig = [MPKitRokt convertMPRoktConfig:mpRoktConfig];
115+
112116
[Rokt executeWithViewName:viewName
113117
attributes:finalAtt
114118
placements:[self confirmPlacements:placements]
119+
config:roktConfig
115120
onLoad:callbacks.onLoad
116121
onUnLoad:callbacks.onUnLoad
117122
onShouldShowLoadingIndicator:callbacks.onShouldShowLoadingIndicator
@@ -155,6 +160,25 @@ - (void)addIdentityAttributes:(NSMutableDictionary<NSString *, NSString *> * _Nu
155160
}
156161
}
157162

163+
+ (RoktConfig *)convertMPRoktConfig:(MPRoktConfig *)mpRoktConfig {
164+
if (mpRoktConfig != nil) {
165+
Builder *builder = [[Builder alloc] init];
166+
167+
if (mpRoktConfig.cacheDuration != nil) {
168+
CacheConfig *cacheConfig = [[CacheConfig alloc] initWithCacheDuration:mpRoktConfig.cacheDuration.doubleValue cacheAttributes:mpRoktConfig.cacheAttributes];
169+
builder = [builder cacheConfig:cacheConfig];
170+
}
171+
172+
builder = [builder colorMode:(ColorMode)mpRoktConfig.colorMode];
173+
174+
RoktConfig *config = [builder build];
175+
176+
return config;
177+
}
178+
179+
return nil;
180+
}
181+
158182
+ (NSString *)stringForIdentityType:(MPIdentity)identityType {
159183
switch (identityType) {
160184
case MPIdentityCustomerId:

mParticle_RoktTests/mParticle_RoktTests.m

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ - (MPKitExecStatus *)executeWithViewName:(NSString * _Nullable)viewName
1616
- (NSDictionary<NSString *, NSString *> *) filteredUserAttributes:(NSDictionary<NSString *, NSString *> * _Nonnull)attributes kitConfiguration:(MPKitConfiguration *)kitConfiguration;
1717

1818
- (void)addIdentityAttributes:(NSMutableDictionary<NSString *, NSString *> * _Nullable)attributes filteredUser:(FilteredMParticleUser * _Nonnull)filteredUser;
19+
20+
+ (RoktConfig *)convertMPRoktConfig:(MPRoktConfig *)mpRoktConfig;
1921

2022
@end
2123

@@ -278,4 +280,16 @@ - (void)testAddIdentityAttributesWithExistingAttributes {
278280
XCTAssertEqualObjects(passedAttributes[@"device_application_stamp"], @"Test DAS");
279281
}
280282

283+
- (void)testConvertMPRoktConfig {
284+
MPRoktConfig *mpConfig = [[MPRoktConfig alloc] init];
285+
mpConfig.colorMode = MPColorModeDark;
286+
mpConfig.cacheDuration = @(100);
287+
mpConfig.cacheAttributes = @{@"test": @"tested"};
288+
289+
// RoktConfig does not expose any of it's properties so we are only able to confirm that it was successfully initialized
290+
RoktConfig *roktConfig = [MPKitRokt convertMPRoktConfig:mpConfig];
291+
292+
XCTAssert(roktConfig);
293+
}
294+
281295
@end

0 commit comments

Comments
 (0)