2018-08-30 14:25:33 +00:00
|
|
|
import axios from 'axios';
|
|
|
|
|
2019-10-15 09:31:01 +00:00
|
|
|
import { getPathWithQueryString } from '../helpers/helpers';
|
2020-01-21 13:57:51 +00:00
|
|
|
import { R_PATH_LAST_PART } from '../helpers/constants';
|
2020-08-13 08:15:45 +00:00
|
|
|
import { BASE_URL } from '../../constants';
|
2019-10-15 09:28:49 +00:00
|
|
|
|
2019-09-05 09:12:58 +00:00
|
|
|
class Api {
|
2020-08-13 08:15:45 +00:00
|
|
|
baseUrl = BASE_URL;
|
2018-08-30 14:25:33 +00:00
|
|
|
|
|
|
|
async makeRequest(path, method = 'POST', config) {
|
2018-09-14 12:37:35 +00:00
|
|
|
try {
|
|
|
|
const response = await axios({
|
|
|
|
url: `${this.baseUrl}/${path}`,
|
|
|
|
method,
|
|
|
|
...config,
|
|
|
|
});
|
|
|
|
return response.data;
|
|
|
|
} catch (error) {
|
2018-09-14 18:31:20 +00:00
|
|
|
console.error(error);
|
2019-02-18 16:36:24 +00:00
|
|
|
const errorPath = `${this.baseUrl}/${path}`;
|
|
|
|
if (error.response) {
|
2020-01-21 13:57:51 +00:00
|
|
|
if (error.response.status === 403) {
|
|
|
|
const loginPageUrl = window.location.href.replace(R_PATH_LAST_PART, '/login.html');
|
|
|
|
window.location.replace(loginPageUrl);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2019-02-18 16:36:24 +00:00
|
|
|
throw new Error(`${errorPath} | ${error.response.data} | ${error.response.status}`);
|
|
|
|
}
|
2020-08-13 08:15:45 +00:00
|
|
|
throw new Error(`${errorPath} | ${error.message || error}`);
|
2018-09-14 12:37:35 +00:00
|
|
|
}
|
2018-08-30 14:25:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Global methods
|
2020-08-13 08:15:45 +00:00
|
|
|
GLOBAL_STATUS = {
|
|
|
|
path: 'status',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
|
|
|
|
|
|
|
GLOBAL_TEST_UPSTREAM_DNS = {
|
|
|
|
path: 'test_upstream_dns',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
|
|
|
|
|
|
|
GLOBAL_VERSION = {
|
|
|
|
path: 'version.json',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
|
|
|
|
|
|
|
GLOBAL_UPDATE = {
|
|
|
|
path: 'update',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2018-08-30 14:25:33 +00:00
|
|
|
|
|
|
|
getGlobalStatus() {
|
|
|
|
const { path, method } = this.GLOBAL_STATUS;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
2018-09-21 15:08:39 +00:00
|
|
|
testUpstream(servers) {
|
|
|
|
const { path, method } = this.GLOBAL_TEST_UPSTREAM_DNS;
|
|
|
|
const config = {
|
|
|
|
data: servers,
|
2019-03-06 11:45:21 +00:00
|
|
|
headers: { 'Content-Type': 'application/json' },
|
2018-09-21 15:08:39 +00:00
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, config);
|
|
|
|
}
|
|
|
|
|
2019-06-25 14:56:50 +00:00
|
|
|
getGlobalVersion(data) {
|
2018-09-21 12:20:41 +00:00
|
|
|
const { path, method } = this.GLOBAL_VERSION;
|
2019-06-25 14:56:50 +00:00
|
|
|
const config = {
|
|
|
|
data,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, config);
|
2018-09-21 12:20:41 +00:00
|
|
|
}
|
|
|
|
|
2019-05-16 14:24:30 +00:00
|
|
|
getUpdate() {
|
|
|
|
const { path, method } = this.GLOBAL_UPDATE;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
2018-08-30 14:25:33 +00:00
|
|
|
// Filtering
|
2020-08-13 08:15:45 +00:00
|
|
|
FILTERING_STATUS = {
|
|
|
|
path: 'filtering/status',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
|
|
|
|
|
|
|
FILTERING_ADD_FILTER = {
|
|
|
|
path: 'filtering/add_url',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
|
|
|
|
|
|
|
FILTERING_REMOVE_FILTER = {
|
|
|
|
path: 'filtering/remove_url',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
|
|
|
|
|
|
|
FILTERING_SET_RULES = {
|
|
|
|
path: 'filtering/set_rules',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
|
|
|
|
|
|
|
FILTERING_REFRESH = {
|
|
|
|
path: 'filtering/refresh',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
|
|
|
|
|
|
|
FILTERING_SET_URL = {
|
|
|
|
path: 'filtering/set_url',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
|
|
|
|
|
|
|
FILTERING_CONFIG = {
|
|
|
|
path: 'filtering/config',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
|
|
|
|
|
|
|
FILTERING_CHECK_HOST = {
|
|
|
|
path: 'filtering/check_host',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
2018-08-30 14:25:33 +00:00
|
|
|
|
|
|
|
getFilteringStatus() {
|
2019-10-15 09:28:49 +00:00
|
|
|
const { path, method } = this.FILTERING_STATUS;
|
2018-08-30 14:25:33 +00:00
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
2020-02-28 11:31:45 +00:00
|
|
|
refreshFilters(config) {
|
2018-08-30 14:25:33 +00:00
|
|
|
const { path, method } = this.FILTERING_REFRESH;
|
2020-02-28 11:31:45 +00:00
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
|
|
|
|
return this.makeRequest(path, method, parameters);
|
2018-08-30 14:25:33 +00:00
|
|
|
}
|
|
|
|
|
2020-02-26 16:58:25 +00:00
|
|
|
addFilter(config) {
|
2018-08-30 14:25:33 +00:00
|
|
|
const { path, method } = this.FILTERING_ADD_FILTER;
|
2020-02-26 16:58:25 +00:00
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
2018-08-30 14:25:33 +00:00
|
|
|
};
|
2020-02-26 16:58:25 +00:00
|
|
|
|
|
|
|
return this.makeRequest(path, method, parameters);
|
2018-08-30 14:25:33 +00:00
|
|
|
}
|
|
|
|
|
2019-06-03 13:33:15 +00:00
|
|
|
removeFilter(config) {
|
2018-08-30 14:25:33 +00:00
|
|
|
const { path, method } = this.FILTERING_REMOVE_FILTER;
|
2019-06-03 13:33:15 +00:00
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
2018-08-30 14:25:33 +00:00
|
|
|
};
|
2019-06-03 13:33:15 +00:00
|
|
|
|
|
|
|
return this.makeRequest(path, method, parameters);
|
2018-08-30 14:25:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
setRules(rules) {
|
|
|
|
const { path, method } = this.FILTERING_SET_RULES;
|
|
|
|
const parameters = {
|
|
|
|
data: rules,
|
|
|
|
headers: { 'Content-Type': 'text/plain' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
|
|
|
}
|
|
|
|
|
2019-09-12 13:19:35 +00:00
|
|
|
setFiltersConfig(config) {
|
|
|
|
const { path, method } = this.FILTERING_CONFIG;
|
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
2018-08-30 14:25:33 +00:00
|
|
|
};
|
2019-09-12 13:19:35 +00:00
|
|
|
return this.makeRequest(path, method, parameters);
|
2018-08-30 14:25:33 +00:00
|
|
|
}
|
|
|
|
|
2019-09-12 13:19:35 +00:00
|
|
|
setFilterUrl(config) {
|
|
|
|
const { path, method } = this.FILTERING_SET_URL;
|
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
2018-08-30 14:25:33 +00:00
|
|
|
};
|
2019-09-12 13:19:35 +00:00
|
|
|
return this.makeRequest(path, method, parameters);
|
2018-08-30 14:25:33 +00:00
|
|
|
}
|
|
|
|
|
2020-01-22 14:25:50 +00:00
|
|
|
checkHost(params) {
|
|
|
|
const { path, method } = this.FILTERING_CHECK_HOST;
|
|
|
|
const url = getPathWithQueryString(path, params);
|
|
|
|
return this.makeRequest(url, method);
|
|
|
|
}
|
|
|
|
|
2018-08-30 14:25:33 +00:00
|
|
|
// Parental
|
2020-08-13 08:15:45 +00:00
|
|
|
PARENTAL_STATUS = {
|
|
|
|
path: 'parental/status',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
2020-05-22 14:06:05 +00:00
|
|
|
|
2020-08-13 08:15:45 +00:00
|
|
|
PARENTAL_ENABLE = {
|
|
|
|
path: 'parental/enable',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2020-05-22 14:06:05 +00:00
|
|
|
|
2020-08-13 08:15:45 +00:00
|
|
|
PARENTAL_DISABLE = {
|
|
|
|
path: 'parental/disable',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2018-08-30 14:25:33 +00:00
|
|
|
|
|
|
|
getParentalStatus() {
|
|
|
|
const { path, method } = this.PARENTAL_STATUS;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
enableParentalControl() {
|
|
|
|
const { path, method } = this.PARENTAL_ENABLE;
|
|
|
|
const parameter = 'sensitivity=TEEN'; // this parameter TEEN is hardcoded
|
|
|
|
const config = {
|
|
|
|
data: parameter,
|
|
|
|
headers: { 'Content-Type': 'text/plain' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, config);
|
|
|
|
}
|
|
|
|
|
|
|
|
disableParentalControl() {
|
|
|
|
const { path, method } = this.PARENTAL_DISABLE;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Safebrowsing
|
2020-08-13 08:15:45 +00:00
|
|
|
SAFEBROWSING_STATUS = {
|
|
|
|
path: 'safebrowsing/status',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
2020-05-22 14:06:05 +00:00
|
|
|
|
2020-08-13 08:15:45 +00:00
|
|
|
SAFEBROWSING_ENABLE = {
|
|
|
|
path: 'safebrowsing/enable',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2020-05-22 14:06:05 +00:00
|
|
|
|
2020-08-13 08:15:45 +00:00
|
|
|
SAFEBROWSING_DISABLE = {
|
|
|
|
path: 'safebrowsing/disable',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2018-08-30 14:25:33 +00:00
|
|
|
|
|
|
|
getSafebrowsingStatus() {
|
|
|
|
const { path, method } = this.SAFEBROWSING_STATUS;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
enableSafebrowsing() {
|
|
|
|
const { path, method } = this.SAFEBROWSING_ENABLE;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
disableSafebrowsing() {
|
|
|
|
const { path, method } = this.SAFEBROWSING_DISABLE;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Safesearch
|
2020-08-13 08:15:45 +00:00
|
|
|
SAFESEARCH_STATUS = {
|
|
|
|
path: 'safesearch/status',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
2020-05-22 14:06:05 +00:00
|
|
|
|
2020-08-13 08:15:45 +00:00
|
|
|
SAFESEARCH_ENABLE = {
|
|
|
|
path: 'safesearch/enable',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2020-05-22 14:06:05 +00:00
|
|
|
|
2020-08-13 08:15:45 +00:00
|
|
|
SAFESEARCH_DISABLE = {
|
|
|
|
path: 'safesearch/disable',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2018-08-30 14:25:33 +00:00
|
|
|
|
|
|
|
getSafesearchStatus() {
|
|
|
|
const { path, method } = this.SAFESEARCH_STATUS;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
enableSafesearch() {
|
|
|
|
const { path, method } = this.SAFESEARCH_ENABLE;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
disableSafesearch() {
|
|
|
|
const { path, method } = this.SAFESEARCH_DISABLE;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
2018-11-22 14:56:57 +00:00
|
|
|
|
|
|
|
// Language
|
2020-08-13 08:15:45 +00:00
|
|
|
CURRENT_LANGUAGE = {
|
|
|
|
path: 'i18n/current_language',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
2020-05-22 14:06:05 +00:00
|
|
|
|
2020-08-13 08:15:45 +00:00
|
|
|
CHANGE_LANGUAGE = {
|
|
|
|
path: 'i18n/change_language',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2018-11-22 14:56:57 +00:00
|
|
|
|
|
|
|
getCurrentLanguage() {
|
|
|
|
const { path, method } = this.CURRENT_LANGUAGE;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
changeLanguage(lang) {
|
|
|
|
const { path, method } = this.CHANGE_LANGUAGE;
|
|
|
|
const parameters = {
|
|
|
|
data: lang,
|
|
|
|
headers: { 'Content-Type': 'text/plain' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
|
|
|
}
|
2018-12-12 15:12:51 +00:00
|
|
|
|
|
|
|
// DHCP
|
2020-08-13 08:15:45 +00:00
|
|
|
DHCP_STATUS = {
|
|
|
|
path: 'dhcp/status',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
|
|
|
|
|
|
|
DHCP_SET_CONFIG = {
|
|
|
|
path: 'dhcp/set_config',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
|
|
|
|
|
|
|
DHCP_FIND_ACTIVE = {
|
|
|
|
path: 'dhcp/find_active_dhcp',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
|
|
|
|
|
|
|
DHCP_INTERFACES = {
|
|
|
|
path: 'dhcp/interfaces',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
|
|
|
|
|
|
|
DHCP_ADD_STATIC_LEASE = {
|
|
|
|
path: 'dhcp/add_static_lease',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
|
|
|
|
|
|
|
DHCP_REMOVE_STATIC_LEASE = {
|
|
|
|
path: 'dhcp/remove_static_lease',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
|
|
|
|
|
|
|
DHCP_RESET = {
|
|
|
|
path: 'dhcp/reset',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2018-12-12 15:12:51 +00:00
|
|
|
|
|
|
|
getDhcpStatus() {
|
2018-12-13 11:38:00 +00:00
|
|
|
const { path, method } = this.DHCP_STATUS;
|
|
|
|
return this.makeRequest(path, method);
|
2018-12-12 15:12:51 +00:00
|
|
|
}
|
|
|
|
|
2018-12-24 08:48:23 +00:00
|
|
|
getDhcpInterfaces() {
|
|
|
|
const { path, method } = this.DHCP_INTERFACES;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
2018-12-12 15:12:51 +00:00
|
|
|
setDhcpConfig(config) {
|
2018-12-13 11:38:00 +00:00
|
|
|
const { path, method } = this.DHCP_SET_CONFIG;
|
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
2018-12-12 15:12:51 +00:00
|
|
|
}
|
|
|
|
|
2018-12-29 15:43:17 +00:00
|
|
|
findActiveDhcp(name) {
|
2018-12-13 11:38:00 +00:00
|
|
|
const { path, method } = this.DHCP_FIND_ACTIVE;
|
2018-12-29 15:43:17 +00:00
|
|
|
const parameters = {
|
|
|
|
data: name,
|
|
|
|
headers: { 'Content-Type': 'text/plain' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
2019-05-28 12:07:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
addStaticLease(config) {
|
|
|
|
const { path, method } = this.DHCP_ADD_STATIC_LEASE;
|
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
|
|
|
}
|
|
|
|
|
|
|
|
removeStaticLease(config) {
|
|
|
|
const { path, method } = this.DHCP_REMOVE_STATIC_LEASE;
|
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
2018-12-12 15:12:51 +00:00
|
|
|
}
|
2019-01-18 17:17:48 +00:00
|
|
|
|
2019-10-15 14:14:24 +00:00
|
|
|
resetDhcp() {
|
|
|
|
const { path, method } = this.DHCP_RESET;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
2019-01-18 17:17:48 +00:00
|
|
|
// Installation
|
2020-08-13 08:15:45 +00:00
|
|
|
INSTALL_GET_ADDRESSES = {
|
|
|
|
path: 'install/get_addresses',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
2020-05-22 14:06:05 +00:00
|
|
|
|
2020-08-13 08:15:45 +00:00
|
|
|
INSTALL_CONFIGURE = {
|
|
|
|
path: 'install/configure',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2020-05-22 14:06:05 +00:00
|
|
|
|
2020-08-13 08:15:45 +00:00
|
|
|
INSTALL_CHECK_CONFIG = {
|
|
|
|
path: 'install/check_config',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2019-01-18 17:17:48 +00:00
|
|
|
|
|
|
|
getDefaultAddresses() {
|
2019-02-01 16:52:42 +00:00
|
|
|
const { path, method } = this.INSTALL_GET_ADDRESSES;
|
2019-01-18 17:17:48 +00:00
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
setAllSettings(config) {
|
2019-02-01 16:52:42 +00:00
|
|
|
const { path, method } = this.INSTALL_CONFIGURE;
|
2019-01-18 17:17:48 +00:00
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
2019-04-17 11:50:27 +00:00
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
|
|
|
}
|
|
|
|
|
|
|
|
checkConfig(config) {
|
|
|
|
const { path, method } = this.INSTALL_CHECK_CONFIG;
|
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
2019-01-18 17:17:48 +00:00
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
|
|
|
}
|
2019-01-24 15:51:50 +00:00
|
|
|
|
|
|
|
// DNS-over-HTTPS and DNS-over-TLS
|
2020-08-13 08:15:45 +00:00
|
|
|
TLS_STATUS = {
|
|
|
|
path: 'tls/status',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
2020-05-22 14:06:05 +00:00
|
|
|
|
2020-08-13 08:15:45 +00:00
|
|
|
TLS_CONFIG = {
|
|
|
|
path: 'tls/configure',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2020-05-22 14:06:05 +00:00
|
|
|
|
2020-08-13 08:15:45 +00:00
|
|
|
TLS_VALIDATE = {
|
|
|
|
path: 'tls/validate',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2019-01-24 15:51:50 +00:00
|
|
|
|
|
|
|
getTlsStatus() {
|
|
|
|
const { path, method } = this.TLS_STATUS;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
setTlsConfig(config) {
|
|
|
|
const { path, method } = this.TLS_CONFIG;
|
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
|
|
|
}
|
2019-02-18 13:06:27 +00:00
|
|
|
|
|
|
|
validateTlsConfig(config) {
|
|
|
|
const { path, method } = this.TLS_VALIDATE;
|
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
|
|
|
}
|
2019-05-22 14:59:57 +00:00
|
|
|
|
|
|
|
// Per-client settings
|
2020-08-13 08:15:45 +00:00
|
|
|
GET_CLIENTS = {
|
|
|
|
path: 'clients',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
|
|
|
|
|
|
|
FIND_CLIENTS = {
|
|
|
|
path: 'clients/find',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
|
|
|
|
|
|
|
ADD_CLIENT = {
|
|
|
|
path: 'clients/add',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
|
|
|
|
|
|
|
DELETE_CLIENT = {
|
|
|
|
path: 'clients/delete',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
|
|
|
|
|
|
|
UPDATE_CLIENT = {
|
|
|
|
path: 'clients/update',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2019-05-22 14:59:57 +00:00
|
|
|
|
|
|
|
getClients() {
|
|
|
|
const { path, method } = this.GET_CLIENTS;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
addClient(config) {
|
|
|
|
const { path, method } = this.ADD_CLIENT;
|
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
|
|
|
}
|
|
|
|
|
|
|
|
deleteClient(config) {
|
|
|
|
const { path, method } = this.DELETE_CLIENT;
|
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
|
|
|
}
|
|
|
|
|
|
|
|
updateClient(config) {
|
|
|
|
const { path, method } = this.UPDATE_CLIENT;
|
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
|
|
|
}
|
2019-05-30 14:26:19 +00:00
|
|
|
|
2019-11-28 11:47:06 +00:00
|
|
|
findClients(params) {
|
|
|
|
const { path, method } = this.FIND_CLIENTS;
|
|
|
|
const url = getPathWithQueryString(path, params);
|
|
|
|
return this.makeRequest(url, method);
|
|
|
|
}
|
|
|
|
|
2019-05-30 14:26:19 +00:00
|
|
|
// DNS access settings
|
2020-08-13 08:15:45 +00:00
|
|
|
ACCESS_LIST = {
|
|
|
|
path: 'access/list',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
2020-05-22 14:06:05 +00:00
|
|
|
|
2020-08-13 08:15:45 +00:00
|
|
|
ACCESS_SET = {
|
|
|
|
path: 'access/set',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2019-05-30 14:26:19 +00:00
|
|
|
|
|
|
|
getAccessList() {
|
|
|
|
const { path, method } = this.ACCESS_LIST;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
setAccessList(config) {
|
|
|
|
const { path, method } = this.ACCESS_SET;
|
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
|
|
|
}
|
2019-07-22 12:32:12 +00:00
|
|
|
|
|
|
|
// DNS rewrites
|
2020-08-13 08:15:45 +00:00
|
|
|
REWRITES_LIST = {
|
|
|
|
path: 'rewrite/list',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
2020-05-22 14:06:05 +00:00
|
|
|
|
2020-08-13 08:15:45 +00:00
|
|
|
REWRITE_ADD = {
|
|
|
|
path: 'rewrite/add',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2020-05-22 14:06:05 +00:00
|
|
|
|
2020-08-13 08:15:45 +00:00
|
|
|
REWRITE_DELETE = {
|
|
|
|
path: 'rewrite/delete',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2019-07-22 12:32:12 +00:00
|
|
|
|
|
|
|
getRewritesList() {
|
|
|
|
const { path, method } = this.REWRITES_LIST;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
addRewrite(config) {
|
|
|
|
const { path, method } = this.REWRITE_ADD;
|
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
|
|
|
}
|
|
|
|
|
|
|
|
deleteRewrite(config) {
|
|
|
|
const { path, method } = this.REWRITE_DELETE;
|
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
|
|
|
}
|
2019-07-18 11:52:47 +00:00
|
|
|
|
|
|
|
// Blocked services
|
2020-08-13 08:15:45 +00:00
|
|
|
BLOCKED_SERVICES_LIST = {
|
|
|
|
path: 'blocked_services/list',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
2020-05-22 14:06:05 +00:00
|
|
|
|
2020-08-13 08:15:45 +00:00
|
|
|
BLOCKED_SERVICES_SET = {
|
|
|
|
path: 'blocked_services/set',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2019-07-18 11:52:47 +00:00
|
|
|
|
|
|
|
getBlockedServices() {
|
|
|
|
const { path, method } = this.BLOCKED_SERVICES_LIST;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
setBlockedServices(config) {
|
|
|
|
const { path, method } = this.BLOCKED_SERVICES_SET;
|
|
|
|
const parameters = {
|
|
|
|
data: config,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, parameters);
|
|
|
|
}
|
2019-08-08 10:43:06 +00:00
|
|
|
|
|
|
|
// Settings for statistics
|
2020-08-13 08:15:45 +00:00
|
|
|
GET_STATS = {
|
|
|
|
path: 'stats',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
|
|
|
|
|
|
|
STATS_INFO = {
|
|
|
|
path: 'stats_info',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
|
|
|
|
|
|
|
STATS_CONFIG = {
|
|
|
|
path: 'stats_config',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
|
|
|
|
|
|
|
STATS_RESET = {
|
|
|
|
path: 'stats_reset',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2019-08-08 10:43:06 +00:00
|
|
|
|
2019-08-22 13:10:47 +00:00
|
|
|
getStats() {
|
|
|
|
const { path, method } = this.GET_STATS;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
2019-08-08 10:43:06 +00:00
|
|
|
getStatsInfo() {
|
|
|
|
const { path, method } = this.STATS_INFO;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
setStatsConfig(data) {
|
|
|
|
const { path, method } = this.STATS_CONFIG;
|
|
|
|
const config = {
|
|
|
|
data,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, config);
|
|
|
|
}
|
2019-08-30 15:35:27 +00:00
|
|
|
|
|
|
|
resetStats() {
|
|
|
|
const { path, method } = this.STATS_RESET;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
2019-09-04 14:39:35 +00:00
|
|
|
|
|
|
|
// Query log
|
2020-08-13 08:15:45 +00:00
|
|
|
GET_QUERY_LOG = {
|
|
|
|
path: 'querylog',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
|
|
|
|
|
|
|
QUERY_LOG_CONFIG = {
|
|
|
|
path: 'querylog_config',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
|
|
|
|
|
|
|
QUERY_LOG_INFO = {
|
|
|
|
path: 'querylog_info',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
|
|
|
|
|
|
|
QUERY_LOG_CLEAR = {
|
|
|
|
path: 'querylog_clear',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2019-09-04 14:39:35 +00:00
|
|
|
|
2019-10-15 09:28:49 +00:00
|
|
|
getQueryLog(params) {
|
2019-09-04 14:39:35 +00:00
|
|
|
const { path, method } = this.GET_QUERY_LOG;
|
2019-10-15 09:31:01 +00:00
|
|
|
const url = getPathWithQueryString(path, params);
|
2019-10-15 09:28:49 +00:00
|
|
|
return this.makeRequest(url, method);
|
2019-09-04 14:39:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
getQueryLogInfo() {
|
|
|
|
const { path, method } = this.QUERY_LOG_INFO;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
setQueryLogConfig(data) {
|
|
|
|
const { path, method } = this.QUERY_LOG_CONFIG;
|
|
|
|
const config = {
|
|
|
|
data,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, config);
|
|
|
|
}
|
|
|
|
|
|
|
|
clearQueryLog() {
|
|
|
|
const { path, method } = this.QUERY_LOG_CLEAR;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
2019-09-05 16:07:14 +00:00
|
|
|
|
|
|
|
// Login
|
2020-08-13 08:15:45 +00:00
|
|
|
LOGIN = {
|
|
|
|
path: 'login',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2019-09-05 16:07:14 +00:00
|
|
|
|
|
|
|
login(data) {
|
|
|
|
const { path, method } = this.LOGIN;
|
|
|
|
const config = {
|
|
|
|
data,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, config);
|
|
|
|
}
|
2019-10-23 07:31:54 +00:00
|
|
|
|
|
|
|
// Profile
|
2020-08-13 08:15:45 +00:00
|
|
|
GET_PROFILE = {
|
|
|
|
path: 'profile',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
2019-10-23 07:31:54 +00:00
|
|
|
|
|
|
|
getProfile() {
|
|
|
|
const { path, method } = this.GET_PROFILE;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
2019-12-04 18:52:38 +00:00
|
|
|
|
|
|
|
// DNS config
|
2020-08-13 08:15:45 +00:00
|
|
|
GET_DNS_CONFIG = {
|
|
|
|
path: 'dns_info',
|
|
|
|
method: 'GET',
|
|
|
|
};
|
|
|
|
|
|
|
|
SET_DNS_CONFIG = {
|
|
|
|
path: 'dns_config',
|
|
|
|
method: 'POST',
|
|
|
|
};
|
2019-12-04 18:52:38 +00:00
|
|
|
|
|
|
|
getDnsConfig() {
|
|
|
|
const { path, method } = this.GET_DNS_CONFIG;
|
|
|
|
return this.makeRequest(path, method);
|
|
|
|
}
|
|
|
|
|
|
|
|
setDnsConfig(data) {
|
|
|
|
const { path, method } = this.SET_DNS_CONFIG;
|
|
|
|
const config = {
|
|
|
|
data,
|
|
|
|
headers: { 'Content-Type': 'application/json' },
|
|
|
|
};
|
|
|
|
return this.makeRequest(path, method, config);
|
|
|
|
}
|
2018-08-30 14:25:33 +00:00
|
|
|
}
|
2019-09-05 09:12:58 +00:00
|
|
|
|
|
|
|
const apiClient = new Api();
|
|
|
|
export default apiClient;
|