ouisys-engine 3.0.3 → 3.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/.babelrc +4 -8
  2. package/.eslintrc.js +1 -1
  3. package/.husky/pre-commit +4 -0
  4. package/.nvmrc +1 -1
  5. package/.prettierignore +2 -1
  6. package/.vscode/settings.json +1 -1
  7. package/README.md +2 -4
  8. package/dist/api/index.d.ts +5 -5
  9. package/dist/api/index.js +76 -76
  10. package/dist/common-types/AppThunk.d.ts +11 -12
  11. package/dist/common-types/IOptInFlowName.d.ts +1 -1
  12. package/dist/common-types/ITracker.js +1 -2
  13. package/dist/common-types/RemoteDataState.d.ts +4 -4
  14. package/dist/common-types/RemoteDataState.js +17 -17
  15. package/dist/flows/click2smsFlow.d.ts +2 -2
  16. package/dist/flows/moFlow.d.ts +2 -2
  17. package/dist/flows/moRedirFlow.d.ts +2 -2
  18. package/dist/flows/oneClickFlow.d.ts +2 -2
  19. package/dist/flows/pinFlow.d.ts +2 -2
  20. package/dist/flows/pinFlow.js +2 -0
  21. package/dist/flows/strategy.d.ts +8 -8
  22. package/dist/flows/ussdFlow.d.ts +2 -2
  23. package/dist/ips/tryGetIPRangeName.d.ts +1 -1
  24. package/dist/ips/tryGetIPRangeName.js +7 -5
  25. package/dist/jest.config.js +1 -1
  26. package/dist/pacman/index.d.ts +2 -2
  27. package/dist/pacman/index.js +41 -41
  28. package/dist/pacman/queryString.js +11 -9
  29. package/dist/reducers/click2smsFlow/Click2smsTypes.d.ts +19 -19
  30. package/dist/reducers/click2smsFlow/IClick2smsConstants.d.ts +1 -1
  31. package/dist/reducers/click2smsFlow/index.d.ts +2 -2
  32. package/dist/reducers/click2smsFlow/index.js +24 -24
  33. package/dist/reducers/click2smsFlow/utils.d.ts +1 -1
  34. package/dist/reducers/click2smsFlow/utils.js +30 -30
  35. package/dist/reducers/moFlow/IMoConstants.d.ts +1 -1
  36. package/dist/reducers/moFlow/MoTypes.d.ts +13 -13
  37. package/dist/reducers/moFlow/index.d.ts +3 -3
  38. package/dist/reducers/moFlow/index.js +27 -27
  39. package/dist/reducers/moFlow/utils.d.ts +1 -2
  40. package/dist/reducers/moFlow/utils.js +28 -26
  41. package/dist/reducers/moRedirFlow/IMoRedirConstants.d.ts +1 -1
  42. package/dist/reducers/moRedirFlow/MoRedirTypes.d.ts +13 -13
  43. package/dist/reducers/moRedirFlow/index.d.ts +3 -3
  44. package/dist/reducers/moRedirFlow/index.js +27 -27
  45. package/dist/reducers/moRedirFlow/utils.d.ts +1 -1
  46. package/dist/reducers/moRedirFlow/utils.js +17 -17
  47. package/dist/reducers/oneClickFlow/IOneClickConstants.d.ts +1 -1
  48. package/dist/reducers/oneClickFlow/OneClickTypes.d.ts +10 -10
  49. package/dist/reducers/oneClickFlow/index.d.ts +3 -3
  50. package/dist/reducers/oneClickFlow/index.js +75 -68
  51. package/dist/reducers/oneClickFlow/utils.d.ts +2 -2
  52. package/dist/reducers/oneClickFlow/utils.js +38 -38
  53. package/dist/reducers/pinFlow/IPinConstants.d.ts +1 -1
  54. package/dist/reducers/pinFlow/PinTypes.d.ts +23 -23
  55. package/dist/reducers/pinFlow/index.d.ts +3 -3
  56. package/dist/reducers/pinFlow/index.js +76 -76
  57. package/dist/reducers/pinFlow/utils.d.ts +1 -1
  58. package/dist/reducers/pinFlow/utils.js +61 -65
  59. package/dist/reducers/strategy/IStategyActionContants.d.ts +1 -1
  60. package/dist/reducers/strategy/StrategyTypes.d.ts +56 -56
  61. package/dist/reducers/strategy/index.d.ts +2 -2
  62. package/dist/reducers/strategy/index.js +99 -99
  63. package/dist/reducers/strategy/strategies/ask_mobile_number.d.ts +2 -2
  64. package/dist/reducers/strategy/strategies/ask_mobile_number.js +78 -78
  65. package/dist/reducers/strategy/strategies/ask_operator.d.ts +2 -2
  66. package/dist/reducers/strategy/strategies/ask_operator.js +64 -68
  67. package/dist/reducers/strategy/strategies/detect_operator_by_ip.d.ts +2 -2
  68. package/dist/reducers/strategy/strategies/detect_operator_by_ip.js +97 -97
  69. package/dist/reducers/strategy/strategies/header_enrichment.d.ts +2 -2
  70. package/dist/reducers/strategy/strategies/header_enrichment.js +116 -120
  71. package/dist/reducers/strategy/utils.d.ts +3 -3
  72. package/dist/reducers/strategy/utils.js +115 -111
  73. package/dist/reducers/ussdFlow/IUssdConstants.d.ts +1 -1
  74. package/dist/reducers/ussdFlow/UssdTypes.d.ts +13 -13
  75. package/dist/reducers/ussdFlow/index.d.ts +3 -3
  76. package/dist/reducers/ussdFlow/index.js +27 -27
  77. package/dist/reducers/ussdFlow/utils.d.ts +1 -2
  78. package/dist/reducers/ussdFlow/utils.js +19 -17
  79. package/dist/store/index.d.ts +8 -8
  80. package/dist/store/index.js +87 -83
  81. package/dist/store/reducers.d.ts +7 -7
  82. package/dist/store/reducers.js +4 -4
  83. package/dist/utilities/handleSubmitNumber.d.ts +7 -3
  84. package/dist/utilities/handleSubmitNumber.js +15 -18
  85. package/dist/utilities/index.d.ts +1 -1
  86. package/dist/utilities/index.js +13 -11
  87. package/dist/utilities/loadScriptInnerHtml.js +0 -1
  88. package/index.html +21 -28
  89. package/mockData/config.json +1 -1
  90. package/package.json +23 -15
  91. package/setupJest.js +1 -1
  92. package/tsconfig.json +2 -2
  93. package/dist/api/click2sms.js +0 -357
  94. package/dist/api/mo.js +0 -274
  95. package/dist/api/moRedir.js +0 -186
  96. package/dist/api/oneClick.js +0 -366
  97. package/dist/api/pin.js +0 -493
  98. package/dist/api/strategies.js +0 -704
  99. package/dist/api/ussd.js +0 -1
  100. package/dist/app/store.js +0 -35
  101. package/dist/features/strategies/categories/askMobileNumber.js +0 -395
  102. package/dist/features/strategies/categories/askOperator.js +0 -311
  103. package/dist/features/strategies/categories/detectOperatorByIp.js +0 -606
  104. package/dist/features/strategies/categories/headerEnrichment.js +0 -670
  105. package/dist/features/strategies/categories/typings/click2smsSliceTypes.js +0 -12
  106. package/dist/features/strategies/categories/typings/identifySliceTypes.js +0 -22
  107. package/dist/features/strategies/categories/typings/moFlowSliceTypes.js +0 -22
  108. package/dist/features/strategies/categories/typings/moRedirFlowSliceTypes.js +0 -21
  109. package/dist/features/strategies/categories/typings/oneClickSliceTypes.js +0 -13
  110. package/dist/features/strategies/categories/typings/pinFlowSliceTypes.js +0 -13
  111. package/dist/features/strategies/click2smsFlowSlice.js +0 -172
  112. package/dist/features/strategies/identifySlice.js +0 -455
  113. package/dist/features/strategies/moFlowSlice.js +0 -196
  114. package/dist/features/strategies/moRedirFlowSlice.js +0 -190
  115. package/dist/features/strategies/oneClickFlowSlice.js +0 -277
  116. package/dist/features/strategies/pinFlowSlice.js +0 -313
  117. package/dist/features/strategies/ussdFlowSlice.js +0 -1
  118. package/dist/flows/tpayHeFlow.d.ts +0 -7
  119. package/dist/flows/tpayHeFlow.js +0 -23
  120. package/dist/mockServer/browser.js +0 -48
  121. package/dist/mockServer/handlers.js +0 -22
  122. package/dist/mockServer/server.js +0 -48
  123. package/dist/reducers/tpayHeFlow/ITpayHeConstants.d.ts +0 -2
  124. package/dist/reducers/tpayHeFlow/ITpayHeConstants.js +0 -1
  125. package/dist/reducers/tpayHeFlow/TpayHeTypes.d.ts +0 -114
  126. package/dist/reducers/tpayHeFlow/TpayHeTypes.js +0 -1
  127. package/dist/reducers/tpayHeFlow/index.d.ts +0 -7
  128. package/dist/reducers/tpayHeFlow/index.js +0 -331
  129. package/dist/reducers/tpayHeFlow/utils.d.ts +0 -20
  130. package/dist/reducers/tpayHeFlow/utils.js +0 -510
  131. package/dist/test/setup.js +0 -24
  132. package/dist/test/test-utils.js +0 -51
  133. package/prettier.config.js +0 -7
  134. package/src/@types/react-tracker.d.ts +0 -16
  135. package/src/@types/redux-cli-logger.d.ts +0 -1
  136. package/src/@types/tiny-async-pool.d.ts +0 -3
  137. package/src/@types/window.d.ts +0 -74
  138. package/src/api/index.ts +0 -225
  139. package/src/common-types/AppThunk.ts +0 -19
  140. package/src/common-types/Either.ts +0 -3
  141. package/src/common-types/IError.ts +0 -5
  142. package/src/common-types/IOptInFlowName.ts +0 -1
  143. package/src/common-types/ITracker.ts +0 -10
  144. package/src/common-types/IVisitor.ts +0 -16
  145. package/src/common-types/RemoteDataState.ts +0 -88
  146. package/src/flows/click2smsFlow.ts +0 -18
  147. package/src/flows/moFlow.ts +0 -20
  148. package/src/flows/moRedirFlow.ts +0 -20
  149. package/src/flows/oneClickFlow.ts +0 -20
  150. package/src/flows/pinFlow.ts +0 -25
  151. package/src/flows/strategy.ts +0 -51
  152. package/src/flows/ussdFlow.ts +0 -20
  153. package/src/index.ts +0 -3
  154. package/src/ips/tryGetIPRangeName.ts +0 -22
  155. package/src/jest.config.js +0 -194
  156. package/src/pacman/index.ts +0 -71
  157. package/src/pacman/queryString.ts +0 -24
  158. package/src/reducers/click2smsFlow/Click2smsTypes.ts +0 -93
  159. package/src/reducers/click2smsFlow/IClick2smsConstants.ts +0 -4
  160. package/src/reducers/click2smsFlow/index.ts +0 -105
  161. package/src/reducers/click2smsFlow/utils.ts +0 -126
  162. package/src/reducers/moFlow/IMoConstants.ts +0 -7
  163. package/src/reducers/moFlow/MoTypes.ts +0 -125
  164. package/src/reducers/moFlow/index.ts +0 -150
  165. package/src/reducers/moFlow/utils.ts +0 -135
  166. package/src/reducers/moRedirFlow/IMoRedirConstants.ts +0 -7
  167. package/src/reducers/moRedirFlow/MoRedirTypes.ts +0 -99
  168. package/src/reducers/moRedirFlow/index.ts +0 -137
  169. package/src/reducers/moRedirFlow/utils.ts +0 -78
  170. package/src/reducers/oneClickFlow/IOneClickConstants.ts +0 -3
  171. package/src/reducers/oneClickFlow/OneClickTypes.ts +0 -108
  172. package/src/reducers/oneClickFlow/index.ts +0 -268
  173. package/src/reducers/oneClickFlow/utils.ts +0 -219
  174. package/src/reducers/pinFlow/IPinConstants.ts +0 -9
  175. package/src/reducers/pinFlow/PinTypes.ts +0 -190
  176. package/src/reducers/pinFlow/index.ts +0 -331
  177. package/src/reducers/pinFlow/utils.ts +0 -232
  178. package/src/reducers/strategy/IStategyActionContants.ts +0 -17
  179. package/src/reducers/strategy/StrategyTypes.ts +0 -376
  180. package/src/reducers/strategy/index.ts +0 -322
  181. package/src/reducers/strategy/strategies/ask_mobile_number.ts +0 -366
  182. package/src/reducers/strategy/strategies/ask_operator.ts +0 -195
  183. package/src/reducers/strategy/strategies/detect_operator_by_ip.ts +0 -414
  184. package/src/reducers/strategy/strategies/header_enrichment.ts +0 -489
  185. package/src/reducers/strategy/utils.ts +0 -357
  186. package/src/reducers/ussdFlow/IUssdConstants.ts +0 -7
  187. package/src/reducers/ussdFlow/UssdTypes.ts +0 -112
  188. package/src/reducers/ussdFlow/index.ts +0 -146
  189. package/src/reducers/ussdFlow/utils.ts +0 -88
  190. package/src/store/index.ts +0 -150
  191. package/src/store/reducers.ts +0 -37
  192. package/src/utilities/handleSubmitNumber.ts +0 -65
  193. package/src/utilities/index.ts +0 -114
  194. package/src/utilities/loadScriptInnerHtml.ts +0 -14
  195. package/src/utilities/loadScriptSrc.ts +0 -26
