Files
mkd/services/settingsService.ts
2026-02-04 00:17:04 +05:00

78 lines
2.2 KiB
TypeScript
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* Сервис для работы с настройками интеграций
* Хранит настройки в 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);
},
};