SudoSOS Back-end API / internal/user-settings / UserSettingsStore
Class: UserSettingsStore<T> ​
Store of user-specific settings, which are key-value pairs stored in the database. Unlike ServerSettingsStore, this is not a singleton and always queries the database to ensure settings are up-to-date.
Type Parameters ​
| Type Parameter | Default type |
|---|---|
T extends keyof IUserSettings | keyof IUserSettings |
Constructors ​
Constructor ​
new UserSettingsStore<T>(): UserSettingsStore<T>;Returns ​
UserSettingsStore<T>
Methods ​
getAllSettings() ​
getAllSettings(userId): Promise<IUserSettings>;Get all settings for a user from the database. Returns defaults for any settings that don't exist or are null/undefined.
Parameters ​
| Parameter | Type | Description |
|---|---|---|
userId | number | The ID of the user |
Returns ​
Promise<IUserSettings>
getSetting() ​
getSetting(userId, key): Promise<IUserSettings[T]>;Get a user setting from the database. Returns the default value if the setting doesn't exist or is null/undefined.
Parameters ​
| Parameter | Type | Description |
|---|---|---|
userId | number | The ID of the user |
key | T | The setting key |
Returns ​
Promise<IUserSettings[T]>
setSetting() ​
setSetting(
userId,
key,
value): Promise<
| void
| UserSetting<keyof IUserSettings>>;Update or create a single user setting If value is undefined, the setting is deleted (to distinguish from null).
Parameters ​
| Parameter | Type | Description |
|---|---|---|
userId | number | The ID of the user |
key | T | The setting key |
value | IUserSettings[T] | The setting value |
Returns ​
Promise< | void | UserSetting<keyof IUserSettings>>
setSettings() ​
setSettings(userId, settings): Promise<UserSetting<keyof IUserSettings>[]>;Update or create multiple user settings at once Undefined values are ignored (not processed), allowing partial updates without accidentally resetting settings. To explicitly delete a setting, use setSetting with undefined.
Parameters ​
| Parameter | Type | Description |
|---|---|---|
userId | number | The ID of the user |
settings | Partial<IUserSettings> | Partial settings object with key-value pairs to update |
Returns ​
Promise<UserSetting<keyof IUserSettings>[]>
toResponse() ​
static toResponse(settings): UserSettingsResponse;Convert IUserSettings to UserSettingsResponse
Parameters ​
| Parameter | Type | Description |
|---|---|---|
settings | IUserSettings | The user settings to convert |