HM-63. Переключение api через консоль браузера (#22)

This commit is contained in:
Nikolay
2020-07-20 23:29:24 +03:00
committed by GitHub
parent 05b43cac78
commit 1815fb62d9
6 changed files with 139 additions and 18 deletions

View File

@ -0,0 +1,59 @@
import LocalStorageAPI from '../api/LocalStorageAPI';
import {API_NAMES, API_OPTIONS, LOCALHOST} from '../api/consts';
/**
* Класс для команд приложению через консоль браузера, работает только в режиме
* разработки на localhost
*/
class AdminConfigsService {
constructor () {
this.api = new LocalStorageAPI('storageServiceAdminConfigsApi');
}
/**
* Возвращает все опции которые сервис хранит в памяти
*/
getOptions () {
return this.api.request();
}
/**
* Метод получения информации о текущем api
*/
getApi () {
const {apiName} = this.getOptions();
if (apiName) {
return API_OPTIONS[apiName];
}
if (location.hostname.includes(LOCALHOST)) {
return API_OPTIONS[API_NAMES.TESTING];
}
return API_OPTIONS[API_NAMES.PRODUCTION];
}
/**
* Метод переключает api через консоль браузера
* @param {'api-p' | 'api-t' | 'api-l'} apiName - api с которым хотим работать
* @example
* // Переключаем api на localhost, пишем в консоли браузера
* __adminConfigs.setApi('api-l')
*/
setApi (apiName) {
const options = this.getOptions();
if (Object.values(API_NAMES).includes(apiName)) {
this.api.createOrUpdate({
...options,
apiName,
});
location.reload();
}
}
}
const adminConfigsService = new AdminConfigsService();
if (location.hostname === LOCALHOST) {
window.__adminConfigs = adminConfigsService;
}
export default adminConfigsService;