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" ]];
52+ + (BootConfig *)bootConfig:(id )json {
53+ BootConfig *settings = [[BootConfig alloc ] init ];
54+ settings.pluginKey = [RCTConvert NSString: json[KEY_PLUGIN_KEY]];
55+ settings.memberHash = [RCTConvert NSString: json[KEY_MEMBER_HASH]];
56+ settings.hidePopup = json[KEY_HIDE_POPUP] == nil
57+ ? [RCTConvert BOOL: json[KEY_HIDE_DEFAULT_IN_APP_PUSH]] : [RCTConvert BOOL: json[KEY_HIDE_POPUP]];
58+ settings.trackDefaultEvent = json[KEY_TRACK_DEFAULT_EVENT] == nil
59+ ? [RCTConvert BOOL: json[KEY_ENABLED_TRACK_DEFAULT_EVENT]]
60+ : [RCTConvert BOOL: json[KEY_TRACK_DEFAULT_EVENT]];
61+
62+ if (json[KEY_LAUNCHER_CONFIG] == nil && json[KEY_CHANNEL_BUTTON_OPTION] != nil ) {
63+ settings.channelButtonOption = [RCTConvert channelButtonOption: json[KEY_CHANNEL_BUTTON_OPTION]];
64+ } else if (json[KEY_LAUNCHER_CONFIG] != nil && json[KEY_CHANNEL_BUTTON_OPTION] == nil ) {
65+ settings.channelButtonOption = [RCTConvert channelButtonOption: json[KEY_LAUNCHER_CONFIG]];
66+ }
67+
68+ if (json[KEY_MEMBER_ID] == nil && json[KEY_USER_ID] != nil ) {
69+ settings.memberId = [RCTConvert NSString: json[KEY_USER_ID]];
5970 } else {
60- settings.memberId = [RCTConvert NSString: json[@" memberId " ]];
71+ settings.memberId = [RCTConvert NSString: json[KEY_MEMBER_ID ]];
6172 }
6273
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 ;
74+ NSString *language = [RCTConvert NSString: json[KEY_LANGUAGE ]];
75+ NSString *locale = [RCTConvert NSString: json[KEY_LOCALE ]];
76+ if (json[KEY_LOCALE ] != nil ) {
77+ if ([locale isEqualToString: LANGUAGE_OPTION_KO ]) {
78+ settings.language = LanguageOptionKorean ;
79+ } else if ([locale isEqualToString: LANGUAGE_OPTION_JA ]) {
80+ settings.language = LanguageOptionJapanese ;
81+ } else if ([locale isEqualToString: LANGUAGE_OPTION_EN ]) {
82+ settings.language = LanguageOptionEnglish ;
7283 } else {
73- settings.language = CHLocaleDevice ;
84+ settings.language = LanguageOptionDevice ;
7485 }
7586 } 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 ;
87+ if ([language isEqualToString: LANGUAGE_OPTION_KO ]) {
88+ settings.language = LanguageOptionKorean ;
89+ } else if ([language isEqualToString: LANGUAGE_OPTION_JA ]) {
90+ settings.language = LanguageOptionJapanese ;
91+ } else if ([language isEqualToString: LANGUAGE_OPTION_EN ]) {
92+ settings.language = LanguageOptionEnglish ;
8293 } else {
83- settings.language = CHLocaleDevice ;
94+ settings.language = LanguageOptionDevice ;
8495 }
8596 }
97+
98+ if (json[KEY_PROFILE] != nil ) {
99+ settings.profile = [RCTConvert profile: json[KEY_PROFILE]];
100+ }
101+
86102 return settings;
87103}
88104
@@ -92,37 +108,27 @@ + (Profile *)profile:(NSDictionary *)json {
92108 }
93109
94110 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- }
111+ [json enumerateKeysAndObjectsUsingBlock: ^(id _Nonnull key, id obj, BOOL * _Nonnull stop) {
112+ [profile setWithPropertyKey: key value: obj];
107113 }];
108114
109115 return profile;
110116}
111117
112- + (LauncherConfig *)launcherConfig : (id )json {
118+ + (ChannelButtonOption *)channelButtonOption : (id )json {
113119 if (json == nil ) {
114120 return nil ;
115121 }
116122
117- LauncherConfig *config = [[LauncherConfig alloc ] init ];
123+ ChannelButtonOption *config = [[ChannelButtonOption alloc ] init ];
118124
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 ;
125+ config.xMargin = [RCTConvert float: json[CHANNEL_BUTTON_OPTION_X_MARGIN ]];
126+ config.yMargin = [RCTConvert float: json[CHANNEL_BUTTON_OPTION_Y_MARGIN ]];
127+ NSString *position = [RCTConvert NSString: json[CHANNEL_BUTTON_OPTION_POSITION] ];
128+ if ([position isEqualToString: CHANNEL_BUTTON_OPTION_POSITION_LEFT ]) {
129+ config.position = ChannelButtonPositionLeft ;
124130 } else {
125- config.position = LauncherPositionRight ;
131+ config.position = ChannelButtonPositionRight ;
126132 }
127133 return config;
128134}
0 commit comments