@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.
Files changed (2) hide show
  1. package/package.json +6 -4
  2. 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",
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": "48546b91b2a44dd6f6673af7f5ab707faff6e07c",
18
+ "gitHead": "d33d736a3009ecfe57981d03d7062e52eaf27609",
19
19
  "dependencies": {
20
- "@steedos/i18n": "2.5.0-beta.3",
21
- "@steedos/objectql": "2.5.0-beta.3",
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",
@@ -1,13 +1,13 @@
1
1
  /*
2
2
  * @Author: sunhaolin@hotoa.com
3
3
  * @Date: 2023-03-23 15:12:14
4
- * @LastEditors: sunhaolin@hotoa.com
5
- * @LastEditTime: 2023-04-11 11:44:41
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
- if (objectConfig.datasource.driver === SteedosDatabaseDriverType.MeteorMongo || objectConfig.datasource.driver === SteedosDatabaseDriverType.Mongo) {
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
- if (objectConfig.datasource.driver === SteedosDatabaseDriverType.MeteorMongo || objectConfig.datasource.driver === SteedosDatabaseDriverType.Mongo) {
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
- console.log('');
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