78 lines
2.2 KiB
TypeScript
Executable File
78 lines
2.2 KiB
TypeScript
Executable File
/**
|
||
* Сервис для работы с настройками интеграций
|
||
* Хранит настройки в localStorage
|
||
*/
|
||
|
||
export interface DomaAISettings {
|
||
apiUrl: string;
|
||
/**
|
||
* Токен доступа к Doma AI (предпочтительный способ авторизации)
|
||
*/
|
||
token?: string;
|
||
/**
|
||
* Резервные поля для авторизации по логину/паролю (fallback)
|
||
*/
|
||
email?: string;
|
||
phone?: string;
|
||
password?: string;
|
||
}
|
||
|
||
export interface IntegrationSettings {
|
||
domaAI: DomaAISettings;
|
||
}
|
||
|
||
const SETTINGS_KEY = 'mkd_integration_settings';
|
||
|
||
export const settingsService = {
|
||
/**
|
||
* Получить настройки интеграций
|
||
*/
|
||
getIntegrationSettings(): IntegrationSettings | null {
|
||
try {
|
||
const stored = localStorage.getItem(SETTINGS_KEY);
|
||
if (stored) {
|
||
return JSON.parse(stored);
|
||
}
|
||
return null;
|
||
} catch (e) {
|
||
console.error('[settingsService] Ошибка при чтении настроек:', e);
|
||
return null;
|
||
}
|
||
},
|
||
|
||
/**
|
||
* Сохранить настройки интеграций
|
||
*/
|
||
saveIntegrationSettings(settings: IntegrationSettings): void {
|
||
try {
|
||
localStorage.setItem(SETTINGS_KEY, JSON.stringify(settings));
|
||
} catch (e) {
|
||
console.error('[settingsService] Ошибка при сохранении настроек:', e);
|
||
}
|
||
},
|
||
|
||
/**
|
||
* Получить настройки Дома.АИ
|
||
*/
|
||
getDomaAISettings(): DomaAISettings | null {
|
||
const settings = this.getIntegrationSettings();
|
||
return settings?.domaAI || null;
|
||
},
|
||
|
||
/**
|
||
* Сохранить настройки Дома.АИ
|
||
*/
|
||
saveDomaAISettings(domaAISettings: DomaAISettings): void {
|
||
const currentSettings = this.getIntegrationSettings() || { domaAI: domaAISettings };
|
||
currentSettings.domaAI = domaAISettings;
|
||
this.saveIntegrationSettings(currentSettings);
|
||
},
|
||
|
||
/**
|
||
* Очистить настройки интеграций
|
||
*/
|
||
clearIntegrationSettings(): void {
|
||
localStorage.removeItem(SETTINGS_KEY);
|
||
},
|
||
};
|