Inject
TSXinject
1import {
2 ContainerRegistryManager,
3 SettingService,
4 Inject,
5 Service,
6} from "@quan-erp/shared-backend-core";
7
8@Service()
9export class MyPluginService {
10 @Inject(SettingService, ContainerRegistryManager.BUILTIN_PLUGIN)
11 private settingService: SettingService;
12}Write methods
set / setMany take ServiceProps with a data payload. datatype must be one of: string | number | boolean | json | date.
- set({ data: { key, value, datatype, userId?, isPublic? } }) — upsert one setting; omit userId for global; isPublic exposes to public settings API
- setMany({ data: Record<key, { value, datatype, userId?, isPublic }> }) — upsert many keys in one call
TSXset
1import {
2 ContainerRegistryManager,
3 Inject,
4 Service,
5 SettingService,
6} from "@quan-erp/shared-backend-core";
7
8@Service()
9export class ThemeSettingService {
10 @Inject(SettingService, ContainerRegistryManager.BUILTIN_PLUGIN)
11 private settingService: SettingService;
12
13 async saveTheme(userId: number, theme: string) {
14 await this.settingService.set({
15 data: {
16 key: "ui.theme",
17 value: theme,
18 datatype: "string",
19 userId,
20 isPublic: false,
21 },
22 });
23 }
24}Read methods
- get(key: string, { userId?, isPublic? }) — one setting; scope by userId and/or public flag
- getAll(userId: number) — all settings visible to that user (user + global)
- getPublicSettings() — settings marked public (no auth user required on the public API path)
TSXget
1import {
2 ContainerRegistryManager,
3 Inject,
4 Service,
5 SettingService,
6} from "@quan-erp/shared-backend-core";
7
8@Service()
9export class ThemeSettingService {
10 @Inject(SettingService, ContainerRegistryManager.BUILTIN_PLUGIN)
11 private settingService: SettingService;
12
13 async loadTheme(userId: number) {
14 return this.settingService.get("ui.theme", { userId });
15 }
16
17 async allForUser(userId: number) {
18 return this.settingService.getAll(userId);
19 }
20}