@ruiapp/rapid-core 0.10.8 → 0.10.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -3008,6 +3008,7 @@ async function findManyRelationLinksViaLinkTable(options) {
3008
3008
  singularCode: relationModel.singularCode,
3009
3009
  });
3010
3010
  const findEntityOptions = {
3011
+ routeContext,
3011
3012
  filters: [
3012
3013
  {
3013
3014
  field: "id",
@@ -3046,11 +3047,12 @@ async function findManyRelationLinksViaLinkTable(options) {
3046
3047
  return { relationLinks, targetEntities };
3047
3048
  }
3048
3049
  async function findManyRelatedEntitiesViaIdPropertyCode(options) {
3049
- const { server, relationProperty, mainEntityIds, selectRelationOptions } = options;
3050
+ const { server, routeContext, relationProperty, mainEntityIds, selectRelationOptions } = options;
3050
3051
  const dataAccessor = server.getDataAccessor({
3051
3052
  singularCode: relationProperty.targetSingularCode,
3052
3053
  });
3053
3054
  const findEntityOptions = {
3055
+ routeContext,
3054
3056
  filters: [
3055
3057
  {
3056
3058
  field: relationProperty.selfIdColumnName,
@@ -3091,11 +3093,12 @@ async function findManyRelatedEntitiesViaIdPropertyCode(options) {
3091
3093
  return await findEntities(server, dataAccessor, findEntityOptions);
3092
3094
  }
3093
3095
  async function findOneRelatedEntitiesViaIdPropertyCode(options) {
3094
- const { server, relationProperty, relationEntityIds, selectRelationOptions } = options;
3096
+ const { server, routeContext, relationProperty, relationEntityIds, selectRelationOptions } = options;
3095
3097
  const dataAccessor = server.getDataAccessor({
3096
3098
  singularCode: relationProperty.targetSingularCode,
3097
3099
  });
3098
3100
  const findEntityOptions = {
3101
+ routeContext,
3099
3102
  filters: [
3100
3103
  {
3101
3104
  field: "id",
@@ -8081,8 +8084,9 @@ class LicenseService {
8081
8084
  this.#systemSettingItemManager = server.getEntityManager("system_setting_item");
8082
8085
  }
8083
8086
  async loadLicense() {
8087
+ const routeContext = new RouteContext(this.#server, null);
8084
8088
  const settingService = this.#server.getService("settingService");
8085
- const licenseSettings = await settingService.getSystemSettingValues("license");
8089
+ const licenseSettings = await settingService.getSystemSettingValues(routeContext, "license");
8086
8090
  const { deployId, cert: certText } = licenseSettings;
8087
8091
  if (!deployId || !certText) {
8088
8092
  this.#server.getLogger().warn("License was not loaded properly.");
@@ -8106,8 +8110,9 @@ class LicenseService {
8106
8110
  return extractCertLicense(this.#encryptionKey, deployId, cert);
8107
8111
  }
8108
8112
  async updateLicense(certText) {
8113
+ const routeContext = new RouteContext(this.#server, null);
8109
8114
  const settingService = this.#server.getService("settingService");
8110
- const deployId = await settingService.getSystemSettingValue("license", "deployId");
8115
+ const deployId = await settingService.getSystemSettingValue(routeContext, "license", "deployId");
8111
8116
  let license;
8112
8117
  try {
8113
8118
  license = this.parseLicense(deployId, certText);
@@ -8116,7 +8121,7 @@ class LicenseService {
8116
8121
  this.#server.getLogger().error("Parse license failed.", error);
8117
8122
  throw new Error("Parse license failed.");
8118
8123
  }
8119
- await settingService.setSystemSettingValue("license", "cert", certText);
8124
+ await settingService.setSystemSettingValue(routeContext, "license", "cert", certText);
8120
8125
  this.#license = license;
8121
8126
  return license;
8122
8127
  }
@@ -8470,13 +8475,14 @@ class ServerOperationPlugin {
8470
8475
  async configureRoutes(server, applicationConfig) {
8471
8476
  const routes = [];
8472
8477
  for (const operation of this.#operations) {
8478
+ const path = operation.path || `/app/${operation.code}`;
8473
8479
  routes.push({
8474
8480
  namespace: "app",
8475
8481
  name: `app.operations.${operation.code}`,
8476
8482
  code: `app.operations.${operation.code}`,
8477
8483
  type: "RESTful",
8478
8484
  method: operation.method,
8479
- endpoint: `/app/${operation.code}`,
8485
+ endpoint: path,
8480
8486
  actions: [
8481
8487
  {
8482
8488
  code: "runServerOperation",
@@ -8497,8 +8503,8 @@ class ServerOperationPlugin {
8497
8503
 
8498
8504
  const code$4 = "getUserSettingValues";
8499
8505
  async function handler$4(plugin, ctx, options) {
8500
- const { server, routerContext } = ctx;
8501
- const userId = routerContext.state.userId;
8506
+ const { server, routerContext: routeContext } = ctx;
8507
+ const userId = routeContext.state.userId;
8502
8508
  if (!userId) {
8503
8509
  ctx.status = 401;
8504
8510
  ctx.output = {
@@ -8516,7 +8522,7 @@ async function handler$4(plugin, ctx, options) {
8516
8522
  throw new Error(`Group code is required when getting system setting values.`);
8517
8523
  }
8518
8524
  const settingService = server.getService("settingService");
8519
- const settingValues = await settingService.getUserSettingValues(userId, input.groupCode);
8525
+ const settingValues = await settingService.getUserSettingValues(routeContext, userId, input.groupCode);
8520
8526
  ctx.output = settingValues;
8521
8527
  }
8522
8528
 
@@ -8528,7 +8534,7 @@ var getUserSettingValues$1 = /*#__PURE__*/Object.freeze({
8528
8534
 
8529
8535
  const code$3 = "getSystemSettingValues";
8530
8536
  async function handler$3(plugin, ctx, options) {
8531
- const { server, routerContext } = ctx;
8537
+ const { server, routerContext: routeContext } = ctx;
8532
8538
  const input = ctx.input;
8533
8539
  if (options?.groupCode) {
8534
8540
  input.groupCode = options.groupCode;
@@ -8537,7 +8543,7 @@ async function handler$3(plugin, ctx, options) {
8537
8543
  throw new Error(`Group code is required when getting system setting values.`);
8538
8544
  }
8539
8545
  const settingService = server.getService("settingService");
8540
- const settingValues = await settingService.getSystemSettingValues(input.groupCode);
8546
+ const settingValues = await settingService.getSystemSettingValues(routeContext, input.groupCode);
8541
8547
  ctx.output = settingValues;
8542
8548
  }
8543
8549
 
@@ -8549,7 +8555,7 @@ var getSystemSettingValues$1 = /*#__PURE__*/Object.freeze({
8549
8555
 
8550
8556
  const code$2 = "setSystemSettingValues";
8551
8557
  async function handler$2(plugin, ctx, options) {
8552
- const { server, routerContext } = ctx;
8558
+ const { server, routerContext: routeContext } = ctx;
8553
8559
  const input = ctx.input;
8554
8560
  if (options?.groupCode) {
8555
8561
  input.groupCode = options.groupCode;
@@ -8558,7 +8564,7 @@ async function handler$2(plugin, ctx, options) {
8558
8564
  throw new Error(`Group code is required when setting system setting values.`);
8559
8565
  }
8560
8566
  const settingService = server.getService("settingService");
8561
- await settingService.setSystemSettingValues(input.groupCode, input.values);
8567
+ await settingService.setSystemSettingValues(routeContext, input.groupCode, input.values);
8562
8568
  ctx.output = {};
8563
8569
  }
8564
8570
 
@@ -8983,8 +8989,9 @@ class SettingService {
8983
8989
  this.#userSettingItemManager = server.getEntityManager("user_setting_item");
8984
8990
  }
8985
8991
  //#region System Setting
8986
- async getSystemSettingItems(groupCode) {
8992
+ async getSystemSettingItems(routeContext, groupCode) {
8987
8993
  return await this.#systemSettingItemManager.findEntities({
8994
+ routeContext,
8988
8995
  filters: [
8989
8996
  {
8990
8997
  operator: "eq",
@@ -8994,15 +9001,16 @@ class SettingService {
8994
9001
  ],
8995
9002
  });
8996
9003
  }
8997
- async getSystemSettingValues(groupCode) {
8998
- const settingItems = await this.getSystemSettingItems(groupCode);
9004
+ async getSystemSettingValues(routeContext, groupCode) {
9005
+ const settingItems = await this.getSystemSettingItems(routeContext, groupCode);
8999
9006
  return settingItems.reduce((settingValues, settingItem) => {
9000
9007
  settingValues[settingItem.itemCode] = settingItem.value;
9001
9008
  return settingValues;
9002
9009
  }, {});
9003
9010
  }
9004
- async getSystemSettingValue(groupCode, itemCode) {
9011
+ async getSystemSettingValue(routeContext, groupCode, itemCode) {
9005
9012
  const settingItem = await this.#systemSettingItemManager.findEntity({
9013
+ routeContext,
9006
9014
  filters: [
9007
9015
  {
9008
9016
  operator: "eq",
@@ -9018,8 +9026,9 @@ class SettingService {
9018
9026
  });
9019
9027
  return settingItem ? settingItem.value : null;
9020
9028
  }
9021
- async setSystemSettingValue(groupCode, itemCode, value) {
9029
+ async setSystemSettingValue(routeContext, groupCode, itemCode, value) {
9022
9030
  const settingItem = await this.#systemSettingItemManager.findEntity({
9031
+ routeContext,
9023
9032
  filters: [
9024
9033
  {
9025
9034
  operator: "eq",
@@ -9036,6 +9045,7 @@ class SettingService {
9036
9045
  if (settingItem) {
9037
9046
  if (settingItem.value !== value) {
9038
9047
  await this.#systemSettingItemManager.updateEntityById({
9048
+ routeContext,
9039
9049
  id: settingItem.id,
9040
9050
  entityToSave: {
9041
9051
  value,
@@ -9045,6 +9055,7 @@ class SettingService {
9045
9055
  }
9046
9056
  else {
9047
9057
  await this.#systemSettingItemManager.createEntity({
9058
+ routeContext,
9048
9059
  entity: {
9049
9060
  groupCode,
9050
9061
  itemCode,
@@ -9053,16 +9064,17 @@ class SettingService {
9053
9064
  });
9054
9065
  }
9055
9066
  }
9056
- async setSystemSettingValues(groupCode, settingValues) {
9067
+ async setSystemSettingValues(routeContext, groupCode, settingValues) {
9057
9068
  for (const itemCode in settingValues) {
9058
9069
  const value = settingValues[itemCode];
9059
- await this.setSystemSettingValue(groupCode, itemCode, value);
9070
+ await this.setSystemSettingValue(routeContext, groupCode, itemCode, value);
9060
9071
  }
9061
9072
  }
9062
9073
  //#endregion
9063
9074
  //#region User Setting
9064
- async getUserSettingItems(ownerId, groupCode) {
9075
+ async getUserSettingItems(routeContext, ownerId, groupCode) {
9065
9076
  return await this.#userSettingItemManager.findEntities({
9077
+ routeContext,
9066
9078
  filters: [
9067
9079
  {
9068
9080
  operator: "eq",
@@ -9077,15 +9089,16 @@ class SettingService {
9077
9089
  ],
9078
9090
  });
9079
9091
  }
9080
- async getUserSettingValues(ownerId, groupCode) {
9081
- const settingItems = await this.getUserSettingItems(ownerId, groupCode);
9092
+ async getUserSettingValues(routeContext, ownerId, groupCode) {
9093
+ const settingItems = await this.getUserSettingItems(routeContext, ownerId, groupCode);
9082
9094
  return settingItems.reduce((settingValues, settingItem) => {
9083
9095
  settingValues[settingItem.itemCode] = settingItem.value;
9084
9096
  return settingValues;
9085
9097
  }, {});
9086
9098
  }
9087
- async getUserSettingValue(ownerId, groupCode, itemCode) {
9099
+ async getUserSettingValue(routeContext, ownerId, groupCode, itemCode) {
9088
9100
  const settingItem = await this.#systemSettingItemManager.findEntity({
9101
+ routeContext,
9089
9102
  filters: [
9090
9103
  {
9091
9104
  operator: "eq",
@@ -9106,8 +9119,9 @@ class SettingService {
9106
9119
  });
9107
9120
  return settingItem ? settingItem.value : null;
9108
9121
  }
9109
- async setUserSettingValue(ownerId, groupCode, itemCode, value) {
9122
+ async setUserSettingValue(routeContext, ownerId, groupCode, itemCode, value) {
9110
9123
  const settingItem = await this.#userSettingItemManager.findEntity({
9124
+ routeContext,
9111
9125
  filters: [
9112
9126
  {
9113
9127
  operator: "eq",
@@ -9145,10 +9159,10 @@ class SettingService {
9145
9159
  });
9146
9160
  }
9147
9161
  }
9148
- async setUserSettingValues(ownerId, groupCode, settingValues) {
9162
+ async setUserSettingValues(routeContext, ownerId, groupCode, settingValues) {
9149
9163
  for (const itemCode in settingValues) {
9150
9164
  const value = settingValues[itemCode];
9151
- await this.setUserSettingValue(ownerId, groupCode, itemCode, value);
9165
+ await this.setUserSettingValue(routeContext, ownerId, groupCode, itemCode, value);
9152
9166
  }
9153
9167
  }
9154
9168
  }
@@ -5,6 +5,10 @@ export interface ServerOperation {
5
5
  code: string;
6
6
  description?: string;
7
7
  method: RpdHttpMethod;
8
+ /**
9
+ * 接口路径,默认值为 `/app/{code}`
10
+ */
11
+ path?: string;
8
12
  permissionCheck?: PermissionCheckPolicy;
9
13
  /**
10
14
  * 是否在事务中执行
@@ -1,5 +1,6 @@
1
1
  import { IRpdServer } from "../../core/server";
2
2
  import { SystemSettingItem, UserSettingItem } from "./SettingPluginTypes";
3
+ import { RouteContext } from "../../core/routeContext";
3
4
  export interface GetSystemSettingValuesInput {
4
5
  groupCode: string;
5
6
  }
@@ -13,14 +14,14 @@ export interface GetUserSettingValuesInput {
13
14
  export default class SettingService {
14
15
  #private;
15
16
  constructor(server: IRpdServer);
16
- getSystemSettingItems(groupCode: string): Promise<SystemSettingItem[]>;
17
- getSystemSettingValues(groupCode: string): Promise<Record<string, any>>;
18
- getSystemSettingValue(groupCode: string, itemCode: string): Promise<any>;
19
- setSystemSettingValue(groupCode: string, itemCode: string, value: any): Promise<void>;
20
- setSystemSettingValues(groupCode: string, settingValues: Record<string, any>): Promise<void>;
21
- getUserSettingItems(ownerId: number, groupCode: string): Promise<UserSettingItem[]>;
22
- getUserSettingValues(ownerId: number, groupCode: string): Promise<Record<string, any>>;
23
- getUserSettingValue(ownerId: number, groupCode: string, itemCode: string): Promise<any>;
24
- setUserSettingValue(ownerId: number, groupCode: string, itemCode: string, value: any): Promise<void>;
25
- setUserSettingValues(ownerId: number, groupCode: string, settingValues: Record<string, any>): Promise<void>;
17
+ getSystemSettingItems(routeContext: RouteContext, groupCode: string): Promise<SystemSettingItem[]>;
18
+ getSystemSettingValues(routeContext: RouteContext, groupCode: string): Promise<Record<string, any>>;
19
+ getSystemSettingValue(routeContext: RouteContext, groupCode: string, itemCode: string): Promise<any>;
20
+ setSystemSettingValue(routeContext: RouteContext, groupCode: string, itemCode: string, value: any): Promise<void>;
21
+ setSystemSettingValues(routeContext: RouteContext, groupCode: string, settingValues: Record<string, any>): Promise<void>;
22
+ getUserSettingItems(routeContext: RouteContext, ownerId: number, groupCode: string): Promise<UserSettingItem[]>;
23
+ getUserSettingValues(routeContext: RouteContext, ownerId: number, groupCode: string): Promise<Record<string, any>>;
24
+ getUserSettingValue(routeContext: RouteContext, ownerId: number, groupCode: string, itemCode: string): Promise<any>;
25
+ setUserSettingValue(routeContext: RouteContext, ownerId: number, groupCode: string, itemCode: string, value: any): Promise<void>;
26
+ setUserSettingValues(routeContext: RouteContext, ownerId: number, groupCode: string, settingValues: Record<string, any>): Promise<void>;
26
27
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ruiapp/rapid-core",
3
- "version": "0.10.8",
3
+ "version": "0.10.10",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -652,6 +652,7 @@ async function findManyRelationLinksViaLinkTable(options: FindManyRelationEntiti
652
652
  });
653
653
 
654
654
  const findEntityOptions: FindEntityOptions = {
655
+ routeContext,
655
656
  filters: [
656
657
  {
657
658
  field: "id",
@@ -695,12 +696,13 @@ async function findManyRelationLinksViaLinkTable(options: FindManyRelationEntiti
695
696
  }
696
697
 
697
698
  async function findManyRelatedEntitiesViaIdPropertyCode(options: FindManyRelationEntitiesOptions) {
698
- const { server, relationProperty, mainEntityIds, selectRelationOptions } = options;
699
+ const { server, routeContext, relationProperty, mainEntityIds, selectRelationOptions } = options;
699
700
  const dataAccessor = server.getDataAccessor({
700
701
  singularCode: relationProperty.targetSingularCode as string,
701
702
  });
702
703
 
703
704
  const findEntityOptions: FindEntityOptions = {
705
+ routeContext,
704
706
  filters: [
705
707
  {
706
708
  field: relationProperty.selfIdColumnName,
@@ -744,13 +746,14 @@ async function findManyRelatedEntitiesViaIdPropertyCode(options: FindManyRelatio
744
746
  }
745
747
 
746
748
  async function findOneRelatedEntitiesViaIdPropertyCode(options: FindOneRelationEntitiesOptions) {
747
- const { server, relationProperty, relationEntityIds, selectRelationOptions } = options;
749
+ const { server, routeContext, relationProperty, relationEntityIds, selectRelationOptions } = options;
748
750
 
749
751
  const dataAccessor = server.getDataAccessor({
750
752
  singularCode: relationProperty.targetSingularCode as string,
751
753
  });
752
754
 
753
755
  const findEntityOptions: FindEntityOptions = {
756
+ routeContext,
754
757
  filters: [
755
758
  {
756
759
  field: "id",
@@ -7,6 +7,7 @@ import { extractCertLicense } from "./helpers/certHelper";
7
7
  import dayjs from "dayjs";
8
8
  import { get, isString } from "lodash";
9
9
  import { isNullOrUndefinedOrEmpty } from "~/utilities/typeUtility";
10
+ import { RouteContext } from "~/core/routeContext";
10
11
 
11
12
  export interface GetSystemSettingValuesInput {
12
13
  groupCode: string;
@@ -35,8 +36,10 @@ export default class LicenseService {
35
36
  }
36
37
 
37
38
  async loadLicense(): Promise<void> {
39
+ const routeContext = new RouteContext(this.#server, null);
40
+
38
41
  const settingService = this.#server.getService<SettingService>("settingService");
39
- const licenseSettings = await settingService.getSystemSettingValues("license");
42
+ const licenseSettings = await settingService.getSystemSettingValues(routeContext, "license");
40
43
  const { deployId, cert: certText } = licenseSettings as LicenseSettings;
41
44
 
42
45
  if (!deployId || !certText) {
@@ -64,8 +67,9 @@ export default class LicenseService {
64
67
  }
65
68
 
66
69
  async updateLicense(certText: string) {
70
+ const routeContext = new RouteContext(this.#server, null);
67
71
  const settingService = this.#server.getService<SettingService>("settingService");
68
- const deployId: string = await settingService.getSystemSettingValue("license", "deployId");
72
+ const deployId: string = await settingService.getSystemSettingValue(routeContext, "license", "deployId");
69
73
 
70
74
  let license: RpdLicense;
71
75
  try {
@@ -75,7 +79,7 @@ export default class LicenseService {
75
79
  throw new Error("Parse license failed.");
76
80
  }
77
81
 
78
- await settingService.setSystemSettingValue("license", "cert", certText);
82
+ await settingService.setSystemSettingValue(routeContext, "license", "cert", certText);
79
83
  this.#license = license;
80
84
  return license;
81
85
  }
@@ -62,13 +62,14 @@ class ServerOperationPlugin implements RapidPlugin {
62
62
  async configureRoutes(server: IRpdServer, applicationConfig: RpdApplicationConfig): Promise<any> {
63
63
  const routes: RpdRoute[] = [];
64
64
  for (const operation of this.#operations) {
65
+ const path = operation.path || `/app/${operation.code}`;
65
66
  routes.push({
66
67
  namespace: "app",
67
68
  name: `app.operations.${operation.code}`,
68
69
  code: `app.operations.${operation.code}`,
69
70
  type: "RESTful",
70
71
  method: operation.method,
71
- endpoint: `/app/${operation.code}`,
72
+ endpoint: path,
72
73
  actions: [
73
74
  {
74
75
  code: "runServerOperation",
@@ -6,6 +6,11 @@ export interface ServerOperation {
6
6
  code: string;
7
7
  description?: string;
8
8
  method: RpdHttpMethod;
9
+
10
+ /**
11
+ * 接口路径,默认值为 `/app/{code}`
12
+ */
13
+ path?: string;
9
14
  permissionCheck?: PermissionCheckPolicy;
10
15
 
11
16
  /**
@@ -1,6 +1,7 @@
1
1
  import { IRpdServer } from "~/core/server";
2
2
  import EntityManager from "~/dataAccess/entityManager";
3
3
  import { SystemSettingItem, UserSettingItem } from "./SettingPluginTypes";
4
+ import { RouteContext } from "~/core/routeContext";
4
5
 
5
6
  export interface GetSystemSettingValuesInput {
6
7
  groupCode: string;
@@ -28,8 +29,9 @@ export default class SettingService {
28
29
  }
29
30
 
30
31
  //#region System Setting
31
- async getSystemSettingItems(groupCode: string): Promise<SystemSettingItem[]> {
32
+ async getSystemSettingItems(routeContext: RouteContext, groupCode: string): Promise<SystemSettingItem[]> {
32
33
  return await this.#systemSettingItemManager.findEntities({
34
+ routeContext,
33
35
  filters: [
34
36
  {
35
37
  operator: "eq",
@@ -40,8 +42,8 @@ export default class SettingService {
40
42
  });
41
43
  }
42
44
 
43
- async getSystemSettingValues(groupCode: string): Promise<Record<string, any>> {
44
- const settingItems = await this.getSystemSettingItems(groupCode);
45
+ async getSystemSettingValues(routeContext: RouteContext, groupCode: string): Promise<Record<string, any>> {
46
+ const settingItems = await this.getSystemSettingItems(routeContext, groupCode);
45
47
 
46
48
  return settingItems.reduce<Record<string, any>>((settingValues, settingItem) => {
47
49
  settingValues[settingItem.itemCode] = settingItem.value;
@@ -49,8 +51,9 @@ export default class SettingService {
49
51
  }, {});
50
52
  }
51
53
 
52
- async getSystemSettingValue(groupCode: string, itemCode: string): Promise<any> {
54
+ async getSystemSettingValue(routeContext: RouteContext, groupCode: string, itemCode: string): Promise<any> {
53
55
  const settingItem = await this.#systemSettingItemManager.findEntity({
56
+ routeContext,
54
57
  filters: [
55
58
  {
56
59
  operator: "eq",
@@ -68,8 +71,9 @@ export default class SettingService {
68
71
  return settingItem ? settingItem.value : null;
69
72
  }
70
73
 
71
- async setSystemSettingValue(groupCode: string, itemCode: string, value: any) {
74
+ async setSystemSettingValue(routeContext: RouteContext, groupCode: string, itemCode: string, value: any) {
72
75
  const settingItem = await this.#systemSettingItemManager.findEntity({
76
+ routeContext,
73
77
  filters: [
74
78
  {
75
79
  operator: "eq",
@@ -87,6 +91,7 @@ export default class SettingService {
87
91
  if (settingItem) {
88
92
  if (settingItem.value !== value) {
89
93
  await this.#systemSettingItemManager.updateEntityById({
94
+ routeContext,
90
95
  id: settingItem.id,
91
96
  entityToSave: {
92
97
  value,
@@ -95,6 +100,7 @@ export default class SettingService {
95
100
  }
96
101
  } else {
97
102
  await this.#systemSettingItemManager.createEntity({
103
+ routeContext,
98
104
  entity: {
99
105
  groupCode,
100
106
  itemCode,
@@ -104,17 +110,18 @@ export default class SettingService {
104
110
  }
105
111
  }
106
112
 
107
- async setSystemSettingValues(groupCode: string, settingValues: Record<string, any>) {
113
+ async setSystemSettingValues(routeContext: RouteContext, groupCode: string, settingValues: Record<string, any>) {
108
114
  for (const itemCode in settingValues) {
109
115
  const value = settingValues[itemCode];
110
- await this.setSystemSettingValue(groupCode, itemCode, value);
116
+ await this.setSystemSettingValue(routeContext, groupCode, itemCode, value);
111
117
  }
112
118
  }
113
119
  //#endregion
114
120
 
115
121
  //#region User Setting
116
- async getUserSettingItems(ownerId: number, groupCode: string): Promise<UserSettingItem[]> {
122
+ async getUserSettingItems(routeContext: RouteContext, ownerId: number, groupCode: string): Promise<UserSettingItem[]> {
117
123
  return await this.#userSettingItemManager.findEntities({
124
+ routeContext,
118
125
  filters: [
119
126
  {
120
127
  operator: "eq",
@@ -130,8 +137,8 @@ export default class SettingService {
130
137
  });
131
138
  }
132
139
 
133
- async getUserSettingValues(ownerId: number, groupCode: string): Promise<Record<string, any>> {
134
- const settingItems = await this.getUserSettingItems(ownerId, groupCode);
140
+ async getUserSettingValues(routeContext: RouteContext, ownerId: number, groupCode: string): Promise<Record<string, any>> {
141
+ const settingItems = await this.getUserSettingItems(routeContext, ownerId, groupCode);
135
142
 
136
143
  return settingItems.reduce<Record<string, any>>((settingValues, settingItem) => {
137
144
  settingValues[settingItem.itemCode] = settingItem.value;
@@ -139,8 +146,9 @@ export default class SettingService {
139
146
  }, {});
140
147
  }
141
148
 
142
- async getUserSettingValue(ownerId: number, groupCode: string, itemCode: string): Promise<any> {
149
+ async getUserSettingValue(routeContext: RouteContext, ownerId: number, groupCode: string, itemCode: string): Promise<any> {
143
150
  const settingItem = await this.#systemSettingItemManager.findEntity({
151
+ routeContext,
144
152
  filters: [
145
153
  {
146
154
  operator: "eq",
@@ -163,8 +171,9 @@ export default class SettingService {
163
171
  return settingItem ? settingItem.value : null;
164
172
  }
165
173
 
166
- async setUserSettingValue(ownerId: number, groupCode: string, itemCode: string, value: any) {
174
+ async setUserSettingValue(routeContext: RouteContext, ownerId: number, groupCode: string, itemCode: string, value: any) {
167
175
  const settingItem = await this.#userSettingItemManager.findEntity({
176
+ routeContext,
168
177
  filters: [
169
178
  {
170
179
  operator: "eq",
@@ -203,10 +212,10 @@ export default class SettingService {
203
212
  }
204
213
  }
205
214
 
206
- async setUserSettingValues(ownerId: number, groupCode: string, settingValues: Record<string, any>) {
215
+ async setUserSettingValues(routeContext: RouteContext, ownerId: number, groupCode: string, settingValues: Record<string, any>) {
207
216
  for (const itemCode in settingValues) {
208
217
  const value = settingValues[itemCode];
209
- await this.setUserSettingValue(ownerId, groupCode, itemCode, value);
218
+ await this.setUserSettingValue(routeContext, ownerId, groupCode, itemCode, value);
210
219
  }
211
220
  }
212
221
  //#endregion
@@ -9,8 +9,8 @@ export interface GetSystemSettingValuesOptions {
9
9
  export const code = "getSystemSettingValues";
10
10
 
11
11
  export async function handler(plugin: RapidPlugin, ctx: ActionHandlerContext, options: GetSystemSettingValuesOptions) {
12
- const { server, routerContext } = ctx;
13
- const { response } = routerContext;
12
+ const { server, routerContext: routeContext } = ctx;
13
+ const { response } = routeContext;
14
14
 
15
15
  const input: GetSystemSettingValuesInput = ctx.input;
16
16
 
@@ -24,7 +24,7 @@ export async function handler(plugin: RapidPlugin, ctx: ActionHandlerContext, op
24
24
 
25
25
  const settingService = server.getService<SettingService>("settingService");
26
26
 
27
- const settingValues = await settingService.getSystemSettingValues(input.groupCode);
27
+ const settingValues = await settingService.getSystemSettingValues(routeContext, input.groupCode);
28
28
 
29
29
  ctx.output = settingValues;
30
30
  }
@@ -9,8 +9,8 @@ export interface GetUserSettingValuesOptions {
9
9
  export const code = "getUserSettingValues";
10
10
 
11
11
  export async function handler(plugin: RapidPlugin, ctx: ActionHandlerContext, options: GetUserSettingValuesOptions) {
12
- const { server, routerContext } = ctx;
13
- const userId = routerContext.state.userId;
12
+ const { server, routerContext: routeContext } = ctx;
13
+ const userId = routeContext.state.userId;
14
14
  if (!userId) {
15
15
  ctx.status = 401;
16
16
  ctx.output = {
@@ -32,7 +32,7 @@ export async function handler(plugin: RapidPlugin, ctx: ActionHandlerContext, op
32
32
  }
33
33
 
34
34
  const settingService = server.getService<SettingService>("settingService");
35
- const settingValues = await settingService.getUserSettingValues(userId, input.groupCode);
35
+ const settingValues = await settingService.getUserSettingValues(routeContext, userId, input.groupCode);
36
36
 
37
37
  ctx.output = settingValues;
38
38
  }
@@ -9,8 +9,8 @@ export interface SetSystemSettingValuesOptions {
9
9
  export const code = "setSystemSettingValues";
10
10
 
11
11
  export async function handler(plugin: RapidPlugin, ctx: ActionHandlerContext, options: SetSystemSettingValuesOptions) {
12
- const { server, routerContext } = ctx;
13
- const { response } = routerContext;
12
+ const { server, routerContext: routeContext } = ctx;
13
+ const { response } = routeContext;
14
14
 
15
15
  const input: SetSystemSettingValuesInput = ctx.input;
16
16
 
@@ -24,7 +24,7 @@ export async function handler(plugin: RapidPlugin, ctx: ActionHandlerContext, op
24
24
 
25
25
  const settingService = server.getService<SettingService>("settingService");
26
26
 
27
- await settingService.setSystemSettingValues(input.groupCode, input.values);
27
+ await settingService.setSystemSettingValues(routeContext, input.groupCode, input.values);
28
28
 
29
29
  ctx.output = {};
30
30
  }