@forestadmin/agent 1.30.0 → 1.31.1
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/routes/modification/update-relation.d.ts +9 -0
- package/dist/routes/modification/update-relation.js +29 -5
- package/dist/utils/forest-schema/action-fields.d.ts +2 -1
- package/dist/utils/forest-schema/action-fields.js +4 -1
- package/dist/utils/forest-schema/generator-action-field-widget.d.ts +1 -0
- package/dist/utils/forest-schema/generator-action-field-widget.js +9 -1
- package/package.json +4 -4
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="koa__router" />
|
|
2
|
+
import { Caller, CompositeId, ConditionTree, OneToOneSchema } from '@forestadmin/datasource-toolkit';
|
|
2
3
|
import Router from '@koa/router';
|
|
3
4
|
import { Context } from 'koa';
|
|
4
5
|
import RelationRoute from '../relation-route';
|
|
@@ -7,5 +8,13 @@ export default class UpdateRelation extends RelationRoute {
|
|
|
7
8
|
handleUpdateRelationRoute(context: Context): Promise<void>;
|
|
8
9
|
private updateManyToOne;
|
|
9
10
|
private updateOneToOne;
|
|
11
|
+
/**
|
|
12
|
+
* Create new relation (will update exactly one record).
|
|
13
|
+
*/
|
|
14
|
+
private createNewOneToOneRelationship;
|
|
15
|
+
/**
|
|
16
|
+
* Break old relation (may update zero or one records).
|
|
17
|
+
*/
|
|
18
|
+
breakOldOneToOneRelationship(scope: ConditionTree, relation: OneToOneSchema, originValue: unknown, linkedId: CompositeId, caller: Caller): Promise<void>;
|
|
10
19
|
}
|
|
11
20
|
//# sourceMappingURL=update-relation.d.ts.map
|
|
@@ -47,15 +47,39 @@ class UpdateRelation extends relation_route_1.default {
|
|
|
47
47
|
await this.services.authorization.assertCanEdit(context, this.foreignCollection.name);
|
|
48
48
|
// Load the value that will be used as originKey (=== parentId[0] most of the time)
|
|
49
49
|
const originValue = await datasource_toolkit_1.CollectionUtils.getValue(this.collection, caller, parentId, relation.originKeyTarget);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
50
|
+
await this.breakOldOneToOneRelationship(scope, relation, originValue, linkedId, caller);
|
|
51
|
+
await this.createNewOneToOneRelationship(scope, relation, originValue, linkedId, caller);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Create new relation (will update exactly one record).
|
|
55
|
+
*/
|
|
56
|
+
async createNewOneToOneRelationship(scope, relation, originValue, linkedId, caller) {
|
|
54
57
|
if (linkedId) {
|
|
55
58
|
const newFkOwner = datasource_toolkit_1.ConditionTreeFactory.matchIds(this.foreignCollection.schema, [linkedId]);
|
|
56
59
|
await this.foreignCollection.update(caller, new datasource_toolkit_1.Filter({ conditionTree: datasource_toolkit_1.ConditionTreeFactory.intersect(newFkOwner, scope) }), { [relation.originKey]: originValue });
|
|
57
60
|
}
|
|
58
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Break old relation (may update zero or one records).
|
|
64
|
+
*/
|
|
65
|
+
async breakOldOneToOneRelationship(scope, relation, originValue, linkedId, caller) {
|
|
66
|
+
const oldFkOwnerToRemoveFilter = new datasource_toolkit_1.Filter({
|
|
67
|
+
conditionTree: datasource_toolkit_1.ConditionTreeFactory.intersect(new datasource_toolkit_1.ConditionTreeLeaf(relation.originKey, 'Equal', originValue),
|
|
68
|
+
// Don't set the new record's field to null
|
|
69
|
+
// if it's already initialized with the right value
|
|
70
|
+
...(linkedId
|
|
71
|
+
? [datasource_toolkit_1.ConditionTreeFactory.matchIds(this.foreignCollection.schema, [linkedId]).inverse()]
|
|
72
|
+
: []), scope),
|
|
73
|
+
});
|
|
74
|
+
const [count] = await this.foreignCollection.aggregate(caller, oldFkOwnerToRemoveFilter, new datasource_toolkit_1.Aggregation({ operation: 'Count' }), 1);
|
|
75
|
+
if (count.value > 0) {
|
|
76
|
+
// Avoids updating records to null if it's not authorized by the ORM
|
|
77
|
+
// and if there is no record to update (the filter returns no record)
|
|
78
|
+
await this.foreignCollection.update(caller, oldFkOwnerToRemoveFilter, {
|
|
79
|
+
[relation.originKey]: null,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
59
83
|
}
|
|
60
84
|
exports.default = UpdateRelation;
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXJlbGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JvdXRlcy9tb2RpZmljYXRpb24vdXBkYXRlLXJlbGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0VBV3lDO0FBSXpDLHVDQUF1QztBQUN2Qyx3REFBcUM7QUFDckMsNEVBQXlEO0FBQ3pELHVFQUE4QztBQUU5QyxNQUFxQixjQUFlLFNBQVEsd0JBQWE7SUFDdkQsV0FBVyxDQUFDLE1BQWM7UUFDeEIsTUFBTSxDQUFDLEdBQUcsQ0FDUixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSw0QkFBNEIsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUN2RSxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxPQUFnQjtRQUNyRCw4REFBOEQ7UUFDOUQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFXLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsRSxNQUFNLE1BQU0sR0FBRyxzQkFBaUIsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsTUFBTSxRQUFRLEdBQUcsWUFBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRW5GLE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM3QixDQUFDLENBQUMsWUFBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFB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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ActionField, ActionFieldCheckbox, ActionFieldCheckboxGroupAll, ActionFieldCollection, ActionFieldColorPicker, ActionFieldCurrencyInput, ActionFieldDatePickerInput, ActionFieldDropdownAll, ActionFieldEnum, ActionFieldEnumList, ActionFieldNumberInput, ActionFieldNumberInputList, ActionFieldRadioGroupButtonAll as ActionFieldRadioGroupAll, ActionFieldRichText, ActionFieldTextArea, ActionFieldTextInput, ActionFieldTextInputList } from '@forestadmin/datasource-toolkit';
|
|
1
|
+
import { ActionField, ActionFieldCheckbox, ActionFieldCheckboxGroupAll, ActionFieldCollection, ActionFieldColorPicker, ActionFieldCurrencyInput, ActionFieldDatePickerInput, ActionFieldDropdownAll, ActionFieldEnum, ActionFieldEnumList, ActionFieldJsonEditor, ActionFieldNumberInput, ActionFieldNumberInputList, ActionFieldRadioGroupButtonAll as ActionFieldRadioGroupAll, ActionFieldRichText, ActionFieldTextArea, ActionFieldTextInput, ActionFieldTextInputList } from '@forestadmin/datasource-toolkit';
|
|
2
2
|
export default class ActionFields {
|
|
3
3
|
static isCollectionField(field: ActionField | null | undefined): field is ActionFieldCollection;
|
|
4
4
|
static isEnumField(field: ActionField | null | undefined): field is ActionFieldEnum;
|
|
@@ -18,6 +18,7 @@ export default class ActionFields {
|
|
|
18
18
|
static isColorPickerField(field: ActionField | null | undefined): field is ActionFieldColorPicker;
|
|
19
19
|
static isNumberInputListField(field: ActionField | null | undefined): field is ActionFieldNumberInputList;
|
|
20
20
|
static isCurrencyInputField(field: ActionField | null | undefined): field is ActionFieldCurrencyInput;
|
|
21
|
+
static isJsonEditorField(field: ActionField | null | undefined): field is ActionFieldJsonEditor;
|
|
21
22
|
static hasWidget(field: ActionField | null | undefined): field is ActionField & {
|
|
22
23
|
widget: string;
|
|
23
24
|
};
|
|
@@ -55,10 +55,13 @@ class ActionFields {
|
|
|
55
55
|
static isCurrencyInputField(field) {
|
|
56
56
|
return field?.widget === 'CurrencyInput';
|
|
57
57
|
}
|
|
58
|
+
static isJsonEditorField(field) {
|
|
59
|
+
return field?.widget === 'JsonEditor';
|
|
60
|
+
}
|
|
58
61
|
// Other types to be added here in the future ⤵
|
|
59
62
|
static hasWidget(field) {
|
|
60
63
|
return Boolean(field?.widget);
|
|
61
64
|
}
|
|
62
65
|
}
|
|
63
66
|
exports.default = ActionFields;
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWZpZWxkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9mb3Jlc3Qtc2NoZW1hL2FjdGlvbi1maWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFzQkEsTUFBcUIsWUFBWTtJQUN4QixNQUFNLENBQUMsaUJBQWlCLENBQzdCLEtBQXFDO1FBRXJDLE9BQU8sS0FBSyxFQUFFLElBQUksS0FBSyxZQUFZLENBQUM7SUFDdEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBcUM7UUFDN0QsT0FBTyxLQUFLLEVBQUUsSUFBSSxLQUFLLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FDM0IsS0FBcUM7UUFFckMsT0FBTyxLQUFLLEVBQUUsSUFBSSxLQUFLLFVBQVUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFxQztRQUM3RCxPQUFPLEtBQUssRUFBRSxJQUFJLEtBQUssTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQXFDO1FBQ2pFLE9BQU8sS0FBSyxFQUFFLElBQUksS0FBSyxVQUFVLENBQUM7SUFDcEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQzNCLEtBQXFDO1FBRXJDLE9BQVEsS0FBNkIsRUFBRSxNQUFNLEtBQUssVUFBVSxDQUFDO0lBQy9ELENBQUM7SUFFTSxNQUFNLENBQUMsaUJBQWlCLENBQzdCLEtBQXFDO1FBRXJDLE9BQVEsS0FBa0MsRUFBRSxNQUFNLEtBQUssWUFBWSxDQUFDO0lBQ3RFLENBQUM7SUFFTSxNQUFNLENBQUMsb0JBQW9CLENBQ2hDLEtBQXFDO1FBRXJDLE9BQVEsS0FBcUMsRUFBRSxNQUFNLEtBQUssZUFBZSxDQUFDO0lBQzVFLENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUMzQixLQUFxQztRQUVyQyxPQUFRLEtBQTZCLEVBQUUsTUFBTSxLQUFLLFVBQVUsQ0FBQztJQUMvRCxDQUFDO0lBRU0sTUFBTSxDQUFDLGdCQUFnQixDQUM1QixLQUFxQztRQUVyQyxPQUFRLEtBQThCLEVBQUUsTUFBTSxLQUFLLFdBQVcsQ0FBQztJQUNqRSxDQUFDO0lBRU0sTUFBTSxDQUFDLHNCQUFzQixDQUNsQyxLQUFxQztRQUVyQyxPQUFRLEtBQW9DLEVBQUUsTUFBTSxLQUFLLFlBQVksQ0FBQztJQUN4RSxDQUFDO0lBRU0sTUFBTSxDQUFDLG9CQUFvQixDQUNoQyxLQUFxQztRQUVyQyxPQUFRLEtBQWtDLEVBQUUsTUFBTSxLQUFLLGVBQWUsQ0FBQztJQUN6RSxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FDM0IsS0FBcUM7UUFFckMsT0FBUSxLQUE2QixFQUFFLE1BQU0sS0FBSyxVQUFVLENBQUM7SUFDL0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQzNCLEtBQXFDO1FBRXJDLE9BQVEsS0FBNkIsRUFBRSxNQUFNLEtBQUssVUFBVSxDQUFDO0lBQy9ELENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQzlCLEtBQXFDO1FBRXJDLE9BQVEsS0FBZ0MsRUFBRSxNQUFNLEtBQUssYUFBYSxDQUFDO0lBQ3JFLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQzlCLEtBQXFDO1FBRXJDLE9BQVEsS0FBZ0MsRUFBRSxNQUFNLEtBQUssYUFBYSxDQUFDO0lBQ3JFLENBQUM7SUFFTSxNQUFNLENBQUMsc0JBQXNCLENBQ2xDLEtBQXFDO1FBRXJDLE9BQVEsS0FBb0MsRUFBRSxNQUFNLEtBQUssaUJBQWlCLENBQUM7SUFDN0UsQ0FBQztJQUVNLE1BQU0sQ0FBQyxvQkFBb0IsQ0FDaEMsS0FBcUM7UUFFckMsT0FBUSxLQUFrQyxFQUFFLE1BQU0sS0FBSyxlQUFlLENBQUM7SUFDekUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FDN0IsS0FBcUM7UUFFckMsT0FBUSxLQUFxQixFQUFFLE1BQU0sS0FBSyxZQUFZLENBQUM7SUFDekQsQ0FBQztJQUVELCtDQUErQztJQUN4QyxNQUFNLENBQUMsU0FBUyxDQUNyQixLQUFxQztRQUVyQyxPQUFPLE9BQU8sQ0FBRSxLQUE2QixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRjtBQW5IRCwrQkFtSEMifQ==
|
|
@@ -17,5 +17,6 @@ export default class GeneratorActionFieldWidget {
|
|
|
17
17
|
private static buildCurrencyInputWidgetEdit;
|
|
18
18
|
private static mapCurrencyBase;
|
|
19
19
|
private static isValidNumber;
|
|
20
|
+
private static buildJsonEditorWidgetEdit;
|
|
20
21
|
}
|
|
21
22
|
//# sourceMappingURL=generator-action-field-widget.d.ts.map
|
|
@@ -34,6 +34,8 @@ class GeneratorActionFieldWidget {
|
|
|
34
34
|
return GeneratorActionFieldWidget.buildNumberInputListWidgetEdit(field);
|
|
35
35
|
if (action_fields_1.default.isCurrencyInputField(field))
|
|
36
36
|
return GeneratorActionFieldWidget.buildCurrencyInputWidgetEdit(field);
|
|
37
|
+
if (action_fields_1.default.isJsonEditorField(field))
|
|
38
|
+
return GeneratorActionFieldWidget.buildJsonEditorWidgetEdit();
|
|
37
39
|
throw new Error(`Unsupported widget type: ${field.widget}`);
|
|
38
40
|
}
|
|
39
41
|
static buildDropdownWidgetEdit(field) {
|
|
@@ -185,6 +187,12 @@ class GeneratorActionFieldWidget {
|
|
|
185
187
|
static isValidNumber(value) {
|
|
186
188
|
return ![null, undefined].includes(value) && !Number.isNaN(Number(value));
|
|
187
189
|
}
|
|
190
|
+
static buildJsonEditorWidgetEdit() {
|
|
191
|
+
return {
|
|
192
|
+
name: 'json code editor',
|
|
193
|
+
parameters: {},
|
|
194
|
+
};
|
|
195
|
+
}
|
|
188
196
|
}
|
|
189
197
|
exports.default = GeneratorActionFieldWidget;
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLWFjdGlvbi1maWVsZC13aWRnZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvZm9yZXN0LXNjaGVtYS9nZW5lcmF0b3ItYWN0aW9uLWZpZWxkLXdpZGdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQStCQSxvRUFBMkM7QUFFM0MsTUFBcUIsMEJBQTBCO0lBQzdDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFrQjtRQUMxQyxJQUFJLENBQUMsdUJBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQzNGLE9BQU8sU0FBUyxDQUFDO1FBRW5CLElBQUksdUJBQVksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO1lBQ3JDLE9BQU8sMEJBQTBCLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkUsSUFBSSx1QkFBWSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQztZQUN2QyxPQUFPLDBCQUEwQixDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXJFLElBQUksdUJBQVksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUM7WUFDMUMsT0FBTywwQkFBMEIsQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4RSxJQUFJLHVCQUFZLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQztZQUNyQyxPQUFPLDBCQUEwQixDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFFOUQsSUFBSSx1QkFBWSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztZQUN0QyxPQUFPLDBCQUEwQixDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBFLElBQUksdUJBQVksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUM7WUFDNUMsT0FBTyww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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forestadmin/agent",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.31.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@fast-csv/format": "^4.3.5",
|
|
16
16
|
"@fastify/express": "^1.1.0",
|
|
17
|
-
"@forestadmin/datasource-customizer": "1.
|
|
18
|
-
"@forestadmin/datasource-toolkit": "1.
|
|
19
|
-
"@forestadmin/forestadmin-client": "1.
|
|
17
|
+
"@forestadmin/datasource-customizer": "1.31.0",
|
|
18
|
+
"@forestadmin/datasource-toolkit": "1.24.0",
|
|
19
|
+
"@forestadmin/forestadmin-client": "1.20.0",
|
|
20
20
|
"@koa/cors": "^4.0.0",
|
|
21
21
|
"@koa/router": "^12.0.0",
|
|
22
22
|
"forest-ip-utils": "^1.0.1",
|