HM-63. Переключение api через консоль браузера (#22)
This commit is contained in:
59
src/services/AdminConfigsService.js
Normal file
59
src/services/AdminConfigsService.js
Normal 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;
|
||||
Reference in New Issue
Block a user