@forestadmin/agent 1.93.2 → 1.93.4
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.
|
@@ -6,6 +6,6 @@ export default class AssociateRelatedRoute extends RelationRoute {
|
|
|
6
6
|
setupRoutes(router: Router): void;
|
|
7
7
|
handleAssociateRelatedRoute(context: Context): Promise<void>;
|
|
8
8
|
associateOneToMany(caller: Caller, scope: ConditionTree, relation: OneToManySchema, parentId: CompositeId, targetedRelationId: CompositeId, context: Context): Promise<void>;
|
|
9
|
-
associateManyToMany(caller: Caller, relation: ManyToManySchema, parentId: CompositeId, targetedRelationId: CompositeId): Promise<void>;
|
|
9
|
+
associateManyToMany(caller: Caller, scope: ConditionTree, relation: ManyToManySchema, parentId: CompositeId, targetedRelationId: CompositeId): Promise<void>;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=associate-related.d.ts.map
|
|
@@ -14,7 +14,7 @@ class AssociateRelatedRoute extends relation_route_1.default {
|
|
|
14
14
|
router.post(`/${this.collectionUrlSlug}/:parentId/relationships/${this.relationUrlSlug}`, this.handleAssociateRelatedRoute.bind(this));
|
|
15
15
|
}
|
|
16
16
|
async handleAssociateRelatedRoute(context) {
|
|
17
|
-
await this.services.authorization.assertCanEdit(context, this.
|
|
17
|
+
await this.services.authorization.assertCanEdit(context, this.foreignCollection.name);
|
|
18
18
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
19
19
|
const body = context.request.body;
|
|
20
20
|
const parentId = id_1.default.unpackId(this.collection.schema, context.params.parentId);
|
|
@@ -26,7 +26,7 @@ class AssociateRelatedRoute extends relation_route_1.default {
|
|
|
26
26
|
await this.associateOneToMany(caller, scope, relation, parentId, targetedRelationId, context);
|
|
27
27
|
}
|
|
28
28
|
else {
|
|
29
|
-
await this.associateManyToMany(caller, relation, parentId, targetedRelationId);
|
|
29
|
+
await this.associateManyToMany(caller, scope, relation, parentId, targetedRelationId);
|
|
30
30
|
}
|
|
31
31
|
context.response.status = types_1.HttpCode.NoContent;
|
|
32
32
|
}
|
|
@@ -39,15 +39,21 @@ class AssociateRelatedRoute extends relation_route_1.default {
|
|
|
39
39
|
value = await datasource_toolkit_1.CollectionUtils.getValue(this.collection, caller, parentId, relation.originKeyTarget);
|
|
40
40
|
await this.foreignCollection.update(caller, filter, { [relation.originKey]: value });
|
|
41
41
|
}
|
|
42
|
-
async associateManyToMany(caller, relation, parentId, targetedRelationId) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
42
|
+
async associateManyToMany(caller, scope, relation, parentId, targetedRelationId) {
|
|
43
|
+
const foreignFilter = new datasource_toolkit_1.Filter({
|
|
44
|
+
conditionTree: datasource_toolkit_1.ConditionTreeFactory.intersect(datasource_toolkit_1.ConditionTreeFactory.matchIds(this.foreignCollection.schema, [targetedRelationId]), scope),
|
|
45
|
+
});
|
|
46
|
+
const [foreignRecordInScope] = await this.foreignCollection.list(caller, foreignFilter, new datasource_toolkit_1.Projection(relation.foreignKeyTarget));
|
|
47
|
+
if (!foreignRecordInScope)
|
|
48
|
+
return;
|
|
49
|
+
const origin = await datasource_toolkit_1.CollectionUtils.getValue(this.collection, caller, parentId, relation.originKeyTarget);
|
|
50
|
+
const record = {
|
|
51
|
+
[relation.originKey]: origin,
|
|
52
|
+
[relation.foreignKey]: foreignRecordInScope[relation.foreignKeyTarget],
|
|
53
|
+
};
|
|
48
54
|
const throughCollection = this.dataSource.getCollection(relation.throughCollection);
|
|
49
55
|
await throughCollection.create(caller, [record]);
|
|
50
56
|
}
|
|
51
57
|
}
|
|
52
58
|
exports.default = AssociateRelatedRoute;
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzb2NpYXRlLXJlbGF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcm91dGVzL21vZGlmaWNhdGlvbi9hc3NvY2lhdGUtcmVsYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVVBLHdFQU95QztBQUV6Qyx1Q0FBdUM7QUFDdkMsZ0dBQXNFO0FBQ3RFLHdEQUFxQztBQUNyQyw0RUFBeUQ7QUFDekQsdUVBQThDO0FBRTlDLE1BQXFCLHFCQUFzQixTQUFRLHdCQUFhO0lBQzlELFdBQVcsQ0FBQyxNQUFjO1FBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQ1QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLDRCQUE0QixJQUFJLENBQUMsZUFBZSxFQUFFLEVBQzVFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQzVDLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLDJCQUEyQixDQUFDLE9BQWdCO1FBQ3ZELE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEYsOERBQThEO1FBQzlELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBVyxDQUFDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLFlBQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRixNQUFNLGtCQUFrQixHQUFHLFlBQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdGLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxh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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forestadmin/agent",
|
|
3
|
-
"version": "1.93.
|
|
3
|
+
"version": "1.93.4",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"@forestadmin/agent-toolkit": "1.2.0",
|
|
17
17
|
"@forestadmin/datasource-customizer": "1.70.0",
|
|
18
18
|
"@forestadmin/datasource-toolkit": "1.54.0",
|
|
19
|
-
"@forestadmin/forestadmin-client": "1.
|
|
20
|
-
"@forestadmin/mcp-server": "1.21.
|
|
19
|
+
"@forestadmin/forestadmin-client": "1.42.0",
|
|
20
|
+
"@forestadmin/mcp-server": "1.21.1",
|
|
21
21
|
"@koa/bodyparser": "^6.0.0",
|
|
22
22
|
"@koa/cors": "^5.0.0",
|
|
23
23
|
"@koa/router": "^13.1.0",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@fastify/express": "^1.1.0",
|
|
50
50
|
"@forestadmin/datasource-sql": "1.17.11",
|
|
51
|
-
"@forestadmin/workflow-executor": "1.23.
|
|
51
|
+
"@forestadmin/workflow-executor": "1.23.8",
|
|
52
52
|
"@nestjs/common": "^11.1.24",
|
|
53
53
|
"@nestjs/core": "^11.1.24",
|
|
54
54
|
"@nestjs/platform-express": "^11.1.24",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
},
|
|
72
72
|
"peerDependencies": {
|
|
73
73
|
"@fastify/express": "^1.1.0 || ^2.0.0 || ^3.0.0 || ^4.0.0",
|
|
74
|
-
"@forestadmin/workflow-executor": "1.23.
|
|
74
|
+
"@forestadmin/workflow-executor": "1.23.8"
|
|
75
75
|
},
|
|
76
76
|
"peerDependenciesMeta": {
|
|
77
77
|
"@fastify/express": {
|