diff --git a/src/service/api/user-preference.ts b/src/service/api/user-preference.ts new file mode 100644 index 0000000..ca9932b --- /dev/null +++ b/src/service/api/user-preference.ts @@ -0,0 +1,29 @@ +import { SYSTEM_SERVICE_PREFIX } from '@/constants/service'; +import { request } from '../request'; + +const USER_PREFERENCE_THEME_PREFIX = `${SYSTEM_SERVICE_PREFIX}/user-preference/theme`; + +/** 获取当前登录用户的主题偏好覆盖项 */ +export function fetchGetUserPreferenceTheme() { + return request({ + url: USER_PREFERENCE_THEME_PREFIX, + method: 'get' + }); +} + +/** 保存当前登录用户的主题偏好覆盖项 */ +export function fetchSaveUserPreferenceTheme(data: Api.UserPreference.ThemeSettings) { + return request({ + url: USER_PREFERENCE_THEME_PREFIX, + method: 'put', + data + }); +} + +/** 重置当前登录用户的主题偏好覆盖项 */ +export function fetchResetUserPreferenceTheme() { + return request({ + url: USER_PREFERENCE_THEME_PREFIX, + method: 'delete' + }); +} diff --git a/src/typings/api/user-preference.d.ts b/src/typings/api/user-preference.d.ts new file mode 100644 index 0000000..cc1fa8f --- /dev/null +++ b/src/typings/api/user-preference.d.ts @@ -0,0 +1,9 @@ +declare namespace Api { + namespace UserPreference { + type ThemeSettingsValue = { + [K in keyof T]?: T[K] extends Record ? ThemeSettingsValue : T[K]; + }; + + type ThemeSettings = ThemeSettingsValue; + } +}