@steedos/objectql 2.3.6 → 2.3.7

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 (35) hide show
  1. package/lib/actions/workflow_notifications.js +1 -5
  2. package/lib/actions/workflow_notifications.js.map +1 -1
  3. package/lib/dynamic-load/client_script.js +1 -1
  4. package/lib/dynamic-load/client_script.js.map +1 -1
  5. package/lib/dynamic-load/package.js +0 -5
  6. package/lib/dynamic-load/package.js.map +1 -1
  7. package/lib/services/helpers/graphql/consts.d.ts +0 -2
  8. package/lib/services/helpers/graphql/consts.js +1 -3
  9. package/lib/services/helpers/graphql/consts.js.map +1 -1
  10. package/lib/services/helpers/graphql/index.d.ts +26 -6
  11. package/lib/services/helpers/graphql/index.js +1191 -16
  12. package/lib/services/helpers/graphql/index.js.map +1 -1
  13. package/lib/services/objectService.d.ts +0 -6
  14. package/lib/services/objectService.js +2 -29
  15. package/lib/services/objectService.js.map +1 -1
  16. package/lib/services/objectServiceDispatcher.js +0 -10
  17. package/lib/services/objectServiceDispatcher.js.map +1 -1
  18. package/lib/types/object.js +2 -2
  19. package/lib/types/object.js.map +1 -1
  20. package/package.json +13 -13
  21. package/lib/services/helpers/graphql/dealWithRelatedFields.d.ts +0 -16
  22. package/lib/services/helpers/graphql/dealWithRelatedFields.js +0 -73
  23. package/lib/services/helpers/graphql/dealWithRelatedFields.js.map +0 -1
  24. package/lib/services/helpers/graphql/generateActionGraphqlProp.d.ts +0 -2
  25. package/lib/services/helpers/graphql/generateActionGraphqlProp.js +0 -38
  26. package/lib/services/helpers/graphql/generateActionGraphqlProp.js.map +0 -1
  27. package/lib/services/helpers/graphql/generateSettingsGraphql.d.ts +0 -5
  28. package/lib/services/helpers/graphql/generateSettingsGraphql.js +0 -216
  29. package/lib/services/helpers/graphql/generateSettingsGraphql.js.map +0 -1
  30. package/lib/services/helpers/graphql/getGraphqlActions.d.ts +0 -2
  31. package/lib/services/helpers/graphql/getGraphqlActions.js +0 -894
  32. package/lib/services/helpers/graphql/getGraphqlActions.js.map +0 -1
  33. package/lib/services/helpers/graphql/utils.d.ts +0 -8
  34. package/lib/services/helpers/graphql/utils.js +0 -128
  35. package/lib/services/helpers/graphql/utils.js.map +0 -1
@@ -1,21 +1,1196 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRelatedResolver = exports.dealWithRelatedFields = exports.getGraphqlActions = exports.generateSettingsGraphql = exports.generateActionGraphqlProp = exports.getQueryFields = exports.getLocalService = exports.correctName = exports._getRelatedType = void 0;
3
+ exports.getLocalService = exports.getRelatedResolver = exports.getGraphqlActions = exports._getRelatedType = exports.correctName = exports.dealWithRelatedFields = exports.generateSettingsGraphql = exports.generateActionGraphqlProp = void 0;
4
4
  var tslib_1 = require("tslib");
5
- tslib_1.__exportStar(require("./consts"), exports);
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; } });
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("../../..");
10
12
  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; } });
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
+ 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;
21
1196
  //# sourceMappingURL=index.js.map