@steedos/service-object-graphql 2.4.12 → 2.4.13
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/package.json +6 -5
- package/package.service.js +31 -40
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/service-object-graphql",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.13",
|
|
4
4
|
"main": "package.service.js",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|
|
@@ -15,11 +15,12 @@
|
|
|
15
15
|
"description": "steedos package",
|
|
16
16
|
"repository": {},
|
|
17
17
|
"license": "MIT",
|
|
18
|
-
"gitHead": "
|
|
18
|
+
"gitHead": "2cf850386905bc3d5532d27bda3b128c683c2c6f",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@steedos/
|
|
21
|
-
"@steedos/
|
|
22
|
-
"@steedos/
|
|
20
|
+
"@steedos/filters": "2.4.13",
|
|
21
|
+
"@steedos/i18n": "2.4.13",
|
|
22
|
+
"@steedos/objectql": "2.4.13",
|
|
23
|
+
"@steedos/service-object-mixin": "2.4.13",
|
|
23
24
|
"graphql": "^15.8.0",
|
|
24
25
|
"graphql-parse-resolve-info": "^4.12.3",
|
|
25
26
|
"moleculer": "^0.14.25",
|
package/package.service.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* @Author: sunhaolin@hotoa.com
|
|
3
3
|
* @Date: 2023-03-23 15:12:14
|
|
4
4
|
* @LastEditors: sunhaolin@hotoa.com
|
|
5
|
-
* @LastEditTime: 2023-04-
|
|
5
|
+
* @LastEditTime: 2023-04-13 18:48:20
|
|
6
6
|
* @Description:
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
"use strict";
|
|
10
|
-
const { SteedosDatabaseDriverType, getObject } = require('@steedos/objectql');
|
|
10
|
+
const { SteedosDatabaseDriverType, getObject, getDataSource } = require('@steedos/objectql');
|
|
11
11
|
const {
|
|
12
12
|
generateActionGraphqlProp,
|
|
13
13
|
generateSettingsGraphql,
|
|
@@ -16,6 +16,8 @@ const {
|
|
|
16
16
|
} = require('./lib');
|
|
17
17
|
const open = require('open');
|
|
18
18
|
|
|
19
|
+
const { formatFiltersToODataQuery } = require("@steedos/filters");
|
|
20
|
+
|
|
19
21
|
const serviceObjectMixin = require('@steedos/service-object-mixin');
|
|
20
22
|
|
|
21
23
|
/**
|
|
@@ -71,26 +73,8 @@ module.exports = {
|
|
|
71
73
|
async handler(ctx) {
|
|
72
74
|
const resolveInfo = ctx.meta.resolveInfo
|
|
73
75
|
const objectName = resolveInfo.fieldName
|
|
74
|
-
const objectConfig = await getObject(objectName).getConfig()
|
|
75
76
|
// filters: 如果filters中没有查询 is_deleted 则自动添加is_deleted != true 条件
|
|
76
|
-
|
|
77
|
-
const { filters } = ctx.params;
|
|
78
|
-
if (filters) {
|
|
79
|
-
if (_.isString(filters)) {
|
|
80
|
-
if (filters.indexOf('(is_deleted eq true)') < 0) {
|
|
81
|
-
ctx.params.filters = `(${filters}) and (is_deleted ne true)`;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
if (_.isArray(filters)) {
|
|
85
|
-
const filtersStr = formatFiltersToODataQuery(filters);
|
|
86
|
-
if (filtersStr.indexOf('(is_deleted eq true)') < 0) {
|
|
87
|
-
ctx.params.filters = [ctx.params.filters, ['is_deleted', '!=', true]]
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
} else {
|
|
91
|
-
ctx.params.filters = '(is_deleted ne true)'
|
|
92
|
-
}
|
|
93
|
-
}
|
|
77
|
+
ctx.params.filters = await this.dealWithFilters(ctx.params.filters, objectName)
|
|
94
78
|
if (_.isEmpty(ctx.params.fields)) {
|
|
95
79
|
const { resolveInfo } = ctx.meta;
|
|
96
80
|
|
|
@@ -115,26 +99,8 @@ module.exports = {
|
|
|
115
99
|
async handler(ctx) {
|
|
116
100
|
const resolveInfo = ctx.meta.resolveInfo
|
|
117
101
|
const objectName = resolveInfo.fieldName.replace('__count', '')
|
|
118
|
-
const objectConfig = await getObject(objectName).getConfig()
|
|
119
102
|
// filters: 如果filters中没有查询 is_deleted 则自动添加is_deleted != true 条件
|
|
120
|
-
|
|
121
|
-
const { filters } = ctx.params;
|
|
122
|
-
if (filters) {
|
|
123
|
-
if (_.isString(filters)) {
|
|
124
|
-
if (filters.indexOf('(is_deleted eq true)') < 0) {
|
|
125
|
-
ctx.params.filters = `(${filters}) and (is_deleted ne true)`;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
if (_.isArray(filters)) {
|
|
129
|
-
const filtersStr = formatFiltersToODataQuery(filters);
|
|
130
|
-
if (filtersStr.indexOf('(is_deleted eq true)') < 0) {
|
|
131
|
-
ctx.params.filters = [ctx.params.filters, ['is_deleted', '!=', true]]
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
} else {
|
|
135
|
-
ctx.params.filters = '(is_deleted ne true)'
|
|
136
|
-
}
|
|
137
|
-
}
|
|
103
|
+
ctx.params.filters = await this.dealWithFilters(ctx.params.filters, objectName)
|
|
138
104
|
|
|
139
105
|
const userSession = ctx.meta.user;
|
|
140
106
|
return this.count(objectName, ctx.params, userSession)
|
|
@@ -447,6 +413,31 @@ module.exports = {
|
|
|
447
413
|
};
|
|
448
414
|
|
|
449
415
|
return objGraphqlMap
|
|
416
|
+
},
|
|
417
|
+
|
|
418
|
+
// filters: 如果filters中没有查询 is_deleted 则自动添加is_deleted != true 条件
|
|
419
|
+
async dealWithFilters(filters, objectName) {
|
|
420
|
+
let newFilters = filters
|
|
421
|
+
const objectConfig = await getObject(objectName).getConfig()
|
|
422
|
+
const datasource = getDataSource(objectConfig.datasource)
|
|
423
|
+
if (datasource.driver === SteedosDatabaseDriverType.MeteorMongo || datasource.driver === SteedosDatabaseDriverType.Mongo) {
|
|
424
|
+
if (filters) {
|
|
425
|
+
if (_.isString(filters)) {
|
|
426
|
+
if (filters.indexOf('(is_deleted eq true)') < 0) {
|
|
427
|
+
newFilters = `(${filters}) and (is_deleted ne true)`;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
if (_.isArray(filters)) {
|
|
431
|
+
const filtersStr = formatFiltersToODataQuery(filters);
|
|
432
|
+
if (filtersStr.indexOf('(is_deleted eq true)') < 0) {
|
|
433
|
+
newFilters = [filters, ['is_deleted', '!=', true]]
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
} else {
|
|
437
|
+
newFilters = '(is_deleted ne true)'
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
return newFilters
|
|
450
441
|
}
|
|
451
442
|
},
|
|
452
443
|
|