@@ -1,322 +0,0 @@
1
- // LIBRARIES
2
-
3
- import * as RDS from "../../common-types/RemoteDataState";
4
- import { AppThunk } from "../../common-types/AppThunk";
5
- import {
6
- getConfig, mockedClick2smsFlow, mockedMoFlow, mockedMoRdirFlow, mockedOneClickFlow, mockedPinFlow, mockedTPayFlow, mockedUssdFlow, searchToObject
7
- } from "./utils";
8
- import {
9
- IStrategyReducerState,
10
- IStrategyActions,
11
- IStrategyActionMaps,
12
- IIdenyifyStrategyPayload,
13
- IMockFlowParams, IIdentifyFlowByHePayload, IIdentifyFlowByIpOperatorPayload, ISubmitMsisdnPayload, IIdenyifyFlowByMsisdnPayload, IOperatorSelectPayload, IOperatorSelectFlowIdentifyPayload
14
- } from "./StrategyTypes";
15
-
16
- import ask_operator,
17
- {
18
- selectOperator
19
- } from "./strategies/ask_operator";
20
- import ask_mobile_number,
21
- {
22
- submitMSISDNAction
23
- } from "./strategies/ask_mobile_number";
24
- import update from 'immutability-helper';
25
- import mkTracker from "../../pacman";
26
- import detect_operator_by_ip from "./strategies/detect_operator_by_ip";
27
- import { loadOc2sms } from "../click2smsFlow";
28
- import { checkSubscription } from "../click2smsFlow/utils";
29
- import identify_user from "./strategies/header_enrichment";
30
- import { mockPinFlow } from "../pinFlow";
31
- import { IMockPinFlowStates } from "../pinFlow/PinTypes";
32
- import { mockMoFlow } from "../moFlow";
33
- import { mockMoRedirFlow } from "../moRedirFlow";
34
- import { mockUssdFlow } from "../ussdFlow";
35
- import { mockOneClickFlow } from "../oneClickFlow";
36
-
37
- export const tracker = mkTracker(
38
- typeof window != "undefined" ? window : null
39
- )
40
-
41
- export function mockStrategyStateByUrlParam():AppThunk {
42
- return (dispatch)=>{
43
- const search = searchToObject() as IMockFlowParams<any>;
44
-
45
- if(search["mock-flow"] !== undefined){
46
- switch (search["mock-flow"]) {
47
- case "pin":
48
- dispatch({
49
- type:"MOCK_STRATEGY_STATE",
50
- payload:mockedPinFlow.currentState
51
- })
52
- dispatch(mockPinFlow(search["current-state"]))
53
- break;
54
- case "mo":
55
- dispatch({
56
- type:"MOCK_STRATEGY_STATE",
57
- payload:mockedMoFlow.currentState
58
- })
59
- dispatch(mockMoFlow(search["current-state"]))
60
- break;
61
- case "moredir":
62
- dispatch({
63
- type:"MOCK_STRATEGY_STATE",
64
- payload:mockedMoRdirFlow.currentState
65
- })
66
- dispatch(mockMoRedirFlow(search["current-state"]))
67
- break;
68
- case "oneclick":
69
- dispatch({
70
- type:"MOCK_STRATEGY_STATE",
71
- payload:mockedOneClickFlow.currentState
72
- })
73
- setTimeout(() => {
74
- dispatch(mockOneClickFlow(search["current-state"]))
75
-
76
- }, 2000);
77
- break;
78
- case "click2sms":
79
- dispatch({
80
- type:"MOCK_STRATEGY_STATE",
81
- payload:mockedClick2smsFlow.currentState
82
- })
83
-
84
- break;
85
- case "ussd":
86
- dispatch({
87
- type:"MOCK_STRATEGY_STATE",
88
- payload:mockedUssdFlow.currentState
89
- })
90
- dispatch(mockUssdFlow(search["current-state"]))
91
- break;
92
- default:
93
- throw "Mock Flow not supported";
94
- }
95
- }
96
- }
97
- }
98
-
99
-
100
- export function identifyStrategy():AppThunk {
101
- return async (dispatch)=>{
102
- const { strategy, strategyConfigs } = getConfig();
103
- const { isUseMsisdnPrefix } = strategyConfigs;
104
- const search = searchToObject() as IMockFlowParams<IMockPinFlowStates>;
105
-
106
- if(search["mock-flow"] !== undefined){
107
- dispatch(mockStrategyStateByUrlParam())
108
- }else{
109
- switch (strategy) {
110
- case "pin-mo-ask-operator":
111
- return dispatch(ask_operator());
112
- case "pin-mo-redir-ask-mobile-number":
113
- case "pin-mo-ask-mobile-number":
114
- case "pin-combo-ask-mobile-number":
115
- return dispatch(ask_mobile_number());
116
- case "pin-one-click-detect-operator-by-ip":
117
- case "one-click-mo-pin-detect-operator-by-ip-or-msisdn":
118
- case "mo-redir-one-click-detect-operator-by-ip":
119
- case "mo-one-click-detect-operator-by-ip":
120
- case "click2sms-one-click-detect-operator-by-ip":
121
- case "pin-mo-detect-operator-by-ip":
122
- return dispatch(detect_operator_by_ip());
123
- case "pin-click2sms-ask-operator":
124
- case "he-pin-one-click-ask-operator":
125
- case "click2sms-one-click-ask-operator":
126
- case "pin-one-click-ask-operator":
127
- return dispatch(ask_operator());
128
- case "pin-header-enrichment":
129
- case "he-pin-mo-redir-header-enrichment":
130
- case "he-pin-one-click-header-enrichment":
131
- case "he-mo-redir-one-click-header-enrichment":
132
- return dispatch(identify_user());
133
- //single flow strategies
134
- case "pin":
135
- tracker.sendOptInFlowEvent("Pin")
136
-
137
- return dispatch({
138
- type:"IDENTIFY_STRATEGY",
139
- payload:{
140
- type:"PIN",
141
- result: {
142
- nextAction:"submitMSISDNAction",
143
- config:strategyConfigs.default.flowConfig,
144
- isUseMsisdnPrefix
145
- }
146
- }
147
- });
148
- case "mo":
149
- tracker.sendOptInFlowEvent("Msisdn to sms")
150
-
151
- return dispatch({
152
- type:"IDENTIFY_STRATEGY",
153
- payload:{
154
- type:"MO",
155
- result:{
156
- nextAction:"submitMSISDNAction",
157
- config:strategyConfigs.default.flowConfig
158
- }
159
- }
160
- });
161
- case "mo-redir":
162
- tracker.sendOptInFlowEvent("Redirect")
163
-
164
- return dispatch({
165
- type:"IDENTIFY_STRATEGY",
166
- payload:{
167
- type:"MO_REDIR",
168
- result: {
169
- nextAction:"submitMSISDNAction",
170
- config:strategyConfigs.default.flowConfig
171
- }
172
- }
173
- });
174
- case "one-click":
175
- tracker.sendOptInFlowEvent("3G click")
176
-
177
- return dispatch({
178
- type:"IDENTIFY_STRATEGY",
179
- payload:{
180
- type:"ONE_CLICK",
181
- result: {
182
- nextAction:"getRedirectUrlAction",
183
- config:strategyConfigs.default.flowConfig
184
- }
185
- }
186
- });
187
- case "tallyman-one-click":
188
- tracker.sendOptInFlowEvent("3G click")
189
-
190
- return dispatch({
191
- type:"IDENTIFY_STRATEGY",
192
- payload:{
193
- type:"TALLYMAN_ONE_CLICK",
194
- result: {
195
- nextAction:"getRedirectUrlAction",
196
- config:strategyConfigs.default.flowConfig
197
- }
198
- }
199
- });
200
- case "click2sms":
201
- tracker.sendOptInFlowEvent("Click to sms")
202
-
203
- return dispatch({
204
- type:"IDENTIFY_STRATEGY",
205
- payload:{
206
- type:"CLICK2SMS",
207
- result: {
208
- nextAction:"loadOc2sms",
209
- config:strategyConfigs.default.flowConfig
210
- }
211
- }
212
- });
213
-
214
- case "ussd":
215
- tracker.sendOptInFlowEvent("Msisdn to sms")
216
-
217
- return dispatch({
218
- type:"IDENTIFY_STRATEGY",
219
- payload:{
220
- type:"USSD",
221
- result: {
222
- nextAction:"submitMSISDNAction",
223
- config:strategyConfigs.default.flowConfig
224
- }
225
- }
226
- });
227
- case "tpay-he":
228
- tracker.sendOptInFlowEvent("Hybrid Pin")
229
- return dispatch({
230
- type:"IDENTIFY_STRATEGY",
231
- payload:{
232
- type:"TPAY_HE",
233
- result: {
234
- nextAction:"loadTpayAction",
235
- config:strategyConfigs.default.flowConfig
236
- }
237
- }
238
- });
239
- default:
240
- throw "Strategy not supported";
241
- }
242
- }
243
-
244
- }
245
- }
246
-
247
-
248
-
249
- export function checkSubscriptionAction(trackingArgs:{flow: string, action: string, args?: any}):AppThunk{
250
- return async (dispatch, store)=>{
251
- const {currentState} = store().strategy
252
-
253
- //@ts-ignore
254
- const maybeConfig = currentState.result.config;
255
-
256
- try {
257
- dispatch({
258
- type:"CHECK_SUBSCRIPTION"
259
- });
260
-
261
- checkSubscription(window, maybeConfig)
262
- .then((product_url)=>{
263
- tracker.advancedInFlow(trackingArgs.flow, trackingArgs.action, trackingArgs.args);
264
- setTimeout(() => {
265
- window.location.href = product_url
266
- }, 1000);
267
- })
268
-
269
- } catch (ex) {
270
- console.warn(ex)
271
- }
272
- }
273
- }
274
- export function genericHandler<S,P>(state:S, payload:P){
275
- return update(state, {
276
- //@ts-ignore
277
- currentState:{
278
- $set: payload
279
- }
280
- });
281
- }
282
-
283
- const initialState:IStrategyReducerState = {
284
- currentState:{
285
- type: "IDENTIFY_STRATEGY",
286
- result:RDS.NothingYet()
287
- }
288
- };
289
-
290
- export const StrategyFlowActionMaps:IStrategyActionMaps = {
291
- selectOperator:selectOperator,
292
- submitMSISDNAction:submitMSISDNAction,
293
- loadOc2sms:loadOc2sms
294
- }
295
- export default function StrategyReducer(state = initialState, action:IStrategyActions) {
296
- switch (action.type) {
297
- case "IDENTIFY_STRATEGY":
298
- return genericHandler<IStrategyReducerState, IIdenyifyStrategyPayload>(state, action.payload)
299
- case "IDENTIFY_FLOW_BY_OPERATOR_SELECT":
300
- return genericHandler<IStrategyReducerState, IOperatorSelectFlowIdentifyPayload>(state, action.payload)
301
- case "OPERATOR_SELECT":
302
- return genericHandler<IStrategyReducerState, IOperatorSelectPayload>(state, action.payload)
303
- case "IDENTIFY_FLOW_BY_MSISDN":
304
- return genericHandler<IStrategyReducerState, IIdenyifyFlowByMsisdnPayload>(state, action.payload)
305
- case "IDENTIFY_FLOW_BY_MSISDN_SUBMIT":
306
- return genericHandler<IStrategyReducerState, ISubmitMsisdnPayload>(state, action.payload)
307
- case "IDENTIFY_FLOW_BY_IP":
308
- return genericHandler<IStrategyReducerState, IIdentifyFlowByIpOperatorPayload>(state, action.payload)
309
- case "IDENTIFY_FLOW_BY_IP_OPERATOR":
310
- return genericHandler<IStrategyReducerState, IIdentifyFlowByIpOperatorPayload>(state, action.payload)
311
- case "IDENTIFY_FLOW_BY_HE":
312
- return genericHandler<IStrategyReducerState, IIdentifyFlowByHePayload>(state, action.payload)
313
- case "HE_IDENTIFY":
314
- //@ts-ignore
315
- return genericHandler<IStrategyReducerState, IIdentifyFlowByHePayload>(state, action.payload)
316
- case "MOCK_STRATEGY_STATE":
317
- //@ts-ignore
318
- return genericHandler<IStrategyReducerState, IIdenyifyStrategyPayload>(state, action.payload)
319
- default:
320
- return state;
321
- }
322
- }
@@ -1,366 +0,0 @@
1
- import * as RDS from "../../../common-types/RemoteDataState";
2
-
3
- import { AppThunk } from "../../../common-types/AppThunk";
4
- import { determineFlowByMsidn, getConfig } from "../utils";
5
- import {
6
- IFlow,
7
- IDENTIFYMSISDNEntryErrorTypes,
8
- IDENTIFYMSISDNEntryFailure,
9
- IDENTIFYMSISDNEntrySuccess
10
- } from "../StrategyTypes";
11
- import { tracker } from "..";
12
-
13
- export default function ask_mobile_number():AppThunk {
14
- return(dispatch)=>{
15
- try{
16
- dispatch({
17
- type:"IDENTIFY_FLOW_BY_MSISDN",
18
- payload:{
19
- type: "IDENTIFY_FLOW_BY_MSISDN",
20
- result: RDS.NothingYet(),
21
- nextData:{
22
- nextAction:"submitMSISDNAction"
23
- }
24
- }
25
- })
26
- }catch(err){
27
- dispatch({
28
- type:"IDENTIFY_FLOW_BY_MSISDN_ERROR",
29
- payload:{
30
- type:"IDENTIFY_FLOW_BY_MSISDN",
31
- result:RDS.Failure(err)
32
- }
33
- });
34
- }
35
- }
36
- }
37
-
38
- export function submitMSISDNAction(internationalMSISDN:string):AppThunk{
39
- return async (dispatch)=>{
40
- try {
41
- dispatch({
42
- type:"IDENTIFY_FLOW_BY_MSISDN_SUBMIT",
43
- payload:{
44
- type: "IDENTIFY_FLOW_BY_MSISDN",
45
- result: RDS.Loading(),
46
- nextData:{
47
- nextAction:"submitMSISDNAction"
48
- }
49
- }
50
- })
51
- const { strategy } = getConfig();
52
- const flowObj = await determineFlowByMsidn(internationalMSISDN);
53
-
54
- console.log("flowObj", flowObj)
55
- dispatch({
56
- type:"IDENTIFY_FLOW_BY_MSISDN_SUBMIT",
57
- payload:{
58
- type: "IDENTIFY_FLOW_BY_MSISDN",
59
- result: RDS.Success(flowObj),
60
- nextData:{
61
- nextAction:"submitMSISDNAction",
62
- ...(flowObj.operator && {operator:flowObj.operator})
63
- }
64
- }
65
- })
66
- switch (strategy) {
67
- case "pin-mo-redir-ask-mobile-number":
68
- return dispatch(pin_mo_redir_ask_mobile_number(flowObj, internationalMSISDN))
69
- case "pin-mo-ask-mobile-number":
70
- return dispatch(pin_mo_ask_mobile_number(flowObj, internationalMSISDN))
71
- case "pin-combo-ask-mobile-number":
72
- return dispatch(pin_combo_ask_mobile_number(flowObj, internationalMSISDN))
73
- }
74
- } catch (ex) {
75
- console.warn(ex)
76
- const errorType: IDENTIFYMSISDNEntryErrorTypes =
77
- "SEAlreadySubscribed" === ex.type
78
- ? "AlreadySubscribed"
79
- : "SEInvalidMSISDN" == ex.type
80
- ? "InvalidMSISDN"
81
- : "UnknownError";
82
- dispatch({
83
- type: "IDENTIFY_FLOW_BY_MSISDN_SUBMIT_ERROR",
84
- payload:{
85
- type:"IDENTIFY_FLOW_BY_MSISDN",
86
- result: RDS.Failure<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>({
87
- errorType: errorType,
88
- error: ex
89
- })
90
- }
91
- });
92
- }
93
- }
94
- }
95
-
96
-
97
-
98
- export const pin_mo_ask_mobile_number = (flowObj:IFlow, msisdn:string):AppThunk=>{
99
- return(dispatch)=>{
100
- switch (flowObj.flow) {
101
- case "pin":
102
- tracker.sendOptInFlowEvent("Pin")
103
- dispatch({
104
- type:"IDENTIFY_FLOW_BY_MSISDN_SUBMIT",
105
- payload:{
106
- type: "IDENTIFY_FLOW_BY_MSISDN",
107
- result: RDS.Loading(),
108
- nextData:{
109
- nextAction:"submitMSISDNAction",
110
- ...(flowObj.operator && {operator:flowObj.operator})
111
- }
112
- }
113
- })
114
- return dispatch({
115
- type:"IDENTIFY_FLOW_BY_MSISDN_SUBMIT",
116
- payload:{
117
- type:"PIN",
118
- result: {
119
- nextAction:"submitMSISDNAction",
120
- config:flowObj.flowConfig,
121
- msisdn,
122
- ...(flowObj.operator && {operator:flowObj.operator})
123
- }
124
- }
125
- });
126
- case "mo":
127
- tracker.sendOptInFlowEvent("Msisdn to sms")
128
- return dispatch({
129
- type:"IDENTIFY_FLOW_BY_MSISDN_SUBMIT",
130
- payload:{
131
- type:"MO",
132
- result: {
133
- nextAction:"submitMSISDNAction",
134
- config:flowObj.flowConfig,
135
- msisdn,
136
- rockman_id:flowObj.rockman_id,
137
- ...(flowObj.operator && {operator:flowObj.operator})
138
- }
139
- }
140
- });
141
- default:
142
- tracker.sendOptInFlowEvent("Pin")
143
-
144
- return dispatch({
145
- type:"IDENTIFY_FLOW_BY_MSISDN_SUBMIT",
146
- payload:{
147
- type:"PIN",
148
- result: {
149
- nextAction:"submitMSISDNAction",
150
- config:flowObj.flowConfig,
151
- rockman_id:flowObj.rockman_id,
152
- ...(flowObj.operator && {operator:flowObj.operator})
153
- }
154
- }
155
- });
156
- }
157
- }
158
- }
159
-
160
- export const pin_combo_ask_mobile_number = (flowObj:IFlow, msisdn:string):AppThunk=>{
161
- return(dispatch)=>{
162
- switch (flowObj.flow) {
163
- case "pin":
164
- tracker.sendOptInFlowEvent("Pin")
165
- dispatch({
166
- type:"IDENTIFY_FLOW_BY_MSISDN_SUBMIT",
167
- payload:{
168
- type: "IDENTIFY_FLOW_BY_MSISDN",
169
- result: RDS.Loading(),
170
- nextData:{
171
- nextAction:"submitMSISDNAction",
172
- ...(flowObj.operator && {operator:flowObj.operator})
173
- }
174
- }
175
- })
176
- return dispatch({
177
- type:"IDENTIFY_FLOW_BY_MSISDN_SUBMIT",
178
- payload:{
179
- type:"PIN",
180
- result: {
181
- nextAction:"submitMSISDNAction",
182
- config:flowObj.flowConfig,
183
- msisdn,
184
- ...(flowObj.operator && {operator:flowObj.operator})
185
- }
186
- }
187
- });
188
- default:
189
- tracker.sendOptInFlowEvent("Pin")
190
- return dispatch({
191
- type:"IDENTIFY_FLOW_BY_MSISDN_SUBMIT",
192
- payload:{
193
- type:"PIN",
194
- result: {
195
- nextAction:"submitMSISDNAction",
196
- config:flowObj.flowConfig,
197
- rockman_id:flowObj.rockman_id,
198
- ...(flowObj.operator && {operator:flowObj.operator})
199
- }
200
- }
201
- });
202
- }
203
- }
204
- }
205
-
206
-
207
- export const pin_mo_redir_ask_mobile_number = (flowObj:IFlow, msisdn:string):AppThunk=>{
208
- return(dispatch)=>{
209
- switch (flowObj.flow) {
210
- case "pin":
211
- tracker.sendOptInFlowEvent("Pin")
212
-
213
- dispatch({
214
- type:"IDENTIFY_FLOW_BY_MSISDN_SUBMIT",
215
- payload:{
216
- type: "IDENTIFY_FLOW_BY_MSISDN",
217
- result: RDS.Loading(),
218
- nextData:{
219
- nextAction:"submitMSISDNAction"
220
- }
221
- }
222
- })
223
- return dispatch({
224
- type:"IDENTIFY_FLOW_BY_MSISDN_SUBMIT",
225
- payload:{
226
- type:"PIN",
227
- result: {
228
- nextAction:"submitMSISDNAction",
229
- config:flowObj.flowConfig,
230
- msisdn,
231
- rockman_id:flowObj.rockman_id
232
- }
233
- }
234
- });
235
- case "moRedir":
236
- tracker.sendOptInFlowEvent("Redirect")
237
-
238
- return dispatch({
239
- type:"IDENTIFY_FLOW_BY_MSISDN_SUBMIT",
240
- payload:{
241
- type:"MO_REDIR",
242
- result: {
243
- nextAction:"submitMSISDNAction",
244
- config:flowObj.flowConfig,
245
- msisdn,
246
- rockman_id:flowObj.rockman_id
247
- }
248
- }
249
- });
250
- default:
251
- tracker.sendOptInFlowEvent("Pin")
252
-
253
- return dispatch({
254
- type:"IDENTIFY_FLOW_BY_MSISDN_SUBMIT",
255
- payload:{
256
- type:"PIN",
257
- result: {
258
- nextAction:"submitMSISDNAction",
259
- config:flowObj.flowConfig,
260
- rockman_id:flowObj.rockman_id
261
- }
262
- }
263
- });
264
- }
265
- }
266
- }
267
-
268
- export const one_click_mo_pin_detect_operator_by_ip_or_msisdn = (flowObj:IFlow, msisdn:string):AppThunk=>{
269
- return(dispatch)=>{
270
- switch (flowObj.flow) {
271
- case "oneClick":
272
- tracker.sendOptInFlowEvent("3G click")
273
-
274
- return dispatch({
275
- type:"IDENTIFY_FLOW_BY_MSISDN_SUBMIT",
276
- payload:{
277
- type:"ONE_CLICK",
278
- result: {
279
- nextAction:"submitMSISDNAction",
280
- config:flowObj.flowConfig,
281
- msisdn,
282
- rockman_id:flowObj.rockman_id
283
- }
284
- }
285
- });
286
- case "mo":
287
- tracker.sendOptInFlowEvent("Msisdn to sms")
288
-
289
- return dispatch({
290
- type:"IDENTIFY_FLOW_BY_MSISDN_SUBMIT",
291
- payload:{
292
- type:"MO",
293
- result: {
294
- nextAction:"submitMSISDNAction",
295
- config:flowObj.flowConfig,
296
- msisdn,
297
- rockman_id:flowObj.rockman_id
298
- }
299
- }
300
- });
301
- default:
302
- tracker.sendOptInFlowEvent("Pin")
303
-
304
- return dispatch({
305
- type:"IDENTIFY_FLOW_BY_MSISDN_SUBMIT",
306
- payload:{
307
- type:"PIN",
308
- result: {
309
- nextAction:"submitMSISDNAction",
310
- config:flowObj.flowConfig,
311
- rockman_id:flowObj.rockman_id
312
- }
313
- }
314
- });
315
- }
316
- }
317
- }
318
-
319
-
320
-
321
-
322
- // const pinMoRedirAskMobileNumber = (flowObj:IFlow)=>{
323
- // switch (flowObj.flow) {
324
- // case "pin":
325
- // self.setState({
326
- // currentState: {type: "PIN", result: pinFlow(tracker, flowObj, msisdn, extraParams) } as State,
327
- // })
328
- // tracker.advancedInFlow('tallyman/v1', 'pin-flow',{msisdn})
329
- // break;
330
- // case "moRedir":
331
- // self.setState({
332
- // currentState: {type: "MOREDIR", result: moRedirFlow(tracker, flowObj, msisdn, bupperNumber) } as State,
333
- // })
334
- // tracker.advancedInFlow('tallyman/v1', 'moRedir-flow',{msisdn})
335
- // break;
336
- // default:
337
- // self.setState({
338
- // currentState: {type: flowObj.default.flow.toUpperCase(), result: pinFlow(tracker, flowObj.default, msisdn, extraParams) } as State,
339
- // })
340
- // tracker.advancedInFlow('tallyman/v1', 'pin-flow',{msisdn})
341
- // break;
342
- // }
343
- // }
344
-
345
- // const pinClick2SmsAskMobileNumber = (flowObj:IFlow)=>{
346
- // switch (flowObj.flow) {
347
- // case "pin":
348
- // self.setState({
349
- // currentState: {type: "PIN", result: pinFlow(tracker, flowObj, msisdn, extraParams) } as State,
350
- // })
351
- // tracker.advancedInFlow('tallyman/v1', 'pin-flow',{msisdn})
352
- // break;
353
- // case "click2sms":
354
- // self.setState({
355
- // currentState: {type: "CLICK2SMS", result: click2smsFlow(tracker, flowObj) } as State,
356
- // })
357
- // tracker.advancedInFlow('tallyman/v1', 'click2sms-flow',{msisdn})
358
- // break;
359
- // default:
360
- // self.setState({
361
- // currentState: {type: flowObj.default.flow.toUpperCase(), result: pinFlow(tracker, flowObj.default, msisdn, extraParams) } as State,
362
- // })
363
- // tracker.advancedInFlow('tallyman/v1', 'pin-flow',{msisdn})
364
- // break;
365
- // }
366
- // }