1111@implementation RCTConvert (ChannelIOEnums)
1212
1313RCT_ENUM_CONVERTER (
14- CHLocale ,
15- (@{@" ko " : @(CHLocaleKorean ),
16- @" en " : @(CHLocaleEnglish ),
17- @" ja " : @(CHLocaleJapanese ),
18- @" device " : @(CHLocaleDevice )
14+ LanguageOption ,
15+ (@{LANGUAGE_OPTION_KO : @(LanguageOptionKorean ),
16+ LANGUAGE_OPTION_EN : @(LanguageOptionEnglish ),
17+ LANGUAGE_OPTION_JA : @(LanguageOptionJapanese ),
18+ LANGUAGE_OPTION_DEVICE : @(LanguageOptionDevice )
1919 }),
20- CHLocaleDevice ,
20+ LanguageOptionDevice ,
2121 integerValue
2222)
2323
2424RCT_ENUM_CONVERTER(
25- ChannelPluginCompletionStatus,
26- (@{@" SUCCESS" : @(ChannelPluginCompletionStatusSuccess),
27- @" UNKNOWN_ERROR" : @(ChannelPluginCompletionStatusUnknown),
28- @" ACCESS_DENIED" : @(ChannelPluginCompletionStatusAccessDenied),
29- @" NETWORK_TIMEOUT" : @(ChannelPluginCompletionStatusNetworkTimeout),
30- @" REQUIRE_PAYMENT" : @(ChannelPluginCompletionStatusRequirePayment),
31- @" NOT_INITIALIZED" : @(ChannelPluginCompletionStatusNotInitialized),
32- @" SERVICE_UNDER_CONSTRUCTION" : @(ChannelPluginCompletionStatusServiceUnderConstruction)
25+ BootStatus,
26+ (@{BOOT_STATUS_SUCCESS: @(BootStatusSuccess),
27+ BOOT_STATUS_NOT_INITIALIZED: @(BootStatusNotInitialized),
28+ BOOT_STATUS_NETWORK_TIMEOUT: @(BootStatusNetworkTimeout),
29+ BOOT_STATUS_NOT_AVAILABLE_VERSION: @(BootStatusNotAvailableVersion),
30+ BOOT_STATUS_SERVICE_UNDER_CONSTRUCTION: @(BootStatusServiceUnderConstruction),
31+ BOOT_STATUS_REQUIRE_PAYMENT: @(BootStatusRequirePayment),
32+ BOOT_STATUS_ACCESS_DENIED: @(BootStatusAccessDenied),
33+ BOOT_STATUS_UNKNOWN_ERROR: @(BootStatusUnknown)
3334 }),
34- ChannelPluginCompletionStatusNotInitialized ,
35+ BootStatusNotInitialized ,
3536 integerValue
3637)
3738
3839RCT_ENUM_CONVERTER(
39- LauncherPosition ,
40- (@{@" right " : @(LauncherPositionRight ),
41- @" left " : @(LauncherPositionLeft )
40+ ChannelButtonPosition ,
41+ (@{CHANNEL_BUTTON_OPTION_POSITION_RIGHT : @(ChannelButtonPositionRight ),
42+ CHANNEL_BUTTON_OPTION_POSITION_LEFT : @(ChannelButtonPositionLeft )
4243 }),
43- LauncherPositionRight ,
44+ ChannelButtonPositionRight ,
4445 integerValue
4546)
4647
4748@end
4849
4950@implementation RCTConvert (ChannelIO)
5051
51- + (ChannelPluginSettings *)settings:(id )json {
52- ChannelPluginSettings *settings = [[ChannelPluginSettings alloc ] init ];
53- settings.pluginKey = [RCTConvert NSString: json[@" pluginKey" ]];
54- settings.debugMode = [RCTConvert BOOL: json[@" debugMode" ]];
55- settings.hideDefaultInAppPush = [RCTConvert BOOL: json[@" hideDefaultInAppPush" ]];
56- settings.launcherConfig = [RCTConvert launcherConfig: json[@" launcherConfig" ]];
57- if ([json[@" memberId" ] length ] == 0 && [json[@" userId" ] length ] != 0 ) {
58- settings.memberId = [RCTConvert NSString: json[@" userId" ]];
59- } else {
60- settings.memberId = [RCTConvert NSString: json[@" memberId" ]];
52+ + (BootConfig *)bootConfig:(id )json {
53+ BootConfig *config = [[BootConfig alloc ] init ];
54+ config.pluginKey = [RCTConvert NSString: json[KEY_PLUGIN_KEY]];
55+ config.memberHash = [RCTConvert NSString: json[KEY_MEMBER_HASH]];
56+ config.hidePopup = json[KEY_HIDE_POPUP] != nil
57+ ? [RCTConvert BOOL: json[KEY_HIDE_POPUP]] : [RCTConvert BOOL: json[KEY_HIDE_DEFAULT_IN_APP_PUSH]];
58+ config.trackDefaultEvent = json[KEY_TRACK_DEFAULT_EVENT] != nil
59+ ? [RCTConvert BOOL: json[KEY_TRACK_DEFAULT_EVENT]] : [RCTConvert BOOL: json[KEY_ENABLED_TRACK_DEFAULT_EVENT]];
60+
61+ if (json[KEY_LAUNCHER_CONFIG] == nil && json[KEY_CHANNEL_BUTTON_OPTION] != nil ) {
62+ config.channelButtonOption = [RCTConvert channelButtonOption: json[KEY_CHANNEL_BUTTON_OPTION]];
63+ } else if (json[KEY_LAUNCHER_CONFIG] != nil && json[KEY_CHANNEL_BUTTON_OPTION] == nil ) {
64+ config.channelButtonOption = [RCTConvert channelButtonOption: json[KEY_LAUNCHER_CONFIG]];
65+ }
66+
67+ if (json[KEY_MEMBER_ID] != nil && json[KEY_USER_ID] == nil ) {
68+ config.memberId = [RCTConvert NSString: json[KEY_MEMBER_ID]];
69+ } else if (json[KEY_MEMBER_ID] == nil && json[KEY_USER_ID] != nil ) {
70+ config.memberId = [RCTConvert NSString: json[KEY_USER_ID]];
6171 }
6272
63- NSString *language = [RCTConvert NSString: json[@" language " ]];
64- NSString *locale = [RCTConvert NSString: json[@" locale " ]];
65- if (json[@" locale " ] != 0 ) {
66- if ([locale isEqualToString: @" ko " ]) {
67- settings .language = CHLocaleKorean ;
68- } else if ([locale isEqualToString: @" ja " ]) {
69- settings .language = CHLocaleJapanese ;
70- } else if ([locale isEqualToString: @" en " ]) {
71- settings .language = CHLocaleEnglish ;
73+ NSString *language = [RCTConvert NSString: json[KEY_LANGUAGE ]];
74+ NSString *locale = [RCTConvert NSString: json[KEY_LOCALE ]];
75+ if (json[KEY_LOCALE ] != nil ) {
76+ if ([locale isEqualToString: LANGUAGE_OPTION_KO ]) {
77+ config .language = LanguageOptionKorean ;
78+ } else if ([locale isEqualToString: LANGUAGE_OPTION_JA ]) {
79+ config .language = LanguageOptionJapanese ;
80+ } else if ([locale isEqualToString: LANGUAGE_OPTION_EN ]) {
81+ config .language = LanguageOptionEnglish ;
7282 } else {
73- settings .language = CHLocaleDevice ;
83+ config .language = LanguageOptionDevice ;
7484 }
7585 } else {
76- if ([language isEqualToString: @" ko " ]) {
77- settings .language = CHLocaleKorean ;
78- } else if ([language isEqualToString: @" ja " ]) {
79- settings .language = CHLocaleJapanese ;
80- } else if ([language isEqualToString: @" en " ]) {
81- settings .language = CHLocaleEnglish ;
86+ if ([language isEqualToString: LANGUAGE_OPTION_KO ]) {
87+ config .language = LanguageOptionKorean ;
88+ } else if ([language isEqualToString: LANGUAGE_OPTION_JA ]) {
89+ config .language = LanguageOptionJapanese ;
90+ } else if ([language isEqualToString: LANGUAGE_OPTION_EN ]) {
91+ config .language = LanguageOptionEnglish ;
8292 } else {
83- settings .language = CHLocaleDevice ;
93+ config .language = LanguageOptionDevice ;
8494 }
8595 }
86- return settings;
96+
97+ if (json[KEY_PROFILE] != nil ) {
98+ config.profile = [RCTConvert profile: json[KEY_PROFILE]];
99+ }
100+
101+ return config;
87102}
88103
89104+ (Profile *)profile : (NSDictionary *)json {
@@ -92,40 +107,29 @@ + (Profile *)profile:(NSDictionary *)json {
92107 }
93108
94109 Profile *profile = [[Profile alloc ] init ];
95- [profile setWithName: [RCTConvert NSString: json[@" name" ]]];
96- [profile setWithEmail: [RCTConvert NSString: json[@" email" ]]];
97- [profile setWithAvatarUrl: [RCTConvert NSString: json[@" avatarUrl" ]]];
98- [profile setWithMobileNumber: [RCTConvert NSString: json[@" mobileNumber" ]]];
99-
100- [json enumerateKeysAndObjectsUsingBlock: ^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
101- if (![key isEqual: @" name" ] &&
102- ![key isEqual: @" email" ] &&
103- ![key isEqual: @" avatarUrl" ] &&
104- ![key isEqual: @" mobileNumber" ]) {
105- [profile setWithPropertyKey: key value: obj];
106- }
110+ [json enumerateKeysAndObjectsUsingBlock: ^(id _Nonnull key, id obj, BOOL * _Nonnull stop) {
111+ [profile setWithPropertyKey: key value: obj];
107112 }];
108113
109114 return profile;
110115}
111116
112- + (LauncherConfig *)launcherConfig : (id )json {
117+ + (ChannelButtonOption *)channelButtonOption : (id )json {
113118 if (json == nil ) {
114119 return nil ;
115120 }
116121
117- LauncherConfig *config = [[LauncherConfig alloc ] init ];
122+ ChannelButtonOption *option = [[ChannelButtonOption alloc ] init ];
118123
119- config .xMargin = [RCTConvert float: json[@" xMargin " ]];
120- config .yMargin = [RCTConvert float: json[@" yMargin " ]];
121- NSString *position = [RCTConvert NSString: @" position " ];
122- if ([position isEqualToString: @" left " ]) {
123- config .position = LauncherPositionLeft ;
124+ option .xMargin = [RCTConvert float: json[CHANNEL_BUTTON_OPTION_X_MARGIN ]];
125+ option .yMargin = [RCTConvert float: json[CHANNEL_BUTTON_OPTION_Y_MARGIN ]];
126+ NSString *position = [RCTConvert NSString: json[CHANNEL_BUTTON_OPTION_POSITION] ];
127+ if ([position isEqualToString: CHANNEL_BUTTON_OPTION_POSITION_LEFT ]) {
128+ option .position = ChannelButtonPositionLeft ;
124129 } else {
125- config .position = LauncherPositionRight ;
130+ option .position = ChannelButtonPositionRight ;
126131 }
127- return config ;
132+ return option ;
128133}
129134
130135@end
131-
0 commit comments