be-components 0.2.8 → 0.3.0
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.
- package/lib/commonjs/ApiOverrides/index.js +32 -0
- package/lib/commonjs/ApiOverrides/index.js.map +1 -1
- package/lib/commonjs/Authenticator/Components/LoginForm.js +1 -1
- package/lib/module/ApiOverrides/index.js +32 -0
- package/lib/module/ApiOverrides/index.js.map +1 -1
- package/lib/module/Authenticator/Components/LoginForm.js +1 -1
- package/lib/typescript/src/ApiOverrides/index.d.ts +8 -0
- package/lib/typescript/src/ApiOverrides/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ApiOverrides/index.ts +18 -0
- package/src/Authenticator/Components/LoginForm.tsx +1 -1
- package/src/types.d.ts +149 -1
|
@@ -116,6 +116,38 @@ const APIOverrides = exports.APIOverrides = {
|
|
|
116
116
|
};
|
|
117
117
|
return auth_state;
|
|
118
118
|
},
|
|
119
|
+
authenticateApp: async (auth_response, options) => {
|
|
120
|
+
//First set the bearertokena and refresh interceptor
|
|
121
|
+
const {
|
|
122
|
+
access_token,
|
|
123
|
+
player_id,
|
|
124
|
+
refresh_token,
|
|
125
|
+
expire_datetime,
|
|
126
|
+
distinct_id
|
|
127
|
+
} = auth_response;
|
|
128
|
+
if (!access_token || !refresh_token || !player_id) {
|
|
129
|
+
return {
|
|
130
|
+
result: 'fail'
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
APIOverrides.setBearerToken(access_token);
|
|
134
|
+
APIOverrides.setRefreshTokenInterceptor(access_token, distinct_id, options.cache);
|
|
135
|
+
if (options.cache) {
|
|
136
|
+
await APIOverrides.cacheTokens(access_token, player_id, refresh_token, expire_datetime);
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
result: 'success'
|
|
140
|
+
};
|
|
141
|
+
},
|
|
142
|
+
logoutApp: async () => {
|
|
143
|
+
//First remove bearertoken
|
|
144
|
+
APIOverrides.setBearerToken(undefined);
|
|
145
|
+
//Then clear tokens from cache
|
|
146
|
+
await APIOverrides.clearTokens();
|
|
147
|
+
return {
|
|
148
|
+
result: 'success'
|
|
149
|
+
};
|
|
150
|
+
},
|
|
119
151
|
setEnvironment: env => {
|
|
120
152
|
ENDPOINTS = ENVIRONMENT_ENDPOINTS[env];
|
|
121
153
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_asyncStorage","_interopRequireDefault","require","_axios","_momentMini","_uuid","obj","__esModule","default","ENVIRONMENT_ENDPOINTS","DEVELOPMENT","AUTH_SVC_API","VOUCH_ID","VOUCHED_CALLBACK_URL","VOUCHED_SANDBOX","EVENT_SVC_API","SOCIAL_SVC_API","STAGING","PRODUCTION","ENDPOINTS","auth_state","authenticated","distinct_id","session_id","APIOverrides","exports","start","env","no_cache","setEnvironment","getDistinctID","v4","cached_token","AsyncStorage","getItem","cached_refresh_token","expire_datetime","moment","isAfter","refresh_resp","refreshToken","removeItem","access_token","refresh_token","setItem","player_id","setBearerToken","setRefreshTokenInterceptor","
|
|
1
|
+
{"version":3,"names":["_asyncStorage","_interopRequireDefault","require","_axios","_momentMini","_uuid","obj","__esModule","default","ENVIRONMENT_ENDPOINTS","DEVELOPMENT","AUTH_SVC_API","VOUCH_ID","VOUCHED_CALLBACK_URL","VOUCHED_SANDBOX","EVENT_SVC_API","SOCIAL_SVC_API","STAGING","PRODUCTION","ENDPOINTS","auth_state","authenticated","distinct_id","session_id","APIOverrides","exports","start","env","no_cache","setEnvironment","getDistinctID","v4","cached_token","AsyncStorage","getItem","cached_refresh_token","expire_datetime","moment","isAfter","refresh_resp","refreshToken","removeItem","access_token","refresh_token","setItem","player_id","setBearerToken","setRefreshTokenInterceptor","authenticateApp","auth_response","options","result","cache","cacheTokens","logoutApp","undefined","clearTokens","getEndpoints","token","axios","defaults","headers","common","resp","post","device_id","data","error","interceptors","response","use","originalRequest","config","status","Promise","reject","message","_retry","resolve","Authorization"],"sourceRoot":"../../../src","sources":["ApiOverrides/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,7 +23,7 @@ const LoginForm = ({
|
|
|
23
23
|
const [auth_check, setAuthCheck] = (0, _react.useState)({
|
|
24
24
|
loading: false,
|
|
25
25
|
attribute: 'username',
|
|
26
|
-
value: '
|
|
26
|
+
value: ''
|
|
27
27
|
});
|
|
28
28
|
const [halted, setHalted] = (0, _react.useState)(false);
|
|
29
29
|
const [login_try, setLoginTry] = (0, _react.useState)({
|
|
@@ -110,6 +110,38 @@ const APIOverrides = {
|
|
|
110
110
|
};
|
|
111
111
|
return auth_state;
|
|
112
112
|
},
|
|
113
|
+
authenticateApp: async (auth_response, options) => {
|
|
114
|
+
//First set the bearertokena and refresh interceptor
|
|
115
|
+
const {
|
|
116
|
+
access_token,
|
|
117
|
+
player_id,
|
|
118
|
+
refresh_token,
|
|
119
|
+
expire_datetime,
|
|
120
|
+
distinct_id
|
|
121
|
+
} = auth_response;
|
|
122
|
+
if (!access_token || !refresh_token || !player_id) {
|
|
123
|
+
return {
|
|
124
|
+
result: 'fail'
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
APIOverrides.setBearerToken(access_token);
|
|
128
|
+
APIOverrides.setRefreshTokenInterceptor(access_token, distinct_id, options.cache);
|
|
129
|
+
if (options.cache) {
|
|
130
|
+
await APIOverrides.cacheTokens(access_token, player_id, refresh_token, expire_datetime);
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
result: 'success'
|
|
134
|
+
};
|
|
135
|
+
},
|
|
136
|
+
logoutApp: async () => {
|
|
137
|
+
//First remove bearertoken
|
|
138
|
+
APIOverrides.setBearerToken(undefined);
|
|
139
|
+
//Then clear tokens from cache
|
|
140
|
+
await APIOverrides.clearTokens();
|
|
141
|
+
return {
|
|
142
|
+
result: 'success'
|
|
143
|
+
};
|
|
144
|
+
},
|
|
113
145
|
setEnvironment: env => {
|
|
114
146
|
ENDPOINTS = ENVIRONMENT_ENDPOINTS[env];
|
|
115
147
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AsyncStorage","axios","moment","v4","ENVIRONMENT_ENDPOINTS","DEVELOPMENT","AUTH_SVC_API","VOUCH_ID","VOUCHED_CALLBACK_URL","VOUCHED_SANDBOX","EVENT_SVC_API","SOCIAL_SVC_API","STAGING","PRODUCTION","ENDPOINTS","auth_state","authenticated","distinct_id","session_id","APIOverrides","start","env","no_cache","setEnvironment","getDistinctID","cached_token","getItem","cached_refresh_token","expire_datetime","isAfter","refresh_resp","refreshToken","removeItem","access_token","refresh_token","setItem","player_id","setBearerToken","setRefreshTokenInterceptor","
|
|
1
|
+
{"version":3,"names":["AsyncStorage","axios","moment","v4","ENVIRONMENT_ENDPOINTS","DEVELOPMENT","AUTH_SVC_API","VOUCH_ID","VOUCHED_CALLBACK_URL","VOUCHED_SANDBOX","EVENT_SVC_API","SOCIAL_SVC_API","STAGING","PRODUCTION","ENDPOINTS","auth_state","authenticated","distinct_id","session_id","APIOverrides","start","env","no_cache","setEnvironment","getDistinctID","cached_token","getItem","cached_refresh_token","expire_datetime","isAfter","refresh_resp","refreshToken","removeItem","access_token","refresh_token","setItem","player_id","setBearerToken","setRefreshTokenInterceptor","authenticateApp","auth_response","options","result","cache","cacheTokens","logoutApp","undefined","clearTokens","getEndpoints","token","defaults","headers","common","resp","post","device_id","data","error","interceptors","response","use","originalRequest","config","status","Promise","reject","message","_retry","resolve","Authorization"],"sourceRoot":"../../../src","sources":["ApiOverrides/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,6 +5,14 @@ declare const APIOverrides: {
|
|
|
5
5
|
env: 'PRODUCTION' | 'STAGING' | 'DEVELOPMENT';
|
|
6
6
|
no_cache: boolean;
|
|
7
7
|
}) => Promise<AuthStateProps>;
|
|
8
|
+
authenticateApp: (auth_response: AuthStateProps, options: {
|
|
9
|
+
cache?: boolean;
|
|
10
|
+
}) => Promise<{
|
|
11
|
+
result: 'success' | 'fail';
|
|
12
|
+
}>;
|
|
13
|
+
logoutApp: () => Promise<{
|
|
14
|
+
result: 'success' | 'fail';
|
|
15
|
+
}>;
|
|
8
16
|
setEnvironment: (env: 'PRODUCTION' | 'STAGING' | 'DEVELOPMENT') => void;
|
|
9
17
|
getEndpoints: () => {
|
|
10
18
|
[key: string]: string | boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ApiOverrides/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAsC9C,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB,QAAA,MAAM,YAAY;+BACkB;QAAE,GAAG,EAAC,YAAY,GAAC,SAAS,GAAC,aAAa,CAAC;QAAC,QAAQ,EAAC,OAAO,CAAA;KAAE,KAAE,QAAQ,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ApiOverrides/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAsC9C,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB,QAAA,MAAM,YAAY;+BACkB;QAAE,GAAG,EAAC,YAAY,GAAC,SAAS,GAAC,aAAa,CAAC;QAAC,QAAQ,EAAC,OAAO,CAAA;KAAE,KAAE,QAAQ,cAAc,CAAC;qCA4ClF,cAAc,WAAW;QAAE,KAAK,CAAC,EAAC,OAAO,CAAA;KAAE,KAAE,QAAQ;QAAE,MAAM,EAAE,SAAS,GAAC,MAAM,CAAA;KAAE,CAAC;qBAWpG,QAAQ;QAAC,MAAM,EAAE,SAAS,GAAC,MAAM,CAAA;KAAC,CAAC;0BAOjC,YAAY,GAAC,SAAS,GAAC,aAAa;;;;gCAMzB,MAAM,aAAY,MAAM,kBAAiB,MAAM,oBAAmB,GAAG;;;6BAoB7E,MAAM;0BAOJ,MAAM,eAAc,MAAM,KAAE,QAAQ;QAAC,aAAa,EAAC,MAAM,CAAC;QAAC,YAAY,EAAC,MAAM,CAAC;QAAC,eAAe,EAAC,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;wCAUvG,MAAM,eAAc,MAAM,UAAS,OAAO;CA4BrF,CAAA"}
|
package/package.json
CHANGED
|
@@ -87,6 +87,24 @@ const APIOverrides = {
|
|
|
87
87
|
}
|
|
88
88
|
return auth_state
|
|
89
89
|
},
|
|
90
|
+
authenticateApp: async(auth_response:AuthStateProps, options: { cache?:boolean }):Promise<{ result: 'success'|'fail' }> => {
|
|
91
|
+
//First set the bearertokena and refresh interceptor
|
|
92
|
+
const { access_token, player_id, refresh_token, expire_datetime, distinct_id } = auth_response
|
|
93
|
+
if(!access_token || !refresh_token || !player_id){ return { result: 'fail' } }
|
|
94
|
+
APIOverrides.setBearerToken(access_token);
|
|
95
|
+
APIOverrides.setRefreshTokenInterceptor(access_token, distinct_id, options.cache)
|
|
96
|
+
if(options.cache){
|
|
97
|
+
await APIOverrides.cacheTokens(access_token, player_id, refresh_token, expire_datetime)
|
|
98
|
+
}
|
|
99
|
+
return { result: 'success' }
|
|
100
|
+
},
|
|
101
|
+
logoutApp: async():Promise<{result: 'success'|'fail'}> => {
|
|
102
|
+
//First remove bearertoken
|
|
103
|
+
APIOverrides.setBearerToken(undefined);
|
|
104
|
+
//Then clear tokens from cache
|
|
105
|
+
await APIOverrides.clearTokens();
|
|
106
|
+
return { result: 'success' }
|
|
107
|
+
},
|
|
90
108
|
setEnvironment: (env:'PRODUCTION'|'STAGING'|'DEVELOPMENT') => {
|
|
91
109
|
ENDPOINTS = ENVIRONMENT_ENDPOINTS[env]
|
|
92
110
|
},
|
|
@@ -24,7 +24,7 @@ const LoginForm = ({ width, visible, onRegister, onAuthenticated }:LoginFormProp
|
|
|
24
24
|
}>({
|
|
25
25
|
loading:false,
|
|
26
26
|
attribute:'username',
|
|
27
|
-
value:'
|
|
27
|
+
value:''
|
|
28
28
|
});
|
|
29
29
|
const [ halted, setHalted ] = useState(false);
|
|
30
30
|
const [ login_try, setLoginTry ] = useState<{
|
package/src/types.d.ts
CHANGED
|
@@ -203,4 +203,152 @@ export interface PlayerFollowerStatsProps {
|
|
|
203
203
|
following_count: number,
|
|
204
204
|
follower_count:number,
|
|
205
205
|
team_member_count:number
|
|
206
|
-
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
//POLL TYPES
|
|
213
|
+
export interface PollCampaignProps {
|
|
214
|
+
poll_campaign_id:string,
|
|
215
|
+
name: string,
|
|
216
|
+
player_id:string,
|
|
217
|
+
company_id?:string,
|
|
218
|
+
admins:string[],
|
|
219
|
+
phone:string,
|
|
220
|
+
total_responses:number,
|
|
221
|
+
status: string,
|
|
222
|
+
campaign_type: 'predict'|'trivia'|'feedback',
|
|
223
|
+
active_polls?:number,
|
|
224
|
+
auth_strategy_id?:string,
|
|
225
|
+
total_polls?:number,
|
|
226
|
+
share_coupon_campaign_id?:string,
|
|
227
|
+
total_responders?:number,
|
|
228
|
+
referral_code?:string,
|
|
229
|
+
break_ties?:boolean,
|
|
230
|
+
coupon_campaign_id?:string,
|
|
231
|
+
coupon_payout_type?:any,
|
|
232
|
+
campaign_image?: {
|
|
233
|
+
url: string,
|
|
234
|
+
width?: number,
|
|
235
|
+
height?: number
|
|
236
|
+
},
|
|
237
|
+
stream?:{
|
|
238
|
+
url: string,
|
|
239
|
+
stream_type: string,
|
|
240
|
+
id:string,
|
|
241
|
+
twitch_type?:'video'|'channel'
|
|
242
|
+
},
|
|
243
|
+
close_message_sent: boolean,
|
|
244
|
+
create_datetime: any,
|
|
245
|
+
last_update_datetime: any
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
export interface PollCampaignGoalProps {
|
|
249
|
+
poll_campaign_goal_id:string,
|
|
250
|
+
poll_campaign_id:string,
|
|
251
|
+
goal_description: string,
|
|
252
|
+
goal_type: 'total_responses'|'total_responders'
|
|
253
|
+
goal_total:number,
|
|
254
|
+
goal_progress: number,
|
|
255
|
+
goal_progress_status: string,
|
|
256
|
+
status: 'active' | 'inactive',
|
|
257
|
+
create_datetime: any,
|
|
258
|
+
last_update_datetime:any
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
export interface PollCampaignLeaderProps {
|
|
263
|
+
poll_campaign_leader_id:string,
|
|
264
|
+
poll_campaign_id:string,
|
|
265
|
+
player_id:string,
|
|
266
|
+
place:number,
|
|
267
|
+
winnings:number,
|
|
268
|
+
stake:number,
|
|
269
|
+
responses:number,
|
|
270
|
+
create_datetime:any,
|
|
271
|
+
last_update_datetime:any
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
export interface PollProps {
|
|
275
|
+
poll_id:string,
|
|
276
|
+
poll_campaign_id:string,
|
|
277
|
+
poll_question: string,
|
|
278
|
+
status:string,
|
|
279
|
+
coupon_campaign_id?:string,
|
|
280
|
+
coupon_payout_type?:any,
|
|
281
|
+
require_resolution?:boolean,
|
|
282
|
+
tie_breaker?:boolean,
|
|
283
|
+
poll_type: 'select'|'input',
|
|
284
|
+
input_type?:'string'|'number',
|
|
285
|
+
show_responses:boolean,
|
|
286
|
+
poll_image?:{
|
|
287
|
+
url:string,
|
|
288
|
+
width?:number,
|
|
289
|
+
height?:number
|
|
290
|
+
},
|
|
291
|
+
hidden_clue?:string,
|
|
292
|
+
minimum_stake:number,
|
|
293
|
+
priority: number,
|
|
294
|
+
end_datetime: any,
|
|
295
|
+
winning_option_id?:string,
|
|
296
|
+
winning_value?:string,
|
|
297
|
+
responded?:boolean,
|
|
298
|
+
seconds_allowed?:number,
|
|
299
|
+
manual_close_only?:boolean,
|
|
300
|
+
total_responses?:number,
|
|
301
|
+
total_options?:number,
|
|
302
|
+
poll_options?:PollOptionProps[],
|
|
303
|
+
poll_summaries?:PollSummaryProps[],
|
|
304
|
+
create_datetime:any,
|
|
305
|
+
last_update_datetime:any
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
export interface PollSummaryProps {
|
|
309
|
+
poll_id:string,
|
|
310
|
+
poll_option_id:string,
|
|
311
|
+
count:number,
|
|
312
|
+
stake:number,
|
|
313
|
+
pct:number
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
export interface PollOptionProps {
|
|
317
|
+
poll_option_id:string,
|
|
318
|
+
poll_id:string,
|
|
319
|
+
option_type: 'select'|'input',
|
|
320
|
+
option_name: string,
|
|
321
|
+
option_value:string,
|
|
322
|
+
input_type?:string,
|
|
323
|
+
input_result:number,
|
|
324
|
+
priority:number,
|
|
325
|
+
status:string,
|
|
326
|
+
result_ind?:'win'|'lose'|'draw'
|
|
327
|
+
parimutuel_odds?:number,
|
|
328
|
+
response_message?:string,
|
|
329
|
+
respond?:boolean,
|
|
330
|
+
create_datetime:any,
|
|
331
|
+
last_update_datetime:any
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
export interface PollResponseProps {
|
|
336
|
+
poll_response_id:string,
|
|
337
|
+
poll_id:string,
|
|
338
|
+
poll_option_id?:string,
|
|
339
|
+
input_value?:string,
|
|
340
|
+
phone?:string,
|
|
341
|
+
email?:string,
|
|
342
|
+
device_id?:string,
|
|
343
|
+
parimutuel_odds?:number,
|
|
344
|
+
stake:number,
|
|
345
|
+
market_type: 'FREE' | 'FOR_MONEY',
|
|
346
|
+
result_ind?:'win'|'lose'|'draw',
|
|
347
|
+
winnings:number,
|
|
348
|
+
timed_out?:boolean,
|
|
349
|
+
player_id:string,
|
|
350
|
+
status:string,
|
|
351
|
+
response_body:any,
|
|
352
|
+
create_datetime:any,
|
|
353
|
+
last_update_datetime:any
|
|
354
|
+
}
|