@ruiapp/rapid-core 0.1.68 → 0.1.70
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 +12 -9
- package/dist/plugins/setting/SettingService.d.ts +4 -0
- package/dist/plugins/setting/actionHandlers/setSystemSettingValues.d.ts +7 -0
- package/dist/plugins/setting/routes/index.d.ts +1 -1
- package/dist/plugins/setting/routes/setSystemSettingValues.d.ts +12 -0
- package/package.json +1 -1
- package/src/dataAccess/entityManager.ts +3 -3
- package/src/plugins/setting/SettingService.ts +13 -6
- package/src/plugins/setting/actionHandlers/setSystemSettingValues.ts +30 -0
- package/src/plugins/setting/routes/setSystemSettingValues.ts +15 -0
- package/src/server.ts +2 -1
package/dist/index.js
CHANGED
|
@@ -2638,7 +2638,7 @@ async function createEntity(server, dataAccessor, options, plugin) {
|
|
|
2638
2638
|
targetRow[property.targetIdColumnName] = targetEntityId;
|
|
2639
2639
|
}
|
|
2640
2640
|
}
|
|
2641
|
-
else if (lodash.isNumber(fieldValue)) {
|
|
2641
|
+
else if (lodash.isNumber(fieldValue) || lodash.isString(fieldValue)) {
|
|
2642
2642
|
// fieldValue is id;
|
|
2643
2643
|
const targetEntityId = fieldValue;
|
|
2644
2644
|
const targetEntity = await findById(server, targetDataAccessor, {
|
|
@@ -2849,7 +2849,7 @@ async function updateEntityById(server, dataAccessor, options, plugin) {
|
|
|
2849
2849
|
targetRow[property.targetIdColumnName] = targetEntityId;
|
|
2850
2850
|
}
|
|
2851
2851
|
}
|
|
2852
|
-
else if (lodash.isNumber(fieldValue)) {
|
|
2852
|
+
else if (lodash.isNumber(fieldValue) || lodash.isString(fieldValue)) {
|
|
2853
2853
|
// fieldValue is id;
|
|
2854
2854
|
const targetEntityId = fieldValue;
|
|
2855
2855
|
const targetEntity = await findById(server, targetDataAccessor, {
|
|
@@ -3348,7 +3348,8 @@ class RapidServer {
|
|
|
3348
3348
|
}
|
|
3349
3349
|
async emitEvent(event) {
|
|
3350
3350
|
const { eventName, payload, sender, routeContext: routerContext } = event;
|
|
3351
|
-
this.#logger.debug(`Emitting '${eventName}' event.`, { eventName
|
|
3351
|
+
this.#logger.debug(`Emitting '${eventName}' event.`, { eventName });
|
|
3352
|
+
this.#logger.verbose(`Event payload: `, { payload });
|
|
3352
3353
|
await this.#eventManager.emit(eventName, sender, payload, routerContext);
|
|
3353
3354
|
// TODO: should move this logic into metaManager
|
|
3354
3355
|
// if (
|
|
@@ -6243,12 +6244,14 @@ class SettingService {
|
|
|
6243
6244
|
],
|
|
6244
6245
|
});
|
|
6245
6246
|
if (settingItem) {
|
|
6246
|
-
|
|
6247
|
-
|
|
6248
|
-
|
|
6249
|
-
|
|
6250
|
-
|
|
6251
|
-
|
|
6247
|
+
if (settingItem.value !== value) {
|
|
6248
|
+
await this.#systemSettingItemManager.updateEntityById({
|
|
6249
|
+
id: settingItem.id,
|
|
6250
|
+
entityToSave: {
|
|
6251
|
+
value,
|
|
6252
|
+
},
|
|
6253
|
+
});
|
|
6254
|
+
}
|
|
6252
6255
|
}
|
|
6253
6256
|
else {
|
|
6254
6257
|
await this.#systemSettingItemManager.createEntity({
|
|
@@ -3,6 +3,10 @@ import { SystemSettingItem, UserSettingItem } from "./SettingPluginTypes";
|
|
|
3
3
|
export interface GetSystemSettingValuesInput {
|
|
4
4
|
groupCode: string;
|
|
5
5
|
}
|
|
6
|
+
export interface SetSystemSettingValuesInput {
|
|
7
|
+
groupCode: string;
|
|
8
|
+
values: Record<string, any>;
|
|
9
|
+
}
|
|
6
10
|
export interface GetUserSettingValuesInput {
|
|
7
11
|
groupCode: string;
|
|
8
12
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ActionHandlerContext } from "../../../core/actionHandler";
|
|
2
|
+
import { RapidPlugin } from "../../../core/server";
|
|
3
|
+
export interface SetSystemSettingValuesOptions {
|
|
4
|
+
groupCode: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const code = "setSystemSettingValues";
|
|
7
|
+
export declare function handler(plugin: RapidPlugin, ctx: ActionHandlerContext, options: SetSystemSettingValuesOptions): Promise<void>;
|
package/package.json
CHANGED
|
@@ -22,7 +22,7 @@ import { mapDbRowToEntity, mapEntityToDbRow } from "./entityMapper";
|
|
|
22
22
|
import { mapPropertyNameToColumnName } from "./propertyMapper";
|
|
23
23
|
import { IRpdServer, RapidPlugin } from "~/core/server";
|
|
24
24
|
import { getEntityPartChanges } from "~/helpers/entityHelpers";
|
|
25
|
-
import { filter, find, first, forEach, isArray, isNumber, isObject, keys, map, reject, uniq } from "lodash";
|
|
25
|
+
import { filter, find, first, forEach, isArray, isNumber, isObject, isString, keys, map, reject, uniq } from "lodash";
|
|
26
26
|
import { getEntityPropertiesIncludingBase, getEntityProperty, getEntityPropertyByCode, isRelationProperty } from "../helpers/metaHelper";
|
|
27
27
|
import { ColumnSelectOptions, CountRowOptions, FindRowOptions, FindRowOrderByOptions, RowFilterOptions } from "./dataAccessTypes";
|
|
28
28
|
import { newEntityOperationError } from "~/utilities/errorUtility";
|
|
@@ -709,7 +709,7 @@ async function createEntity(server: IRpdServer, dataAccessor: IRpdDataAccessor,
|
|
|
709
709
|
newEntityOneRelationProps[property.code] = targetEntity;
|
|
710
710
|
targetRow[property.targetIdColumnName!] = targetEntityId;
|
|
711
711
|
}
|
|
712
|
-
} else if (isNumber(fieldValue)) {
|
|
712
|
+
} else if (isNumber(fieldValue) || isString(fieldValue)) {
|
|
713
713
|
// fieldValue is id;
|
|
714
714
|
const targetEntityId = fieldValue;
|
|
715
715
|
const targetEntity = await findById(server, targetDataAccessor, {
|
|
@@ -942,7 +942,7 @@ async function updateEntityById(server: IRpdServer, dataAccessor: IRpdDataAccess
|
|
|
942
942
|
updatedEntityOneRelationProps[property.code] = targetEntity;
|
|
943
943
|
targetRow[property.targetIdColumnName!] = targetEntityId;
|
|
944
944
|
}
|
|
945
|
-
} else if (isNumber(fieldValue)) {
|
|
945
|
+
} else if (isNumber(fieldValue) || isString(fieldValue)) {
|
|
946
946
|
// fieldValue is id;
|
|
947
947
|
const targetEntityId = fieldValue;
|
|
948
948
|
const targetEntity = await findById(server, targetDataAccessor, {
|
|
@@ -6,6 +6,11 @@ export interface GetSystemSettingValuesInput {
|
|
|
6
6
|
groupCode: string;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
+
export interface SetSystemSettingValuesInput {
|
|
10
|
+
groupCode: string;
|
|
11
|
+
values: Record<string, any>;
|
|
12
|
+
}
|
|
13
|
+
|
|
9
14
|
export interface GetUserSettingValuesInput {
|
|
10
15
|
groupCode: string;
|
|
11
16
|
}
|
|
@@ -80,12 +85,14 @@ export default class SettingService {
|
|
|
80
85
|
});
|
|
81
86
|
|
|
82
87
|
if (settingItem) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
88
|
+
if (settingItem.value !== value) {
|
|
89
|
+
await this.#systemSettingItemManager.updateEntityById({
|
|
90
|
+
id: settingItem.id,
|
|
91
|
+
entityToSave: {
|
|
92
|
+
value,
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
}
|
|
89
96
|
} else {
|
|
90
97
|
await this.#systemSettingItemManager.createEntity({
|
|
91
98
|
entity: {
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ActionHandlerContext } from "~/core/actionHandler";
|
|
2
|
+
import { RapidPlugin } from "~/core/server";
|
|
3
|
+
import SettingService, { SetSystemSettingValuesInput } from "../SettingService";
|
|
4
|
+
|
|
5
|
+
export interface SetSystemSettingValuesOptions {
|
|
6
|
+
groupCode: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const code = "setSystemSettingValues";
|
|
10
|
+
|
|
11
|
+
export async function handler(plugin: RapidPlugin, ctx: ActionHandlerContext, options: SetSystemSettingValuesOptions) {
|
|
12
|
+
const { server, routerContext } = ctx;
|
|
13
|
+
const { response } = routerContext;
|
|
14
|
+
|
|
15
|
+
const input: SetSystemSettingValuesInput = ctx.input;
|
|
16
|
+
|
|
17
|
+
if (options?.groupCode) {
|
|
18
|
+
input.groupCode = options.groupCode;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (!input.groupCode) {
|
|
22
|
+
throw new Error(`Group code is required when setting system setting values.`);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const settingService = server.getService<SettingService>("settingService");
|
|
26
|
+
|
|
27
|
+
await settingService.setSystemSettingValues(input.groupCode, input.values);
|
|
28
|
+
|
|
29
|
+
ctx.output = {};
|
|
30
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { RpdRoute } from "~/types";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
namespace: "svc",
|
|
5
|
+
name: "svc.setSystemSettingValues",
|
|
6
|
+
code: "svc.setSystemSettingValues",
|
|
7
|
+
type: "RESTful",
|
|
8
|
+
method: "PATCH",
|
|
9
|
+
endpoint: "/svc/systemSettingValues",
|
|
10
|
+
actions: [
|
|
11
|
+
{
|
|
12
|
+
code: "setSystemSettingValues",
|
|
13
|
+
},
|
|
14
|
+
],
|
|
15
|
+
} satisfies RpdRoute;
|
package/src/server.ts
CHANGED
|
@@ -259,7 +259,8 @@ export class RapidServer implements IRpdServer {
|
|
|
259
259
|
|
|
260
260
|
async emitEvent<TEventName extends keyof RpdServerEventTypes>(event: EmitServerEventOptions<TEventName>) {
|
|
261
261
|
const { eventName, payload, sender, routeContext: routerContext } = event;
|
|
262
|
-
this.#logger.debug(`Emitting '${eventName}' event.`, { eventName
|
|
262
|
+
this.#logger.debug(`Emitting '${eventName}' event.`, { eventName });
|
|
263
|
+
this.#logger.verbose(`Event payload: `, { payload });
|
|
263
264
|
await this.#eventManager.emit<TEventName>(eventName, sender, payload as any, routerContext);
|
|
264
265
|
|
|
265
266
|
// TODO: should move this logic into metaManager
|