MCPcopy Index your code
hub / github.com/simstudioai/sim / getUserSettings

Function getUserSettings

apps/sim/lib/users/queries.ts:30–77  ·  view source on GitHub ↗
(userId: string | null)

Source from the content-addressed store, hash-verified

28 * user is unauthenticated or has no persisted settings row.
29 */
30export async function getUserSettings(userId: string | null): Promise<UserSettingsApi> {
31 if (!userId) {
32 return defaultUserSettings
33 }
34
35 const result = await db
36 .select({
37 theme: settings.theme,
38 autoConnect: settings.autoConnect,
39 telemetryEnabled: settings.telemetryEnabled,
40 emailPreferences: settings.emailPreferences,
41 billingUsageNotificationsEnabled: settings.billingUsageNotificationsEnabled,
42 showTrainingControls: settings.showTrainingControls,
43 superUserModeEnabled: settings.superUserModeEnabled,
44 mothershipEnvironment: settings.mothershipEnvironment,
45 errorNotificationsEnabled: settings.errorNotificationsEnabled,
46 snapToGridSize: settings.snapToGridSize,
47 showActionBar: settings.showActionBar,
48 timezone: settings.timezone,
49 lastActiveWorkspaceId: settings.lastActiveWorkspaceId,
50 })
51 .from(settings)
52 .where(eq(settings.userId, userId))
53 .limit(1)
54
55 if (!result.length) {
56 return defaultUserSettings
57 }
58
59 const userSettings = result[0]
60
61 return {
62 theme: userSettings.theme as UserSettingsApi['theme'],
63 autoConnect: userSettings.autoConnect,
64 telemetryEnabled: userSettings.telemetryEnabled,
65 emailPreferences: userSettings.emailPreferences ?? {},
66 billingUsageNotificationsEnabled: userSettings.billingUsageNotificationsEnabled ?? true,
67 showTrainingControls: userSettings.showTrainingControls ?? false,
68 superUserModeEnabled: userSettings.superUserModeEnabled ?? false,
69 mothershipEnvironment:
70 (userSettings.mothershipEnvironment as UserSettingsApi['mothershipEnvironment']) ?? 'default',
71 errorNotificationsEnabled: userSettings.errorNotificationsEnabled ?? true,
72 snapToGridSize: userSettings.snapToGridSize ?? 0,
73 showActionBar: userSettings.showActionBar ?? true,
74 timezone: userSettings.timezone ?? null,
75 lastActiveWorkspaceId: userSettings.lastActiveWorkspaceId ?? null,
76 }
77}
78
79/**
80 * Loads a user's public profile fields, or `null` when no matching user exists.

Callers 2

prefetchGeneralSettingsFunction · 0.90
route.tsFile · 0.90

Calls 1

eqFunction · 0.50

Tested by

no test coverage detected