@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 +41 -27
- package/dist/plugins/serverOperation/ServerOperationPluginTypes.d.ts +4 -0
- package/dist/plugins/setting/SettingService.d.ts +11 -10
- package/package.json +1 -1
- package/src/dataAccess/entityManager.ts +5 -2
- package/src/plugins/license/LicenseService.ts +7 -3
- package/src/plugins/serverOperation/ServerOperationPlugin.ts +2 -1
- package/src/plugins/serverOperation/ServerOperationPluginTypes.ts +5 -0
- package/src/plugins/setting/SettingService.ts +23 -14
- package/src/plugins/setting/actionHandlers/getSystemSettingValues.ts +3 -3
- package/src/plugins/setting/actionHandlers/getUserSettingValues.ts +3 -3
- package/src/plugins/setting/actionHandlers/setSystemSettingValues.ts +3 -3
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:
|
|
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 =
|
|
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
|
}
|
|
@@ -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
|
@@ -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:
|
|
72
|
+
endpoint: path,
|
|
72
73
|
actions: [
|
|
73
74
|
{
|
|
74
75
|
code: "runServerOperation",
|
|
@@ -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 } =
|
|
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 =
|
|
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 } =
|
|
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
|
}
|