@steedos/objectql 2.4.0-beta.8 → 2.4.0

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 (26) hide show
  1. package/lib/dynamic-load/package.js +5 -0
  2. package/lib/dynamic-load/package.js.map +1 -1
  3. package/lib/services/helpers/graphql/consts.d.ts +2 -0
  4. package/lib/services/helpers/graphql/consts.js +3 -1
  5. package/lib/services/helpers/graphql/consts.js.map +1 -1
  6. package/lib/services/helpers/graphql/dealWithRelatedFields.d.ts +16 -0
  7. package/lib/services/helpers/graphql/dealWithRelatedFields.js +73 -0
  8. package/lib/services/helpers/graphql/dealWithRelatedFields.js.map +1 -0
  9. package/lib/services/helpers/graphql/generateActionGraphqlProp.d.ts +2 -0
  10. package/lib/services/helpers/graphql/generateActionGraphqlProp.js +38 -0
  11. package/lib/services/helpers/graphql/generateActionGraphqlProp.js.map +1 -0
  12. package/lib/services/helpers/graphql/generateSettingsGraphql.d.ts +5 -0
  13. package/lib/services/helpers/graphql/generateSettingsGraphql.js +216 -0
  14. package/lib/services/helpers/graphql/generateSettingsGraphql.js.map +1 -0
  15. package/lib/services/helpers/graphql/getGraphqlActions.d.ts +2 -0
  16. package/lib/services/helpers/graphql/getGraphqlActions.js +925 -0
  17. package/lib/services/helpers/graphql/getGraphqlActions.js.map +1 -0
  18. package/lib/services/helpers/graphql/index.d.ts +6 -26
  19. package/lib/services/helpers/graphql/index.js +16 -1191
  20. package/lib/services/helpers/graphql/index.js.map +1 -1
  21. package/lib/services/helpers/graphql/utils.d.ts +8 -0
  22. package/lib/services/helpers/graphql/utils.js +128 -0
  23. package/lib/services/helpers/graphql/utils.js.map +1 -0
  24. package/lib/types/object.js +16 -4
  25. package/lib/types/object.js.map +1 -1
  26. package/package.json +13 -13
@@ -1,1196 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLocalService = exports.getRelatedResolver = exports.getGraphqlActions = exports._getRelatedType = exports.correctName = exports.dealWithRelatedFields = exports.generateSettingsGraphql = exports.generateActionGraphqlProp = void 0;
3
+ exports.getRelatedResolver = exports.dealWithRelatedFields = exports.getGraphqlActions = exports.generateSettingsGraphql = exports.generateActionGraphqlProp = exports.getQueryFields = exports.getLocalService = exports.correctName = exports._getRelatedType = void 0;
4
4
  var tslib_1 = require("tslib");
