Skip to content
This repository was archived by the owner on Feb 22, 2024. It is now read-only.

Commit d71cebd

Browse files
author
Aaron Imming
authored
Merge branch 'dev' into amam/barrier_default_value
2 parents c069ede + 1cd568f commit d71cebd

File tree

4 files changed

+35
-19
lines changed

4 files changed

+35
-19
lines changed

src/botPage/common/symbolApi/index.js

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import ActiveSymbols from './activeSymbols';
22
import config from '../../common/const';
33
import { getObjectValue } from '../../../common/utils/tools';
4-
import { getTokenList } from '../../../common/utils/storageManager';
4+
import { getTokenList, removeAllTokens } from '../../../common/utils/storageManager';
55

66
const noop = () => {};
77

@@ -44,7 +44,7 @@ export default class _Symbol {
4444
constructor(api) {
4545
this.api = api;
4646
this.initPromise = new Promise(resolve => {
47-
const getActiveSymbolsPromise = () => {
47+
const getActiveSymbolsLogic = () => {
4848
this.api.getActiveSymbolsBrief().then(r => {
4949
this.activeSymbols = new ActiveSymbols(r.active_symbols);
5050
this.api.getAssetIndex().then(r2 => {
@@ -53,17 +53,19 @@ export default class _Symbol {
5353
}, noop);
5454
}, noop);
5555
};
56-
// Authorize when possible for accurate offered symbols, assetindex
57-
const getAuthorisePromise = () => {
58-
const tokenList = getTokenList();
59-
if (tokenList.length) {
60-
return this.api.authorize(tokenList[0].token);
61-
}
62-
return new Promise(r => r());
63-
};
64-
getAuthorisePromise()
65-
.then(() => getActiveSymbolsPromise(), noop)
66-
.catch(() => getActiveSymbolsPromise(), noop);
56+
// Authorize the WS connection when possible for accurate offered Symbols & AssetIndex
57+
const tokenList = getTokenList();
58+
if (tokenList.length) {
59+
this.api
60+
.authorize(tokenList[0].token)
61+
.then(getActiveSymbolsLogic())
62+
.catch(() => {
63+
removeAllTokens();
64+
getActiveSymbolsLogic();
65+
});
66+
} else {
67+
getActiveSymbolsLogic();
68+
}
6769
});
6870
}
6971
/* eslint-disable class-methods-use-this */

src/botPage/view/blockly/blocks/shared.js

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@ import { symbolApi } from '../../shared';
33
import config from '../../../common/const';
44
import { generateLiveApiInstance } from '../../../../common/appId';
55
import { translate } from '../../../../common/i18n';
6-
import { get as getStorage, set as setStorage, getTokenList } from '../../../../common/utils/storageManager';
6+
import {
7+
get as getStorage,
8+
set as setStorage,
9+
getTokenList,
10+
removeAllTokens,
11+
} from '../../../../common/utils/storageManager';
712

813
let purchaseChoices = [[translate('Click to select'), '']];
914

@@ -136,21 +141,27 @@ export const dependentFieldMapping = {
136141

137142
export const getAvailableDurations = (symbol, selectedContractType) => {
138143
const contractsForStore = JSON.parse(getStorage('contractsForStore') || '[]');
139-
const tokenList = getTokenList();
144+
let tokenList = getTokenList();
140145
const defaultDurations = [
141146
[translate('Ticks'), 't'],
142147
[translate('Seconds'), 's'],
143148
[translate('Minutes'), 'm'],
144149
[translate('Hours'), 'h'],
145150
[translate('Days'), 'd'],
146151
];
152+
147153
const getContractsForSymbolFromApi = async underlyingSymbol => {
148154
// Refactor this when reducing WS connections
149-
let api = generateLiveApiInstance();
155+
const api = generateLiveApiInstance();
150156

151157
// Try to authorize for accurate contracts response
152158
if (tokenList.length) {
153-
await api.authorize(tokenList[0].token);
159+
try {
160+
await api.authorize(tokenList[0].token);
161+
} catch (e) {
162+
removeAllTokens();
163+
tokenList = [];
164+
}
154165
}
155166

156167
const response = await api.getContractsForSymbol(underlyingSymbol);
@@ -176,7 +187,6 @@ export const getAvailableDurations = (symbol, selectedContractType) => {
176187
setStorage('contractsForStore', JSON.stringify(contractsForStore));
177188
}
178189
api.disconnect();
179-
api = null;
180190
return contractsForSymbol;
181191
};
182192
const getDurationsForContract = contractsForSymbol => {

src/botPage/view/blockly/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ Blockly.ContextMenu.show = (e, menuOptions, rtl) => {
448448
if (window._elev) {
449449
menuOptions.some(option => {
450450
if (option.text === Blockly.Msg.HELP) {
451-
option.callback = () => window._elev.open(); // eslint-disable-line no-param-reassign, no-underscore-dangle
451+
option.callback = () => window._elev.openHome(); // eslint-disable-line no-param-reassign, no-underscore-dangle
452452
return true;
453453
}
454454
return false;

src/common/elevio.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ const Elevio = (() => {
1313
// if (availableElevLanguages.indexOf(currentLanguage) !== -1) {
1414
// window._elev.setLanguage(currentLanguage); // eslint-disable-line no-underscore-dangle
1515
// }
16+
// eslint-disable-next-line no-underscore-dangle
17+
window._elev.setSettings({
18+
page_url: `${document.location.protocol}//${document.location.hostname}${document.location.pathname}`,
19+
});
1620
setUserInfo(elev);
1721
setTranslations(elev);
1822
});

0 commit comments

Comments
 (0)