@steedos/service-object-graphql 2.5.0-beta.3 → 2.5.0-beta.30
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 -4
- package/package.service.js +37 -42
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/service-object-graphql",
|
|
3
|
-
"version": "2.5.0-beta.
|
|
3
|
+
"version": "2.5.0-beta.30",
|
|
4
4
|
"main": "package.service.js",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|
|
@@ -15,10 +15,12 @@
|
|
|
15
15
|
"description": "steedos package",
|
|
16
16
|
"repository": {},
|
|
17
17
|
"license": "MIT",
|
|
18
|
-
"gitHead": "
|
|
18
|
+
"gitHead": "d33d736a3009ecfe57981d03d7062e52eaf27609",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@steedos/
|
|
21
|
-
"@steedos/
|
|
20
|
+
"@steedos/filters": "2.5.0-beta.30",
|
|
21
|
+
"@steedos/i18n": "2.5.0-beta.30",
|
|
22
|
+
"@steedos/objectql": "2.5.0-beta.30",
|
|
23
|
+
"@steedos/service-object-mixin": "2.5.0-beta.30",
|
|
22
24
|
"graphql": "^15.8.0",
|
|
23
25
|
"graphql-parse-resolve-info": "^4.12.3",
|
|
24
26
|
"moleculer": "^0.14.25",
|
package/package.service.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* @Author: sunhaolin@hotoa.com
|
|
3
3
|
* @Date: 2023-03-23 15:12:14
|
|
4
|
-
* @LastEditors:
|
|
5
|
-
* @LastEditTime: 2023-
|
|
4
|
+
* @LastEditors: baozhoutao@steedos.com
|
|
5
|
+
* @LastEditTime: 2023-05-16 11:28:59
|
|
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
|
/**
|
|
@@ -27,6 +29,7 @@ module.exports = {
|
|
|
27
29
|
mixins: [serviceObjectMixin],
|
|
28
30
|
|
|
29
31
|
globalGraphQLSettings: {}, // service-api 里generateGraphQLSchema使用
|
|
32
|
+
getGraphqlFields: getQueryFields,
|
|
30
33
|
|
|
31
34
|
projectStarted: false,
|
|
32
35
|
|
|
@@ -71,26 +74,8 @@ module.exports = {
|
|
|
71
74
|
async handler(ctx) {
|
|
72
75
|
const resolveInfo = ctx.meta.resolveInfo
|
|
73
76
|
const objectName = resolveInfo.fieldName
|
|
74
|
-
const objectConfig = await getObject(objectName).getConfig()
|
|
75
77
|
// 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
|
-
}
|
|
78
|
+
ctx.params.filters = await this.dealWithFilters(ctx.params.filters, objectName)
|
|
94
79
|
if (_.isEmpty(ctx.params.fields)) {
|
|
95
80
|
const { resolveInfo } = ctx.meta;
|
|
96
81
|
|
|
@@ -115,26 +100,8 @@ module.exports = {
|
|
|
115
100
|
async handler(ctx) {
|
|
116
101
|
const resolveInfo = ctx.meta.resolveInfo
|
|
117
102
|
const objectName = resolveInfo.fieldName.replace('__count', '')
|
|
118
|
-
const objectConfig = await getObject(objectName).getConfig()
|
|
119
103
|
// 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
|
-
}
|
|
104
|
+
ctx.params.filters = await this.dealWithFilters(ctx.params.filters, objectName)
|
|
138
105
|
|
|
139
106
|
const userSession = ctx.meta.user;
|
|
140
107
|
return this.count(objectName, ctx.params, userSession)
|
|
@@ -300,7 +267,10 @@ module.exports = {
|
|
|
300
267
|
|
|
301
268
|
if (!this.projectStarted) {
|
|
302
269
|
this.projectStarted = true
|
|
303
|
-
|
|
270
|
+
// 开发环境, 显示耗时
|
|
271
|
+
if(process.env.NODE_ENV == 'development' && global.__startDate){
|
|
272
|
+
console.log('耗时: ' + (new Date().getTime() - global.__startDate.getTime()) + ' ms');
|
|
273
|
+
}
|
|
304
274
|
console.log(`Project is running at ${process.env.ROOT_URL}`);
|
|
305
275
|
console.log('');
|
|
306
276
|
if (process.env.STEEDOS_AUTO_OPEN_BROWSER != 'false') { // 默认打开,如果不想打开,设置STEEDOS_AUTO_OPEN_BROWSER=false
|
|
@@ -447,6 +417,31 @@ module.exports = {
|
|
|
447
417
|
};
|
|
448
418
|
|
|
449
419
|
return objGraphqlMap
|
|
420
|
+
},
|
|
421
|
+
|
|
422
|
+
// filters: 如果filters中没有查询 is_deleted 则自动添加is_deleted != true 条件
|
|
423
|
+
async dealWithFilters(filters, objectName) {
|
|
424
|
+
let newFilters = filters
|
|
425
|
+
const objectConfig = await getObject(objectName).getConfig()
|
|
426
|
+
const datasource = getDataSource(objectConfig.datasource)
|
|
427
|
+
if (datasource.driver === SteedosDatabaseDriverType.MeteorMongo || datasource.driver === SteedosDatabaseDriverType.Mongo) {
|
|
428
|
+
if (filters) {
|
|
429
|
+
if (_.isString(filters)) {
|
|
430
|
+
if (filters.indexOf('(is_deleted eq true)') < 0) {
|
|
431
|
+
newFilters = `(${filters}) and (is_deleted ne true)`;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
if (_.isArray(filters)) {
|
|
435
|
+
const filtersStr = formatFiltersToODataQuery(filters);
|
|
436
|
+
if (filtersStr.indexOf('(is_deleted eq true)') < 0) {
|
|
437
|
+
newFilters = [filters, ['is_deleted', '!=', true]]
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
} else {
|
|
441
|
+
newFilters = '(is_deleted ne true)'
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
return newFilters
|
|
450
445
|
}
|
|
451
446
|
},
|
|
452
447
|
|