5
- var _ = require("underscore");
6
- var moment = require("moment");
7
- var __1 = require("../..");
8
- var __2 = require("../../..");
9
- var i18n_1 = require("@steedos/i18n");
10
- var gql = require("moleculer-apollo-server").moleculerGql;
11
- var __3 = require("../../..");
12
- var getQueryFields_1 = require("./getQueryFields");
13
- var getPrimaryFieldType_1 = require("./getPrimaryFieldType");
14
- var consts_1 = require("./consts");
15
- function generateActionGraphqlProp(actionName, objectConfig) {
16
- var gplObj = {};
17
- var objectName = objectConfig.name;
18
- if (objectName == 'users') {
19
- return gplObj;
20
- }
21
- switch (actionName) {
22
- case 'graphqlCount':
23
- gplObj.query = gql(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n type Query {\n ", "__count(fields: JSON, filters: JSON, top: Int, skip: Int, sort: String): Int\n }\n "], ["\n type Query {\n ", "__count(fields: JSON, filters: JSON, top: Int, skip: Int, sort: String): Int\n }\n "])), objectName);
24
- break;
25
- case 'graphqlFind':
26
- gplObj.query = gql(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n type Query {\n ", "(fields: JSON, filters: JSON, top: Int, skip: Int, sort: String): [", "]\n }\n "], ["\n type Query {\n ", "(fields: JSON, filters: JSON, top: Int, skip: Int, sort: String): [", "]\n }\n "])), objectName, objectName);
27
- break;
28
- case 'findOne':
29
- gplObj.query = gql(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["\n type Query {\n ", "__", "(id: JSON): ", "\n }\n "], ["\n type Query {\n ", "__", "(id: JSON): ", "\n }\n "])), objectName, actionName, objectName);
30
- break;
31
- case 'insert':
32
- gplObj.mutation = gql(templateObject_4 || (templateObject_4 = tslib_1.__makeTemplateObject(["\n type Mutation {\n ", "__", "(doc: JSON): ", "\n }\n "], ["\n type Mutation {\n ", "__", "(doc: JSON): ", "\n }\n "])), objectName, actionName, objectName);
33
- break;
34
- case 'update':
35
- gplObj.mutation = gql(templateObject_5 || (templateObject_5 = tslib_1.__makeTemplateObject(["\n type Mutation {\n ", "__", "(id: JSON, doc: JSON): ", "\n }\n "], ["\n type Mutation {\n ", "__", "(id: JSON, doc: JSON): ", "\n }\n "])), objectName, actionName, objectName);
36
- break;
37
- case 'delete':
38
- gplObj.mutation = gql(templateObject_6 || (templateObject_6 = tslib_1.__makeTemplateObject(["\n type Mutation {\n ", "__", "(id: JSON): JSON\n }\n "], ["\n type Mutation {\n ", "__", "(id: JSON): JSON\n }\n "])), objectName, actionName);
39
- break;
40
- default:
41
- break;
42
- }
43
- return gplObj;
44
- }
45
- exports.generateActionGraphqlProp = generateActionGraphqlProp;
46
- var callObjectServiceAction = function (actionName, userSession, data) {
47
- return tslib_1.__awaiter(this, void 0, void 0, function () {
48
- var broker;
49
- return tslib_1.__generator(this, function (_a) {
50
- broker = (0, __3.getSteedosSchema)().broker;
51
- return [2, broker.call(actionName, data, { meta: { user: userSession } })];
52
- });
53
- });
54
- };
55
- var formatFileSize = function (fileSize) {
56
- var rev, unit;
57
- rev = fileSize / 1024.00;
58
- unit = 'KB';
59
- if (rev > 1024.00) {
60
- rev = rev / 1024.00;
61
- unit = 'MB';
62
- }
63
- if (rev > 1024.00) {
64
- rev = rev / 1024.00;
65
- unit = 'GB';
66
- }
67
- return rev.toFixed(2) + unit;
68
- };
69
- function generateSettingsGraphql(objectConfig) {
70
- var objectName = objectConfig.name;
71
- var fields = objectConfig.fields;
72
- var primaryFieldType = (0, getPrimaryFieldType_1.getPrimaryFieldType)(objectConfig);
73
- var type = "type ".concat(objectName, " { ").concat(primaryFieldType, " ");
74
- var resolvers = {};
75
- resolvers[objectName] = {};
76
- var fieldNamesMap = {};
77
- _.each(fields, function (field, name) {
78
- var _a, _b;
79
- if (name.indexOf(".") > -1) {
80
- return;
81
- }
82
- fieldNamesMap[name] = name;
83
- if (!field.type) {
84
- type += "".concat(name, ": JSON ");
85
- return;
86
- }
87
- var isLookup = (field.type == "lookup" || field.type == "master_detail") &&
88
- field.reference_to && _.isString(field.reference_to);
89
- var isFile = field.type == "image" || field.type == "file";
90
- if (consts_1.BASIC_TYPE_MAPPING[field.type]) {
91
- type += "".concat(name, ": ").concat(consts_1.BASIC_TYPE_MAPPING[field.type], " ");
92
- }
93
- else if (isLookup || isFile) {
94
- var refTo = field.reference_to;
95
- var referenceToField = field.reference_to_field;
96
- if (isFile) {
97
- refTo = field.type == "image" ? "cfs_images_filerecord" : "cfs_files_filerecord";
98
- }
99
- var objMetaData = getLocalService(refTo);
100
- if (refTo != objectName && (!objMetaData || objMetaData.settings.deleted)) {
101
- return;
102
- }
103
- if (field.multiple) {
104
- type += "".concat(name, ": [JSON] ");
105
- type += "".concat(name).concat(consts_1.EXPAND_SUFFIX, ": [").concat(refTo, "] ");
106
- resolvers[objectName]["".concat(name).concat(consts_1.EXPAND_SUFFIX)] = {
107
- action: "".concat((0, __1.getObjectServiceName)(refTo), ".").concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.EXPAND_SUFFIX, "_multiple"),
108
- rootParams: (_a = {},
109
- _a[name] = "ids",
110
- _a),
111
- params: {
112
- objectName: refTo,
113
- referenceToField: referenceToField
114
- },
115
- };
116
- }
117
- else {
118
- type += "".concat(name, ": JSON ");
119
- type += "".concat(name).concat(consts_1.EXPAND_SUFFIX, ": ").concat(refTo, " ");
120
- resolvers[objectName]["".concat(name).concat(consts_1.EXPAND_SUFFIX)] = {
121
- action: "".concat((0, __1.getObjectServiceName)(refTo), ".").concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.EXPAND_SUFFIX),
122
- rootParams: (_b = {},
123
- _b[name] = "id",
124
- _b),
125
- params: {
126
- objectName: refTo,
127
- referenceToField: referenceToField
128
- },
129
- };
130
- }
131
- }
132
- else {
133
- type += "".concat(name, ": JSON ");
134
- }
135
- });
136
- var _display_type_name = "".concat(consts_1.DISPLAY_PREFIX, "_").concat(objectName);
137
- type += "".concat(consts_1.DISPLAY_PREFIX, ": ").concat(_display_type_name, " ");
138
- resolvers[objectName][consts_1.DISPLAY_PREFIX] = {
139
- action: "".concat((0, __1.getObjectServiceName)(objectName), ".").concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.DISPLAY_PREFIX),
140
- rootParams: tslib_1.__assign({ _id: "_id" }, fieldNamesMap),
141
- params: {
142
- '__objectName': objectName,
143
- },
144
- };
145
- var _display_type = _getDisplayType(_display_type_name, fields);
146
- type = gql(templateObject_7 || (templateObject_7 = tslib_1.__makeTemplateObject(["\n ", "\n ", "\n "], ["\n ", "\n ", "\n "])), _display_type, type);
147
- var _ui_type_name = "".concat(consts_1.UI_PREFIX, "_").concat(objectName);
148
- type += "".concat(consts_1.UI_PREFIX, ": ").concat(_ui_type_name, " ");
149
- resolvers[objectName][consts_1.UI_PREFIX] = {
150
- action: "".concat((0, __1.getObjectServiceName)(objectName), ".").concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.UI_PREFIX),
151
- rootParams: tslib_1.__assign({ _id: "_id" }, fieldNamesMap),
152
- params: {
153
- '__objectName': objectName
154
- },
155
- };
156
- var _ui_type = _getUIType(_ui_type_name, fields);
157
- type = gql(templateObject_8 || (templateObject_8 = tslib_1.__makeTemplateObject(["\n ", "\n ", "\n "], ["\n ", "\n ", "\n "])), _ui_type, type);
158
- var _permissions_type_name = "".concat(consts_1.PERMISSIONS_PREFIX, "_").concat(objectName);
159
- type += "".concat(consts_1.PERMISSIONS_PREFIX, ": ").concat(_permissions_type_name, " ");
160
- resolvers[objectName][consts_1.PERMISSIONS_PREFIX] = {
161
- action: "".concat((0, __1.getObjectServiceName)(objectName), ".").concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.PERMISSIONS_PREFIX),
162
- rootParams: {
163
- _id: "_id"
164
- },
165
- params: {
166
- '__objectName': objectName
167
- },
168
- };
169
- var _permissions_type = _getPermissionsType(_permissions_type_name, fields);
170
- type = gql(templateObject_9 || (templateObject_9 = tslib_1.__makeTemplateObject(["\n ", "\n ", "\n "], ["\n ", "\n ", "\n "])), _permissions_type, type);
171
- if (objectConfig.enable_files) {
172
- var relatedObjName = "cms_files";
173
- var relatedFieldName = "".concat(consts_1.RELATED_PREFIX, "_files");
174
- type += _getRelatedType(relatedFieldName, relatedObjName);
175
- resolvers[objectName][relatedFieldName] = _getRelatedResolverForEnableProperty(objectName, relatedObjName, "parent");
176
- }
177
- if (objectConfig.enable_tasks) {
178
- var relatedObjName = "tasks";
179
- var relatedFieldName = "".concat(consts_1.RELATED_PREFIX, "_").concat(relatedObjName);
180
- type += _getRelatedType(relatedFieldName, relatedObjName);
181
- resolvers[objectName][relatedFieldName] = _getRelatedResolverForEnableProperty(objectName, relatedObjName, "related_to");
182
- }
183
- if (objectConfig.enable_notes) {
184
- var relatedObjName = "notes";
185
- var relatedFieldName = "".concat(consts_1.RELATED_PREFIX, "_").concat(relatedObjName);
186
- type += _getRelatedType(relatedFieldName, relatedObjName);
187
- resolvers[objectName][relatedFieldName] = _getRelatedResolverForEnableProperty(objectName, relatedObjName, "related_to");
188
- }
189
- if (objectConfig.enable_events) {
190
- var relatedObjName = "events";
191
- var relatedFieldName = "".concat(consts_1.RELATED_PREFIX, "_").concat(relatedObjName);
192
- type += _getRelatedType(relatedFieldName, relatedObjName);
193
- resolvers[objectName][relatedFieldName] = _getRelatedResolverForEnableProperty(objectName, relatedObjName, "related_to");
194
- }
195
- if (objectConfig.enable_audit) {
196
- var relatedObjName = "audit_records";
197
- var relatedFieldName = "".concat(consts_1.RELATED_PREFIX, "_").concat(relatedObjName);
198
- type += _getRelatedType(relatedFieldName, relatedObjName);
199
- resolvers[objectName][relatedFieldName] = _getRelatedResolverForEnableProperty(objectName, relatedObjName, "related_to");
200
- }
201
- if (objectConfig.enable_instances) {
202
- var relatedObjName = "instances";
203
- var relatedFieldName = "".concat(consts_1.RELATED_PREFIX, "_").concat(relatedObjName);
204
- type += _getRelatedType(relatedFieldName, relatedObjName);
205
- resolvers[objectName][relatedFieldName] = _getRelatedResolverForEnableProperty(objectName, relatedObjName, "record_ids");
206
- }
207
- if (objectConfig.enable_approvals) {
208
- var relatedObjName = "approvals";
209
- var relatedFieldName = "".concat(consts_1.RELATED_PREFIX, "_").concat(relatedObjName);
210
- type += _getRelatedType(relatedFieldName, relatedObjName);
211
- resolvers[objectName][relatedFieldName] = _getRelatedResolverForEnableProperty(objectName, relatedObjName, "related_to");
212
- }
213
- type += "}";
214
- return {
215
- type: type,
216
- resolvers: resolvers,
217
- };
218
- }
219
- exports.generateSettingsGraphql = generateSettingsGraphql;
220
- function dealWithRelatedFields(objectConfig, graphql) {
221
- return tslib_1.__awaiter(this, void 0, void 0, function () {
222
- var steedosSchema, objectName, obj, relationsInfo, detailsInfo, lookupsInfo, relatedInfos, relatedInfos_1, relatedInfos_1_1, info, infos, detailObjectApiName, detailFieldName, relatedFieldName, relatedType;
223
- var e_1, _a;
224
- return tslib_1.__generator(this, function (_b) {
225
- switch (_b.label) {
226
- case 0:
227
- steedosSchema = (0, __3.getSteedosSchema)();
228
- objectName = objectConfig.name;
229
- obj = steedosSchema.getObject(objectName);
230
- return [4, obj.getRelationsInfo()];
231
- case 1:
232
- relationsInfo = _b.sent();
233
- detailsInfo = relationsInfo.details || [];
234
- lookupsInfo = relationsInfo.lookup_details || [];
235
- relatedInfos = detailsInfo.concat(lookupsInfo);
236
- try {
237
- for (relatedInfos_1 = tslib_1.__values(relatedInfos), relatedInfos_1_1 = relatedInfos_1.next(); !relatedInfos_1_1.done; relatedInfos_1_1 = relatedInfos_1.next()) {
238
- info = relatedInfos_1_1.value;
239
- if (!info.startsWith("__")) {
240
- infos = info.split(".");
241
- detailObjectApiName = infos[0];
242
- detailFieldName = infos[1];
243
- relatedFieldName = correctName("".concat(consts_1.RELATED_PREFIX, "_").concat(detailObjectApiName, "_").concat(detailFieldName));
244
- relatedType = _getRelatedType(relatedFieldName, detailObjectApiName);
245
- if (graphql.type.indexOf(relatedType) > -1) {
246
- continue;
247
- }
248
- graphql.type =
249
- graphql.type.substring(0, graphql.type.length - 1) + relatedType + "}";
250
- graphql.resolvers[objectName][relatedFieldName] = getRelatedResolver(objectName, detailObjectApiName, detailFieldName, "");
251
- }
252
- }
253
- }
254
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
255
- finally {
256
- try {
257
- if (relatedInfos_1_1 && !relatedInfos_1_1.done && (_a = relatedInfos_1.return)) _a.call(relatedInfos_1);
258
- }
259
- finally { if (e_1) throw e_1.error; }
260
- }
261
- return [2];
262
- }
263
- });
264
- });
265
- }
266
- exports.dealWithRelatedFields = dealWithRelatedFields;
267
- function correctName(name) {
268
- return name.replace(/\./g, "_").replace(/\$/g, "_");
269
- }
270
- exports.correctName = correctName;
271
- function _getRelatedType(relatedFieldName, relatedObjName) {
272
- return "".concat(relatedFieldName, "(fields: [String], filters: JSON, top: Int, skip: Int, sort: String): [").concat(relatedObjName, "] ");
273
- }
274
- exports._getRelatedType = _getRelatedType;
275
- function getGraphqlActions(objectConfig) {
276
- var actions = {};
277
- var objName = objectConfig.name;
278
- actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.EXPAND_SUFFIX, "_multiple")] = {
279
- handler: function (ctx) {
280
- return tslib_1.__awaiter(this, void 0, void 0, function () {
281
- var _a, ids, objectName, referenceToField, filters, selector, steedosSchema, obj, resolveInfo, fieldNames;
282
- return tslib_1.__generator(this, function (_b) {
283
- _a = ctx.params, ids = _a.ids, objectName = _a.objectName, referenceToField = _a.referenceToField;
284
- if (_.isEmpty(ids)) {
285
- return [2, null];
286
- }
287
- filters = [[referenceToField || "_id", "in", ids]];
288
- selector = { filters: filters };
289
- steedosSchema = (0, __3.getSteedosSchema)();
290
- obj = steedosSchema.getObject(objectName);
291
- resolveInfo = ctx.meta.resolveInfo;
292
- fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
293
- if (!_.isEmpty(fieldNames)) {
294
- selector.fields = fieldNames;
295
- }
296
- return [2, obj.find(selector)];
297
- });
298
- });
299
- },
300
- };
301
- actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.EXPAND_SUFFIX)] = {
302
- handler: function (ctx) {
303
- return tslib_1.__awaiter(this, void 0, void 0, function () {
304
- var _a, id, objectName, referenceToField, steedosSchema, obj, selector, resolveInfo, fieldNames;
305
- return tslib_1.__generator(this, function (_b) {
306
- switch (_b.label) {
307
- case 0:
308
- _a = ctx.params, id = _a.id, objectName = _a.objectName, referenceToField = _a.referenceToField;
309
- if (!id) {
310
- return [2];
311
- }
312
- steedosSchema = (0, __3.getSteedosSchema)();
313
- obj = steedosSchema.getObject(objectName);
314
- selector = { filters: [[referenceToField || "_id", "=", id]] };
315
- resolveInfo = ctx.meta.resolveInfo;
316
- fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
317
- if (!_.isEmpty(fieldNames)) {
318
- selector.fields = fieldNames;
319
- }
320
- return [4, obj.find(selector)];
321
- case 1: return [2, (_b.sent())[0]];
322
- }
323
- });
324
- });
325
- },
326
- };
327
- if ([
328
- "cms_files",
329
- "tasks",
330
- "notes",
331
- "events",
332
- "audit_records",
333
- "instances",
334
- "approvals",
335
- ].includes(objName)) {
336
- actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.RELATED_PREFIX, "_enabled")] = {
337
- handler: function (ctx) {
338
- return tslib_1.__awaiter(this, void 0, void 0, function () {
339
- var params, _parentId, _related_params, objectName, parentObjectName, foreignKey, userSession, steedosSchema, object, filters;
340
- return tslib_1.__generator(this, function (_a) {
341
- switch (_a.label) {
342
- case 0:
343
- params = ctx.params;
344
- _parentId = params._parentId, _related_params = params._related_params;
345
- objectName = _related_params.objectName, parentObjectName = _related_params.parentObjectName, foreignKey = _related_params.foreignKey;
346
- userSession = ctx.meta.user;
347
- steedosSchema = (0, __3.getSteedosSchema)();
348
- object = steedosSchema.getObject(objectName);
349
- filters = [];
350
- filters = [
351
- ["".concat(foreignKey, ".o"), "=", parentObjectName],
352
- ["".concat(foreignKey, ".ids"), "=", _parentId],
353
- ];
354
- if (params.filters) {
355
- filters.push(params.filters);
356
- }
357
- params.filters = filters;
358
- return [4, object.find(params, userSession)];
359
- case 1: return [2, _a.sent()];
360
- }
361
- });
362
- });
363
- },
364
- };
365
- }
366
- actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.RELATED_PREFIX)] = {
367
- handler: function (ctx) {
368
- return tslib_1.__awaiter(this, void 0, void 0, function () {
369
- var params, _parentId, _related_params, objectName, parentObjectName, fieldName, referenceToParentFieldName, userSession, steedosSchema, object, parentObj, parent, filters, _idValue, resolveInfo, fieldNames;
370
- return tslib_1.__generator(this, function (_a) {
371
- switch (_a.label) {
372
- case 0:
373
- params = ctx.params;
374
- _parentId = params._parentId, _related_params = params._related_params;
375
- objectName = _related_params.objectName, parentObjectName = _related_params.parentObjectName, fieldName = _related_params.fieldName, referenceToParentFieldName = _related_params.referenceToParentFieldName;
376
- userSession = ctx.meta.user;
377
- steedosSchema = (0, __3.getSteedosSchema)();
378
- object = steedosSchema.getObject(objectName);
379
- parentObj = steedosSchema.getObject(parentObjectName);
380
- return [4, parentObj.findOne(_parentId)];
381
- case 1:
382
- parent = _a.sent();
383
- filters = [];
384
- _idValue = parent._id;
385
- if (referenceToParentFieldName) {
386
- _idValue = parent[referenceToParentFieldName];
387
- }
388
- filters = [[fieldName, "=", _idValue]];
389
- if (params.filters) {
390
- filters.push(params.filters);
391
- }
392
- params.filters = filters;
393
- resolveInfo = ctx.meta.resolveInfo;
394
- fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
395
- if (!_.isEmpty(fieldNames)) {
396
- params.fields = fieldNames;
397
- }
398
- return [4, object.find(params, userSession)];
399
- case 2: return [2, _a.sent()];
400
- }
401
- });
402
- });
403
- },
404
- };
405
- actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.DISPLAY_PREFIX)] = {
406
- handler: function (ctx) {
407
- return tslib_1.__awaiter(this, void 0, void 0, function () {
408
- var params, __objectName, userSession, selectFieldNames, resolveInfo, fieldNames, result;
409
- return tslib_1.__generator(this, function (_a) {
410
- switch (_a.label) {
411
- case 0:
412
- params = ctx.params;
413
- __objectName = params.__objectName;
414
- userSession = ctx.meta.user;
415
- selectFieldNames = [];
416
- resolveInfo = ctx.meta.resolveInfo;
417
- fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
418
- if (!_.isEmpty(fieldNames)) {
419
- selectFieldNames = fieldNames;
420
- }
421
- return [4, translateToDisplay(__objectName, params, userSession, selectFieldNames)];
422
- case 1:
423
- result = _a.sent();
424
- return [2, result];
425
- }
426
- });
427
- });
428
- },
429
- };
430
- actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.UI_PREFIX)] = {
431
- handler: function (ctx) {
432
- return tslib_1.__awaiter(this, void 0, void 0, function () {
433
- var params, __objectName, userSession, selectFieldNames, resolveInfo, fieldNames, result;
434
- return tslib_1.__generator(this, function (_a) {
435
- switch (_a.label) {
436
- case 0:
437
- params = ctx.params;
438
- __objectName = params.__objectName;
439
- userSession = ctx.meta.user;
440
- selectFieldNames = [];
441
- resolveInfo = ctx.meta.resolveInfo;
442
- fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
443
- if (!_.isEmpty(fieldNames)) {
444
- selectFieldNames = fieldNames;
445
- }
446
- return [4, translateToUI(__objectName, params, userSession, selectFieldNames)];
447
- case 1:
448
- result = _a.sent();
449
- return [2, result];
450
- }
451
- });
452
- });
453
- },
454
- };
455
- actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.PERMISSIONS_PREFIX)] = {
456
- handler: function (ctx) {
457
- return tslib_1.__awaiter(this, void 0, void 0, function () {
458
- var params, __objectName, userSession;
459
- return tslib_1.__generator(this, function (_a) {
460
- switch (_a.label) {
461
- case 0:
462
- params = ctx.params;
463
- __objectName = params.__objectName;
464
- userSession = ctx.meta.user;
465
- return [4, callObjectServiceAction("@".concat(__objectName, ".getRecordPermissionsById"), userSession, {
466
- recordId: params._id
467
- })];
468
- case 1: return [2, _a.sent()];
469
- }
470
- });
471
- });
472
- },
473
- };
474
- return actions;
475
- }
476
- exports.getGraphqlActions = getGraphqlActions;
477
- function _getRelatedResolverForEnableProperty(parentObjectName, relatedObjName, foreignKey) {
478
- return {
479
- action: "".concat((0, __1.getObjectServiceName)(relatedObjName), ".").concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.RELATED_PREFIX, "_enabled"),
480
- rootParams: {
481
- _id: "_parentId",
482
- },
483
- params: {
484
- _related_params: {
485
- objectName: relatedObjName,
486
- parentObjectName: parentObjectName,
487
- foreignKey: foreignKey,
488
- },
489
- },
490
- };
491
- }
492
- function getRelatedResolver(objectApiName, detailObjectApiName, detailFieldName, detailFieldReferenceToFieldName) {
493
- return {
494
- action: "".concat((0, __1.getObjectServiceName)(detailObjectApiName), ".").concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.RELATED_PREFIX),
495
- rootParams: {
496
- _id: "_parentId",
497
- },
498
- params: {
499
- _related_params: {
500
- objectName: detailObjectApiName,
501
- parentObjectName: objectApiName,
502
- fieldName: detailFieldName,
503
- referenceToParentFieldName: detailFieldReferenceToFieldName,
504
- },
505
- },
506
- };
507
- }
508
- exports.getRelatedResolver = getRelatedResolver;
509
- function getTranslatedFieldConfig(translatedObject, name) {
510
- return translatedObject.fields[name.replace(/__label$/, "")];
511
- }
512
- var numberToString = function (number, scale, notThousands) {
513
- if (notThousands === void 0) { notThousands = false; }
514
- if (typeof number === "number") {
515
- number = number.toString();
516
- }
517
- if (!number) {
518
- return '';
519
- }
520
- if (number !== "NaN") {
521
- if (scale || scale === 0) {
522
- number = Number(number).toFixed(scale);
523
- }
524
- if (!notThousands) {
525
- if (!(scale || scale === 0)) {
526
- var regDots = number.match(/\.(\d+)/);
527
- scale = regDots && regDots[1] && regDots[1].length;
528
- if (!scale) {
529
- scale = 0;
530
- }
531
- }
532
- var reg = /(\d)(?=(\d{3})+\.)/g;
533
- if (scale === 0) {
534
- reg = /(\d)(?=(\d{3})+\b)/g;
535
- }
536
- number = number.replace(reg, '$1,');
537
- }
538
- return number;
539
- }
540
- else {
541
- return "";
542
- }
543
- };
544
- function translateToDisplay(objectName, doc, userSession, selectorFieldNames) {
545
- return tslib_1.__awaiter(this, void 0, void 0, function () {
546
- var lng, steedosSchema, object, objConfig, fields, displayObj, utcOffset, _loop_1, selectorFieldNames_1, selectorFieldNames_1_1, name, e_2_1;
547
- var e_2, _a;
548
- return tslib_1.__generator(this, function (_b) {
549
- switch (_b.label) {
550
- case 0:
551
- lng = (0, __3.getUserLocale)(userSession);
552
- steedosSchema = (0, __3.getSteedosSchema)();
553
- object = steedosSchema.getObject(objectName);
554
- return [4, object.toConfig()];
555
- case 1:
556
- objConfig = _b.sent();
557
- fields = objConfig.fields;
558
- (0, i18n_1.translationObject)(lng, objConfig.name, objConfig, true);
559
- displayObj = { _id: doc._id };
560
- utcOffset = userSession.utcOffset;
561
- _loop_1 = function (name) {
562
- var field, fType, label, map_1, value, translatedField, translatedFieldOptions, labels_1, i, refTo, refField, refValue, refObj, nameFieldKey, refRecords, refRecord, refTo, refField, refValue, refObj, nameFieldKey, refRecords, refRecord, refValue, refTo, refValues, refObj, nameFieldKey, refRecords, fileLabel, value, fileObjectName, fileObject, fileNameFieldKey, fileRecords, fileRecord;
563
- return tslib_1.__generator(this, function (_c) {
564
- switch (_c.label) {
565
- case 0:
566
- if (!Object.prototype.hasOwnProperty.call(fields, name)) return [3, 41];
567
- field = fields[name];
568
- if (!_.has(doc, name)) return [3, 40];
569
- fType = field.type;
570
- if (!(fType == "text")) return [3, 1];
571
- displayObj[name] = doc[name] || "";
572
- return [3, 39];
573
- case 1:
574
- if (!(fType == "textarea")) return [3, 2];
575
- displayObj[name] = doc[name] || "";
576
- return [3, 39];
577
- case 2:
578
- if (!(fType == "html_text")) return [3, 3];
579
- displayObj[name] = doc[name] || "";
580
- return [3, 39];
581
- case 3:
582
- if (!(fType == "html")) return [3, 4];
583
- displayObj[name] = doc[name] || "";
584
- return [3, 39];
585
- case 4:
586
- if (!(fType == "select")) return [3, 5];
587
- label = "";
588
- map_1 = {};
589
- value = doc[name];
590
- translatedField = getTranslatedFieldConfig(objConfig, name);
591
- translatedFieldOptions = translatedField && translatedField.options;
592
- _.forEach(translatedFieldOptions, function (o) {
593
- map_1[o.value] = o.label;
594
- });
595
- if (field.multiple) {
596
- labels_1 = [];
597
- _.forEach(value, function (v) {
598
- labels_1.push(map_1[v]);
599
- });
600
- label = labels_1.join(",");
601
- }
602
- else {
603
- label = map_1[value];
604
- }
605
- displayObj[name] = label;
606
- return [3, 39];
607
- case 5:
608
- if (!(fType == "boolean")) return [3, 6];
609
- if (doc[name]) {
610
- displayObj[name] = "√";
611
- }
612
- else {
613
- displayObj[name] = "";
614
- }
615
- return [3, 39];
616
- case 6:
617
- if (!(fType == "date")) return [3, 7];
618
- displayObj[name] = doc[name] ? moment.utc(doc[name])
619
- .format("YYYY-MM-DD") : '';
620
- return [3, 39];
621
- case 7:
622
- if (!(fType == "datetime")) return [3, 8];
623
- displayObj[name] = doc[name] ? moment(doc[name])
624
- .utcOffset(utcOffset)
625
- .format("YYYY-MM-DD HH:mm") : '';
626
- return [3, 39];
627
- case 8:
628
- if (!(fType == "time")) return [3, 9];
629
- displayObj[name] = doc[name] ? moment.utc(doc[name])
630
- .format("HH:mm") : '';
631
- return [3, 39];
632
- case 9:
633
- if (!(fType == "number")) return [3, 10];
634
- displayObj[name] = doc[name] ? numberToString(doc[name], field.scale) : "";
635
- return [3, 39];
636
- case 10:
637
- if (!(fType == "currency")) return [3, 11];
638
- displayObj[name] = doc[name] ? numberToString(doc[name], field.scale) : "";
639
- return [3, 39];
640
- case 11:
641
- if (!(fType == "percent")) return [3, 12];
642
- displayObj[name] = "".concat(doc[name] * 100, "%");
643
- return [3, 39];
644
- case 12:
645
- if (!(fType == "password")) return [3, 13];
646
- displayObj[name] = "";
647
- if (_.isString(doc[name])) {
648
- for (i = 0; i < doc[name].length; i++) {
649
- displayObj[name] += "*";
650
- }
651
- }
652
- return [3, 39];
653
- case 13:
654
- if (!(fType == "lookup" && _.isString(field.reference_to))) return [3, 19];
655
- refTo = field.reference_to;
656
- refField = field.reference_to_field || '_id';
657
- if (refTo === 'users') {
658
- refTo = 'space_users';
659
- refField = 'user';
660
- }
661
- refValue = doc[name];
662
- if (!refValue) {
663
- return [2, "continue"];
664
- }
665
- refObj = steedosSchema.getObject(refTo);
666
- return [4, refObj.getNameFieldKey()];
667
- case 14:
668
- nameFieldKey = _c.sent();
669
- if (!field.multiple) return [3, 16];
670
- return [4, refObj.find({
671
- filters: [refField, "in", refValue],
672
- fields: [nameFieldKey],
673
- })];
674
- case 15:
675
- refRecords = _c.sent();
676
- displayObj[name] = _.pluck(refRecords, nameFieldKey).join(',');
677
- return [3, 18];
678
- case 16: return [4, refObj.find({
679
- filters: [refField, "=", refValue],
680
- fields: [nameFieldKey],
681
- })];
682
- case 17:
683
- refRecord = (_c.sent())[0];
684
- if (refRecord) {
685
- displayObj[name] = refRecord[nameFieldKey];
686
- }
687
- _c.label = 18;
688
- case 18: return [3, 39];
689
- case 19:
690
- if (!(fType == "master_detail" && _.isString(field.reference_to))) return [3, 25];
691
- refTo = field.reference_to;
692
- refField = field.reference_to_field || '_id';
693
- if (refTo === 'users') {
694
- refTo = 'space_users';
695
- refField = 'user';
696
- }
697
- refValue = doc[name];
698
- if (!refValue) {
699
- return [2, "continue"];
700
- }
701
- refObj = steedosSchema.getObject(refTo);
702
- return [4, refObj.getNameFieldKey()];
703
- case 20:
704
- nameFieldKey = _c.sent();
705
- if (!field.multiple) return [3, 22];
706
- return [4, refObj.find({
707
- filters: [refField, "in", refValue],
708
- fields: [nameFieldKey],
709
- })];
710
- case 21:
711
- refRecords = _c.sent();
712
- displayObj[name] = _.pluck(refRecords, nameFieldKey).join(',');
713
- return [3, 24];
714
- case 22: return [4, refObj.find({
715
- filters: [refField, "=", refValue],
716
- fields: [nameFieldKey],
717
- })];
718
- case 23:
719
- refRecord = (_c.sent())[0];
720
- if (refRecord) {
721
- displayObj[name] = refRecord[nameFieldKey];
722
- }
723
- _c.label = 24;
724
- case 24: return [3, 39];
725
- case 25:
726
- if (!((fType == "master_detail" || fType == "lookup") && field.reference_to && !_.isString(field.reference_to))) return [3, 28];
727
- refValue = doc[name];
728
- if (!refValue) {
729
- return [2, "continue"];
730
- }
731
- refTo = refValue.o;
732
- refValues = refValue.ids;
733
- if (!refTo) {
734
- return [2, "continue"];
735
- }
736
- refObj = steedosSchema.getObject(refTo);
737
- return [4, refObj.getNameFieldKey()];
738
- case 26:
739
- nameFieldKey = _c.sent();
740
- return [4, refObj.find({
741
- filters: ["_id", "in", refValues],
742
- fields: [nameFieldKey]
743
- })];
744
- case 27:
745
- refRecords = _c.sent();
746
- displayObj[name] = _.pluck(refRecords, nameFieldKey).join(',');
747
- return [3, 39];
748
- case 28:
749
- if (!(fType == "autonumber")) return [3, 29];
750
- displayObj[name] = doc[name] || "";
751
- return [3, 39];
752
- case 29:
753
- if (!(fType == "url")) return [3, 30];
754
- displayObj[name] = doc[name] || "";
755
- return [3, 39];
756
- case 30:
757
- if (!(fType == "email")) return [3, 31];
758
- displayObj[name] = doc[name] || "";
759
- return [3, 39];
760
- case 31:
761
- if (!(fType == "formula")) return [3, 32];
762
- displayObj[name] = doc[name] || "";
763
- return [3, 39];
764
- case 32:
765
- if (!(fType == "summary")) return [3, 33];
766
- displayObj[name] = doc[name] || "";
767
- return [3, 39];
768
- case 33:
769
- if (!(fType == "image" || fType == "file")) return [3, 38];
770
- fileLabel = "";
771
- value = doc[name];
772
- if (!value) {
773
- return [2, "continue"];
774
- }
775
- fileObjectName = fType == "image" ? "cfs_images_filerecord" : "cfs_files_filerecord";
776
- fileObject = steedosSchema.getObject(fileObjectName);
777
- fileNameFieldKey = "original.name";
778
- if (!field.multiple) return [3, 35];
779
- return [4, fileObject.find({
780
- filters: ["_id", "in", value],
781
- fields: [fileNameFieldKey],
782
- })];
783
- case 34:
784
- fileRecords = _c.sent();
785
- fileLabel = _.map(fileRecords, function (fileRecord) {
786
- var _a;
787
- return (_a = fileRecord.original) === null || _a === void 0 ? void 0 : _a.name;
788
- }).join(",");
789
- return [3, 37];
790
- case 35: return [4, fileObject.find({
791
- filters: ["_id", "=", value],
792
- fields: [fileNameFieldKey],
793
- })];
794
- case 36:
795
- fileRecord = (_c.sent())[0];
796
- if (fileRecord) {
797
- fileLabel = fileRecord["original"]["name"];
798
- }
799
- _c.label = 37;
800
- case 37:
801
- displayObj[name] = fileLabel;
802
- return [3, 39];
803
- case 38:
804
- console.error("Graphql Display: need to handle new field type ".concat(field.type, " for ").concat(objectName, "."));
805
- displayObj[name] = doc[name] || "";
806
- _c.label = 39;
807
- case 39: return [3, 41];
808
- case 40:
809
- displayObj[name] = "";
810
- _c.label = 41;
811
- case 41: return [2];
812
- }
813
- });
814
- };
815
- _b.label = 2;
816
- case 2:
817
- _b.trys.push([2, 7, 8, 9]);
818
- selectorFieldNames_1 = tslib_1.__values(selectorFieldNames), selectorFieldNames_1_1 = selectorFieldNames_1.next();
819
- _b.label = 3;
820
- case 3:
821
- if (!!selectorFieldNames_1_1.done) return [3, 6];
822
- name = selectorFieldNames_1_1.value;
823
- return [5, _loop_1(name)];
824
- case 4:
825
- _b.sent();
826
- _b.label = 5;
827
- case 5:
828
- selectorFieldNames_1_1 = selectorFieldNames_1.next();
829
- return [3, 3];
830
- case 6: return [3, 9];
831
- case 7:
832
- e_2_1 = _b.sent();
833
- e_2 = { error: e_2_1 };
834
- return [3, 9];
835
- case 8:
836
- try {
837
- if (selectorFieldNames_1_1 && !selectorFieldNames_1_1.done && (_a = selectorFieldNames_1.return)) _a.call(selectorFieldNames_1);
838
- }
839
- finally { if (e_2) throw e_2.error; }
840
- return [7];
841
- case 9: return [2, displayObj];
842
- }
843
- });
844
- });
845
- }
846
- function _getDisplayType(typeName, fields) {
847
- var type = "type ".concat(typeName, " { _id: String ");
848
- if (_.has(fields, "_id")) {
849
- type = "type ".concat(typeName, " { ");
850
- }
851
- _.each(fields, function (field, name) {
852
- if (name.indexOf(".") > -1) {
853
- return;
854
- }
855
- type += "".concat(name, ": JSON ");
856
- });
857
- type += "}";
858
- return type;
859
- }
860
- var getFileStorageName = function (type) {
861
- switch (type) {
862
- case 'avatar':
863
- return 'avatars';
864
- case 'image':
865
- return 'images';
866
- case 'file':
867
- return 'files';
868
- default:
869
- break;
870
- }
871
- };
872
- function translateToUI(objectName, doc, userSession, selectorFieldNames) {
873
- var _a, _b;
874
- return tslib_1.__awaiter(this, void 0, void 0, function () {
875
- var lng, steedosSchema, object, objConfig, fields, displayObj, _loop_2, selectorFieldNames_2, selectorFieldNames_2_1, name, e_3_1;
876
- var e_3, _c;
877
- return tslib_1.__generator(this, function (_d) {
878
- switch (_d.label) {
879
- case 0:
880
- lng = (0, __3.getUserLocale)(userSession);
881
- steedosSchema = (0, __3.getSteedosSchema)();
882
- object = steedosSchema.getObject(objectName);
883
- return [4, object.toConfig()];
884
- case 1:
885
- objConfig = _d.sent();
886
- fields = objConfig.fields;
887
- (0, i18n_1.translationObject)(lng, objConfig.name, objConfig, true);
888
- displayObj = { _id: doc._id };
889
- _loop_2 = function (name) {
890
- var field, fType, label, map_2, value, translatedField, translatedFieldOptions, labels_2, refTo_1, refField, refValue, refObj, nameFieldKey_1, refRecords, refRecord, refTo_2, refField, refValue, refObj, nameFieldKey_2, refRecords, refRecord, refValue, refTo_3, refValues, refObj, nameFieldKey_3, refRecords, fileValue, value, storageName_1, fileObjectName, fileObject, fileNameFieldKey, fileRecords, fileRecord;
891
- return tslib_1.__generator(this, function (_e) {
892
- switch (_e.label) {
893
- case 0:
894
- if (!Object.prototype.hasOwnProperty.call(fields, name)) return [3, 26];
895
- field = fields[name];
896
- if (!_.has(doc, name)) return [3, 25];
897
- fType = field.type;
898
- if (!(fType == "select")) return [3, 1];
899
- label = "";
900
- map_2 = {};
901
- value = doc[name];
902
- translatedField = getTranslatedFieldConfig(objConfig, name);
903
- translatedFieldOptions = translatedField && translatedField.options;
904
- _.forEach(translatedFieldOptions, function (o) {
905
- map_2[o.value] = o.label;
906
- });
907
- if (field.multiple) {
908
- labels_2 = [];
909
- _.forEach(value, function (v) {
910
- labels_2.push(map_2[v]);
911
- });
912
- label = labels_2.join(",");
913
- }
914
- else {
915
- label = map_2[value];
916
- }
917
- displayObj[name] = label;
918
- return [3, 24];
919
- case 1:
920
- if (!(fType == "lookup" && _.isString(field.reference_to))) return [3, 7];
921
- refTo_1 = field.reference_to;
922
- refField = field.reference_to_field || '_id';
923
- if (refTo_1 === 'users') {
924
- refTo_1 = 'space_users';
925
- refField = 'user';
926
- }
927
- refValue = doc[name];
928
- if (!refValue) {
929
- return [2, "continue"];
930
- }
931
- refObj = steedosSchema.getObject(refTo_1);
932
- return [4, refObj.getNameFieldKey()];
933
- case 2:
934
- nameFieldKey_1 = _e.sent();
935
- if (!field.multiple) return [3, 4];
936
- return [4, refObj.find({
937
- filters: [refField, "in", refValue],
938
- fields: [nameFieldKey_1],
939
- })];
940
- case 3:
941
- refRecords = _e.sent();
942
- displayObj[name] = _.map(refRecords, function (item) {
943
- return {
944
- objectName: refTo_1,
945
- value: item._id,
946
- label: item[nameFieldKey_1]
947
- };
948
- });
949
- return [3, 6];
950
- case 4: return [4, refObj.find({
951
- filters: [refField, "=", refValue],
952
- fields: [nameFieldKey_1],
953
- })];
954
- case 5:
955
- refRecord = (_e.sent())[0];
956
- if (refRecord) {
957
- displayObj[name] = {
958
- objectName: refTo_1,
959
- value: refRecord._id,
960
- label: refRecord[nameFieldKey_1]
961
- };
962
- }
963
- _e.label = 6;
964
- case 6: return [3, 24];
965
- case 7:
966
- if (!(fType == "master_detail" && _.isString(field.reference_to))) return [3, 13];
967
- refTo_2 = field.reference_to;
968
- refField = field.reference_to_field || '_id';
969
- if (refTo_2 === 'users') {
970
- refTo_2 = 'space_users';
971
- refField = 'user';
972
- }
973
- refValue = doc[name];
974
- if (!refValue) {
975
- return [2, "continue"];
976
- }
977
- refObj = steedosSchema.getObject(refTo_2);
978
- return [4, refObj.getNameFieldKey()];
979
- case 8:
980
- nameFieldKey_2 = _e.sent();
981
- if (!field.multiple) return [3, 10];
982
- return [4, refObj.find({
983
- filters: [refField, "in", refValue],
984
- fields: [nameFieldKey_2],
985
- })];
986
- case 9:
987
- refRecords = _e.sent();
988
- displayObj[name] = _.map(refRecords, function (item) {
989
- return {
990
- objectName: refTo_2,
991
- value: item._id,
992
- label: item[nameFieldKey_2]
993
- };
994
- });
995
- return [3, 12];
996
- case 10: return [4, refObj.find({
997
- filters: [refField, "=", refValue],
998
- fields: [nameFieldKey_2],
999
- })];
1000
- case 11:
1001
- refRecord = (_e.sent())[0];
1002
- if (refRecord) {
1003
- displayObj[name] = {
1004
- objectName: refTo_2,
1005
- value: refRecord._id,
1006
- label: refRecord[nameFieldKey_2]
1007
- };
1008
- }
1009
- _e.label = 12;
1010
- case 12: return [3, 24];
1011
- case 13:
1012
- if (!((fType == "master_detail" || fType == "lookup") && field.reference_to && !_.isString(field.reference_to))) return [3, 16];
1013
- refValue = doc[name];
1014
- if (!refValue) {
1015
- return [2, "continue"];
1016
- }
1017
- refTo_3 = refValue.o;
1018
- refValues = refValue.ids;
1019
- if (!refTo_3) {
1020
- return [2, "continue"];
1021
- }
1022
- refObj = steedosSchema.getObject(refTo_3);
1023
- return [4, refObj.getNameFieldKey()];
1024
- case 14:
1025
- nameFieldKey_3 = _e.sent();
1026
- return [4, refObj.find({
1027
- filters: ["_id", "in", refValues],
1028
- fields: [nameFieldKey_3]
1029
- })];
1030
- case 15:
1031
- refRecords = _e.sent();
1032
- displayObj[name] = _.map(refRecords, function (item) {
1033
- return {
1034
- objectName: refTo_3,
1035
- value: item._id,
1036
- label: item[nameFieldKey_3]
1037
- };
1038
- });
1039
- return [3, 24];
1040
- case 16:
1041
- if (!(fType == "formula")) return [3, 17];
1042
- displayObj[name] = formatBasicFieldValue(field.data_type, field, doc[name], objConfig, userSession);
1043
- return [3, 24];
1044
- case 17:
1045
- if (!(fType == "summary")) return [3, 18];
1046
- displayObj[name] = formatBasicFieldValue('number', field, doc[name], objConfig, userSession);
1047
- return [3, 24];
1048
- case 18:
1049
- if (!(fType == "image" || fType == "file" || fType === 'avatar')) return [3, 23];
1050
- fileValue = null;
1051
- value = doc[name];
1052
- if (!value) {
1053
- return [2, "continue"];
1054
- }
1055
- storageName_1 = getFileStorageName(fType);
1056
- fileObjectName = "cfs_".concat(storageName_1, "_filerecord");
1057
- fileObject = steedosSchema.getObject(fileObjectName);
1058
- fileNameFieldKey = "original.name";
1059
- if (!field.multiple) return [3, 20];
1060
- return [4, fileObject.find({
1061
- filters: ["_id", "in", value],
1062
- fields: ['_id', fileNameFieldKey, 'original.size', 'original.type'],
1063
- })];
1064
- case 19:
1065
- fileRecords = _e.sent();
1066
- fileValue = _.map(fileRecords, function (fileRecord) {
1067
- var _a, _b, _c;
1068
- return {
1069
- name: (_a = fileRecord.original) === null || _a === void 0 ? void 0 : _a.name,
1070
- url: (0, __2.absoluteUrl)("/api/files/".concat(storageName_1, "/").concat(fileRecord._id)),
1071
- size: (_b = fileRecord.original) === null || _b === void 0 ? void 0 : _b.size,
1072
- type: (_c = fileRecord.original) === null || _c === void 0 ? void 0 : _c.type,
1073
- };
1074
- });
1075
- return [3, 22];
1076
- case 20: return [4, fileObject.find({
1077
- filters: ["_id", "=", value],
1078
- fields: ['_id', fileNameFieldKey, 'original.size', 'original.type'],
1079
- })];
1080
- case 21:
1081
- fileRecord = (_e.sent())[0];
1082
- if (fileRecord) {
1083
- fileValue = {
1084
- name: fileRecord["original"]["name"],
1085
- url: (0, __2.absoluteUrl)("/api/files/".concat(storageName_1, "/").concat(value)),
1086
- size: (_a = fileRecord.original) === null || _a === void 0 ? void 0 : _a.size,
1087
- type: (_b = fileRecord.original) === null || _b === void 0 ? void 0 : _b.type
1088
- };
1089
- }
1090
- _e.label = 22;
1091
- case 22:
1092
- displayObj[name] = fileValue;
1093
- return [3, 24];
1094
- case 23:
1095
- if (fType == "filesize") {
1096
- displayObj[name] = formatFileSize(doc[name]);
1097
- }
1098
- else {
1099
- displayObj[name] = formatBasicFieldValue(fType, field, doc[name], objConfig, userSession);
1100
- }
1101
- _e.label = 24;
1102
- case 24: return [3, 26];
1103
- case 25:
1104
- displayObj[name] = "";
1105
- _e.label = 26;
1106
- case 26: return [2];
1107
- }
1108
- });
1109
- };
1110
- _d.label = 2;
1111
- case 2:
1112
- _d.trys.push([2, 7, 8, 9]);
1113
- selectorFieldNames_2 = tslib_1.__values(selectorFieldNames), selectorFieldNames_2_1 = selectorFieldNames_2.next();
1114
- _d.label = 3;
1115
- case 3:
1116
- if (!!selectorFieldNames_2_1.done) return [3, 6];
1117
- name = selectorFieldNames_2_1.value;
1118
- return [5, _loop_2(name)];
1119
- case 4:
1120
- _d.sent();
1121
- _d.label = 5;
1122
- case 5:
1123
- selectorFieldNames_2_1 = selectorFieldNames_2.next();
1124
- return [3, 3];
1125
- case 6: return [3, 9];
1126
- case 7:
1127
- e_3_1 = _d.sent();
1128
- e_3 = { error: e_3_1 };
1129
- return [3, 9];
1130
- case 8:
1131
- try {
1132
- if (selectorFieldNames_2_1 && !selectorFieldNames_2_1.done && (_c = selectorFieldNames_2.return)) _c.call(selectorFieldNames_2);
1133
- }
1134
- finally { if (e_3) throw e_3.error; }
1135
- return [7];
1136
- case 9: return [2, displayObj];
1137
- }
1138
- });
1139
- });
1140
- }
1141
- function formatBasicFieldValue(valueType, field, value, objectConfig, userSession) {
1142
- switch (valueType) {
1143
- case 'text':
1144
- case 'textarea':
1145
- case 'html_text':
1146
- case 'autonumber':
1147
- case 'url':
1148
- case 'email':
1149
- case 'html':
1150
- return value || "";
1151
- case 'boolean':
1152
- return value ? "√" : "";
1153
- case 'date':
1154
- return value ? moment.utc(value).format("YYYY-MM-DD") : '';
1155
- case 'datetime':
1156
- return value ? moment(value).utcOffset(userSession.utcOffset).format("YYYY-MM-DD HH:mm") : '';
1157
- case 'time':
1158
- return value ? moment.utc(value).format("HH:mm") : '';
1159
- case 'number':
1160
- case 'currency':
1161
- return value ? numberToString(value, field.scale) : "";
1162
- case 'percent':
1163
- return "".concat(value * 100, "%");
1164
- case 'password':
1165
- return _.isString(value) ? "******" : "";
1166
- default:
1167
- console.error("Graphql Display: need to handle new field type ".concat(field.type, " for ").concat(objectConfig.name, "."));
1168
- return value || "";
1169
- }
1170
- }
1171
- function _getUIType(typeName, fields) {
1172
- var type = "type ".concat(typeName, " { _id: String ");
1173
- if (_.has(fields, "_id")) {
1174
- type = "type ".concat(typeName, " { ");
1175
- }
1176
- _.each(fields, function (field, name) {
1177
- if (name.indexOf(".") > -1) {
1178
- return;
1179
- }
1180
- type += "".concat(name, ": JSON ");
1181
- });
1182
- type += "}";
1183
- return type;
1184
- }
1185
- function _getPermissionsType(typeName, fields) {
1186
- return "\n type ".concat(typeName, " {\n allowCreate: Boolean\n allowCreateFiles: Boolean\n allowDelete: Boolean\n allowDeleteFiles: Boolean\n allowEdit: Boolean\n allowEditFiles: Boolean\n allowRead: Boolean\n allowReadFiles: Boolean\n disabled_actions: [String]\n disabled_list_views: [String]\n field_permissions: JSON\n modifyAllFiles: Boolean\n modifyAllRecords: Boolean\n modifyAssignCompanysRecords: [String]\n modifyCompanyRecords: Boolean\n uneditable_fields: [String]\n unreadable_fields: [String]\n unrelated_objects: [String]\n viewAllFiles: Boolean\n viewAllRecords: Boolean\n viewAssignCompanysRecords: [String]\n viewCompanyRecords: Boolean\n }\n ");
1187
- }
1188
- function getLocalService(objectApiName) {
1189
- var steedosSchema = (0, __3.getSteedosSchema)();
1190
- return steedosSchema.broker.getLocalService((0, __1.getObjectServiceName)(objectApiName));
1191
- }
1192
- exports.getLocalService = getLocalService;
1193
- tslib_1.__exportStar(require("./getQueryFields"), exports);
1194
5
  tslib_1.__exportStar(require("./consts"), exports);
