1 | var ReactNative = require('react-native');
|
2 | var {
|
3 | AsyncStorage
|
4 | } = ReactNative;
|
5 | var mode = 'production';
|
6 | var https = null;
|
7 | var https_ = null;
|
8 | var wss = null;
|
9 | var domain = '';
|
10 | switch (mode) {
|
11 | case 'staging':
|
12 | domain = 'herocarcarestaging001.azurewebsites.net';
|
13 | break;
|
14 | case 'production':
|
15 | domain = 'herocarcare.azurewebsites.net';
|
16 | break;
|
17 | default:
|
18 | domain = 'hero-car-care-001.azurewebsites.net';
|
19 | break;
|
20 | }
|
21 | https_ = `https://${domain}`;
|
22 | https = https_ + '/';
|
23 | wss = `wss://${domain}/`;
|
24 |
|
25 | export const DEFAULT_URL = https;
|
26 |
|
27 | export const DEFAULT_URL_ = https_;
|
28 | export const WS_DEFAULT_URL = wss
|
29 | export const DEBUG_MODE = false;
|
30 | export const setEnvironment = environment => {
|
31 | return AsyncStorage.setItem('ENVIRONMENT', environment);
|
32 | }
|
33 | var GOOGLE_PLACES_API = null;
|
34 | export const setGooglePlacesApi = api => {
|
35 | GOOGLE_PLACES_API = api;
|
36 | return AsyncStorage.setItem('GOOGLE_PLACES_API', api);
|
37 | }
|
38 | export const getGooglePlacesApi = () => {
|
39 | return GOOGLE_PLACES_API;
|
40 | }
|
41 | export const ENVIRONMENT_URLS = 'ENVIRONMENT_URLS'
|
42 | export const ENVIRONMENT_URLS_WS = 'ENVIRONMENT_URLS_WS'
|
43 | export const setEnvironmentUrls = dict => {
|
44 | return AsyncStorage.setItem(ENVIRONMENT_URLS, JSON.stringify(dict)).then(() => {
|
45 | if (setDefaultUrlPromise && typeof (setDefaultUrlPromise) === 'function')
|
46 | setDefaultUrlPromise();
|
47 | setDefaultUrlPromise = true;
|
48 | });
|
49 | }
|
50 | export const setEnvironmentWebSocketUrls = dict => {
|
51 | return AsyncStorage.setItem(ENVIRONMENT_URLS_WS, JSON.stringify(dict)).then(() => {
|
52 | if (setDefaultWSPromise && typeof (setDefaultWSPromise) === 'function')
|
53 | setDefaultWSPromise();
|
54 | setDefaultWSPromise = true;
|
55 | });
|
56 | }
|
57 |
|
58 |
|
59 | export const setLocation = location => {
|
60 | return AsyncStorage.setItem('LOCATION', JSON.stringify(location));
|
61 | }
|
62 | export const getLocation = () => {
|
63 | return AsyncStorage.getItem('LOCATION').then(item => {
|
64 | if (item) {
|
65 | return JSON.parse(item);
|
66 | }
|
67 | return null;
|
68 | });
|
69 | }
|
70 | var setDefaultWSPromise = null;
|
71 | export const getDefaultWS = () => {
|
72 | return new Promise((resolve) => {
|
73 |
|
74 | if (setDefaultWSPromise) {
|
75 | resolve();
|
76 | }
|
77 | setDefaultWSPromise = resolve;
|
78 | }).then(() => {
|
79 | return AsyncStorage.getItem('ENVIRONMENT').then(res => {
|
80 | return AsyncStorage.getItem(ENVIRONMENT_URLS_WS).then(environments => {
|
81 | var envs = JSON.parse(environments);
|
82 | if (envs[res]) {
|
83 | return envs[res];
|
84 | }
|
85 | throw new Error('unknown ws endpoint');
|
86 | });
|
87 | });
|
88 | });
|
89 | }
|
90 |
|
91 | export const getCurrentEnvironment = () => {
|
92 | return AsyncStorage.getItem('ENVIRONMENT');
|
93 | }
|
94 | var setDefaultUrlPromise = null;
|
95 | export const getDefaultURL = (add) => {
|
96 | add = add || ''
|
97 | return new Promise((resolve, fail) => {
|
98 | if (setDefaultUrlPromise) {
|
99 | resolve();
|
100 | }
|
101 | setDefaultUrlPromise = resolve;
|
102 | }).then(() => {
|
103 | return AsyncStorage.getItem('ENVIRONMENT').then(res => {
|
104 | return AsyncStorage.getItem(ENVIRONMENT_URLS).then(environments => {
|
105 | var envs = JSON.parse(environments);
|
106 | if (envs[res]) {
|
107 | return envs[res];
|
108 | }
|
109 | throw new Error('unknown http(s) endpoint');
|
110 | });
|
111 | });
|
112 | });
|
113 | }
|
114 |
|
115 | export const IceConfiguration = () => {
|
116 | return Promise.resolve().then(() => {
|
117 | return { "iceServers": [{ "url": "stun:stun.l.google.com:19302" }] };
|
118 | });
|
119 | } |
\ | No newline at end of file |