2022-06-11 00:57:54 +00:00
|
|
|
import axios from 'axios';
|
2021-01-25 09:40:37 +00:00
|
|
|
|
2022-06-11 00:57:54 +00:00
|
|
|
const baseURL =
|
|
|
|
process.env.NODE_ENV === 'development' ? 'http://localhost:8080' : '';
|
2021-01-25 09:40:37 +00:00
|
|
|
|
2021-02-04 12:21:16 +00:00
|
|
|
export function ping(cb) {
|
2022-06-11 00:57:54 +00:00
|
|
|
return axios.get(baseURL + '/api/ping').then((response) => {
|
|
|
|
cb(response.data);
|
|
|
|
});
|
2021-02-04 12:21:16 +00:00
|
|
|
}
|
|
|
|
|
2022-04-14 02:19:22 +00:00
|
|
|
export function queryOutboundIP(cb) {
|
2022-06-14 04:36:10 +00:00
|
|
|
return axios.get<any>(baseURL + '/api/outbound-ip').then((response) => {
|
2022-06-11 00:57:54 +00:00
|
|
|
cb(response.data.outboundIP);
|
|
|
|
});
|
2022-04-14 02:19:22 +00:00
|
|
|
}
|
|
|
|
|
2022-06-15 03:33:40 +00:00
|
|
|
export async function triggerSync() {
|
2022-06-14 07:33:22 +00:00
|
|
|
return axios.post<any>(baseURL + '/api/environment/sync');
|
|
|
|
};
|
2022-06-14 04:36:10 +00:00
|
|
|
|
2022-06-15 03:33:40 +00:00
|
|
|
export enum SyncStatus {
|
|
|
|
SyncNotStarted = 0,
|
|
|
|
Syncing = 1,
|
|
|
|
SyncDone = 2
|
|
|
|
}
|
2022-06-14 04:36:10 +00:00
|
|
|
|
2022-06-15 03:33:40 +00:00
|
|
|
export async function querySyncStatus(): Promise<SyncStatus> {
|
|
|
|
const resp = await axios.get<any>(baseURL + '/api/environment/syncing')
|
|
|
|
return resp.data.syncing
|
2021-02-21 10:08:22 +00:00
|
|
|
}
|
|
|
|
|
2021-02-17 06:57:29 +00:00
|
|
|
export function testDatabaseConnection(params, cb) {
|
2022-06-11 00:57:54 +00:00
|
|
|
return axios.post(baseURL + '/api/setup/test-db', params).then((response) => {
|
|
|
|
cb(response.data);
|
|
|
|
});
|
2021-02-02 09:26:35 +00:00
|
|
|
}
|
|
|
|
|
2021-02-17 06:57:29 +00:00
|
|
|
export function configureDatabase(params, cb) {
|
2022-06-11 00:57:54 +00:00
|
|
|
return axios
|
|
|
|
.post(baseURL + '/api/setup/configure-db', params)
|
|
|
|
.then((response) => {
|
|
|
|
cb(response.data);
|
2021-02-02 09:26:35 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-02-03 07:00:01 +00:00
|
|
|
export function saveConfig(cb) {
|
2022-06-11 00:57:54 +00:00
|
|
|
return axios.post(baseURL + '/api/setup/save').then((response) => {
|
|
|
|
cb(response.data);
|
|
|
|
});
|
2021-02-03 07:00:01 +00:00
|
|
|
}
|
|
|
|
|
2021-02-04 12:21:16 +00:00
|
|
|
export function setupRestart(cb) {
|
2022-06-11 00:57:54 +00:00
|
|
|
return axios.post(baseURL + '/api/setup/restart').then((response) => {
|
|
|
|
cb(response.data);
|
|
|
|
});
|
2021-02-04 12:21:16 +00:00
|
|
|
}
|
|
|
|
|
2021-02-02 09:26:35 +00:00
|
|
|
export function addSession(session, cb) {
|
2022-06-11 00:57:54 +00:00
|
|
|
return axios.post(baseURL + '/api/sessions', session).then((response) => {
|
|
|
|
cb(response.data || []);
|
|
|
|
});
|
2021-02-02 09:26:35 +00:00
|
|
|
}
|
|
|
|
|
2021-02-02 18:26:41 +00:00
|
|
|
export function attachStrategyOn(session, strategyID, strategy, cb) {
|
2022-06-11 00:57:54 +00:00
|
|
|
return axios
|
|
|
|
.post(
|
|
|
|
baseURL + `/api/setup/strategy/single/${strategyID}/session/${session}`,
|
|
|
|
strategy
|
|
|
|
)
|
|
|
|
.then((response) => {
|
|
|
|
cb(response.data);
|
2021-02-02 18:26:41 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-02-02 09:26:35 +00:00
|
|
|
export function testSessionConnection(session, cb) {
|
2022-06-11 00:57:54 +00:00
|
|
|
return axios
|
|
|
|
.post(baseURL + '/api/sessions/test', session)
|
|
|
|
.then((response) => {
|
|
|
|
cb(response.data);
|
2021-02-02 03:44:07 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-02-03 07:00:01 +00:00
|
|
|
export function queryStrategies(cb) {
|
2022-06-14 04:36:10 +00:00
|
|
|
return axios.get<any>(baseURL + '/api/strategies/single').then((response) => {
|
2022-06-11 00:57:54 +00:00
|
|
|
cb(response.data.strategies || []);
|
|
|
|
});
|
2021-02-03 07:00:01 +00:00
|
|
|
}
|
|
|
|
|
2021-01-25 10:29:31 +00:00
|
|
|
export function querySessions(cb) {
|
2022-06-14 04:36:10 +00:00
|
|
|
return axios.get<any>(baseURL + '/api/sessions', {}).then((response) => {
|
2022-06-11 00:57:54 +00:00
|
|
|
cb(response.data.sessions || []);
|
|
|
|
});
|
2021-01-25 10:29:31 +00:00
|
|
|
}
|
|
|
|
|
2021-02-02 17:27:25 +00:00
|
|
|
export function querySessionSymbols(sessionName, cb) {
|
2022-06-11 00:57:54 +00:00
|
|
|
return axios
|
2022-06-14 04:36:10 +00:00
|
|
|
.get<any>(baseURL + `/api/sessions/${sessionName}/symbols`, {})
|
2022-06-11 00:57:54 +00:00
|
|
|
.then((response) => {
|
2022-06-14 04:36:10 +00:00
|
|
|
cb(response.data?.symbols || []);
|
2022-06-11 00:57:54 +00:00
|
|
|
});
|
2021-02-02 17:27:25 +00:00
|
|
|
}
|
|
|
|
|
2021-01-29 10:48:39 +00:00
|
|
|
export function queryTrades(params, cb) {
|
2022-06-14 07:33:22 +00:00
|
|
|
axios
|
|
|
|
.get<any>(baseURL + '/api/trades', { params: params })
|
|
|
|
.then((response) => {
|
|
|
|
cb(response.data.trades || []);
|
|
|
|
});
|
2021-01-29 10:48:39 +00:00
|
|
|
}
|
|
|
|
|
2021-01-29 10:34:03 +00:00
|
|
|
export function queryClosedOrders(params, cb) {
|
2022-06-11 00:57:54 +00:00
|
|
|
axios
|
2022-06-14 04:36:10 +00:00
|
|
|
.get<any>(baseURL + '/api/orders/closed', { params: params })
|
2022-06-11 00:57:54 +00:00
|
|
|
.then((response) => {
|
|
|
|
cb(response.data.orders || []);
|
|
|
|
});
|
2021-01-29 08:50:06 +00:00
|
|
|
}
|
|
|
|
|
2021-01-25 09:40:37 +00:00
|
|
|
export function queryAssets(cb) {
|
2022-06-14 04:36:10 +00:00
|
|
|
axios.get<any>(baseURL + '/api/assets', {}).then((response) => {
|
2022-06-11 00:57:54 +00:00
|
|
|
cb(response.data.assets || []);
|
|
|
|
});
|
2021-01-25 09:40:37 +00:00
|
|
|
}
|
|
|
|
|
2021-01-26 10:10:08 +00:00
|
|
|
export function queryTradingVolume(params, cb) {
|
2022-06-11 00:57:54 +00:00
|
|
|
axios
|
2022-06-14 04:36:10 +00:00
|
|
|
.get<any>(baseURL + '/api/trading-volume', { params: params })
|
2022-06-11 00:57:54 +00:00
|
|
|
.then((response) => {
|
|
|
|
cb(response.data.tradingVolumes || []);
|
|
|
|
});
|
2021-01-26 10:10:08 +00:00
|
|
|
}
|