1195
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9;
6
+ var utils_1 = require("./utils");
7
+ Object.defineProperty(exports, "_getRelatedType", { enumerable: true, get: function () { return utils_1._getRelatedType; } });
8
+ Object.defineProperty(exports, "correctName", { enumerable: true, get: function () { return utils_1.correctName; } });
9
+ Object.defineProperty(exports, "getLocalService", { enumerable: true, get: function () { return utils_1.getLocalService; } });
10
+ var getQueryFields_1 = require("./getQueryFields");
11
+ Object.defineProperty(exports, "getQueryFields", { enumerable: true, get: function () { return getQueryFields_1.getQueryFields; } });
12
+ var generateActionGraphqlProp_1 = require("./generateActionGraphqlProp");
13
+ Object.defineProperty(exports, "generateActionGraphqlProp", { enumerable: true, get: function () { return generateActionGraphqlProp_1.generateActionGraphqlProp; } });
14
+ var generateSettingsGraphql_1 = require("./generateSettingsGraphql");
15
+ Object.defineProperty(exports, "generateSettingsGraphql", { enumerable: true, get: function () { return generateSettingsGraphql_1.generateSettingsGraphql; } });
16
+ var getGraphqlActions_1 = require("./getGraphqlActions");
17
+ Object.defineProperty(exports, "getGraphqlActions", { enumerable: true, get: function () { return getGraphqlActions_1.getGraphqlActions; } });
18
+ var dealWithRelatedFields_1 = require("./dealWithRelatedFields");
19
+ Object.defineProperty(exports, "dealWithRelatedFields", { enumerable: true, get: function () { return dealWithRelatedFields_1.dealWithRelatedFields; } });
20
+ Object.defineProperty(exports, "getRelatedResolver", { enumerable: true, get: function () { return dealWithRelatedFields_1.getRelatedResolver; } });
1196
21
  //# sourceMappingURL=index.js.map