@steedos/service-object-graphql 2.4.8-beta.1

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.
@@ -0,0 +1,920 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getGraphqlActions = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var _ = require("underscore");
6
+ var i18n_1 = require("@steedos/i18n");
7
+ var moment = require("moment");
8
+ var objectql_1 = require("@steedos/objectql");
9
+ var consts_1 = require("./consts");
10
+ var getQueryFields_1 = require("./getQueryFields");
11
+ var utils_1 = require("./utils");
12
+ function getGraphqlActions() {
13
+ var actions = {};
14
+ actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.EXPAND_SUFFIX, "_multiple")] = {
15
+ handler: function (ctx) {
16
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
17
+ var _a, ids, objectName, referenceToField, filters, selector, steedosSchema, obj, resolveInfo, fieldNames;
18
+ return tslib_1.__generator(this, function (_b) {
19
+ _a = ctx.params, ids = _a.ids, objectName = _a.objectName, referenceToField = _a.referenceToField;
20
+ if (_.isEmpty(ids)) {
21
+ return [2, null];
22
+ }
23
+ filters = [[referenceToField || "_id", "in", ids]];
24
+ selector = { filters: filters };
25
+ steedosSchema = (0, objectql_1.getSteedosSchema)();
26
+ obj = steedosSchema.getObject(objectName);
27
+ resolveInfo = ctx.meta.resolveInfo;
28
+ fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
29
+ if (!_.isEmpty(fieldNames)) {
30
+ selector.fields = fieldNames;
31
+ }
32
+ return [2, obj.find(selector)];
33
+ });
34
+ });
35
+ },
36
+ };
37
+ actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.EXPAND_SUFFIX)] = {
38
+ handler: function (ctx) {
39
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
40
+ var _a, id, objectName, referenceToField, steedosSchema, obj, selector, resolveInfo, fieldNames;
41
+ return tslib_1.__generator(this, function (_b) {
42
+ switch (_b.label) {
43
+ case 0:
44
+ _a = ctx.params, id = _a.id, objectName = _a.objectName, referenceToField = _a.referenceToField;
45
+ if (!id) {
46
+ return [2];
47
+ }
48
+ steedosSchema = (0, objectql_1.getSteedosSchema)();
49
+ obj = steedosSchema.getObject(objectName);
50
+ selector = { filters: [[referenceToField || "_id", "=", id]] };
51
+ resolveInfo = ctx.meta.resolveInfo;
52
+ fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
53
+ if (!_.isEmpty(fieldNames)) {
54
+ selector.fields = fieldNames;
55
+ }
56
+ return [4, obj.find(selector)];
57
+ case 1: return [2, (_b.sent())[0]];
58
+ }
59
+ });
60
+ });
61
+ },
62
+ };
63
+ actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.RELATED_PREFIX, "_enabled")] = {
64
+ handler: function (ctx) {
65
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
66
+ var params, _parentId, _related_params, objectName, parentObjectName, foreignKey, userSession, steedosSchema, object, filters;
67
+ return tslib_1.__generator(this, function (_a) {
68
+ switch (_a.label) {
69
+ case 0:
70
+ params = ctx.params;
71
+ _parentId = params._parentId, _related_params = params._related_params;
72
+ objectName = _related_params.objectName, parentObjectName = _related_params.parentObjectName, foreignKey = _related_params.foreignKey;
73
+ userSession = ctx.meta.user;
74
+ steedosSchema = (0, objectql_1.getSteedosSchema)();
75
+ object = steedosSchema.getObject(objectName);
76
+ filters = [];
77
+ filters = [
78
+ ["".concat(foreignKey, ".o"), "=", parentObjectName],
79
+ ["".concat(foreignKey, ".ids"), "=", _parentId],
80
+ ];
81
+ if (params.filters) {
82
+ filters.push(params.filters);
83
+ }
84
+ params.filters = filters;
85
+ return [4, object.find(params, userSession)];
86
+ case 1: return [2, _a.sent()];
87
+ }
88
+ });
89
+ });
90
+ },
91
+ };
92
+ actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.RELATED_PREFIX)] = {
93
+ handler: function (ctx) {
94
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
95
+ var params, _parentId, _related_params, objectName, parentObjectName, fieldName, referenceToParentFieldName, userSession, steedosSchema, object, parentObj, parent, filters, _idValue, resolveInfo, fieldNames;
96
+ return tslib_1.__generator(this, function (_a) {
97
+ switch (_a.label) {
98
+ case 0:
99
+ params = ctx.params;
100
+ _parentId = params._parentId, _related_params = params._related_params;
101
+ objectName = _related_params.objectName, parentObjectName = _related_params.parentObjectName, fieldName = _related_params.fieldName, referenceToParentFieldName = _related_params.referenceToParentFieldName;
102
+ userSession = ctx.meta.user;
103
+ steedosSchema = (0, objectql_1.getSteedosSchema)();
104
+ object = steedosSchema.getObject(objectName);
105
+ parentObj = steedosSchema.getObject(parentObjectName);
106
+ return [4, parentObj.findOne(_parentId)];
107
+ case 1:
108
+ parent = _a.sent();
109
+ filters = [];
110
+ _idValue = parent._id;
111
+ if (referenceToParentFieldName) {
112
+ _idValue = parent[referenceToParentFieldName];
113
+ }
114
+ filters = [[fieldName, "=", _idValue]];
115
+ if (params.filters) {
116
+ filters.push(params.filters);
117
+ }
118
+ params.filters = filters;
119
+ resolveInfo = ctx.meta.resolveInfo;
120
+ fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
121
+ if (!_.isEmpty(fieldNames)) {
122
+ params.fields = fieldNames;
123
+ }
124
+ return [4, object.find(params, userSession)];
125
+ case 2: return [2, _a.sent()];
126
+ }
127
+ });
128
+ });
129
+ },
130
+ };
131
+ actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.DISPLAY_PREFIX)] = {
132
+ handler: function (ctx) {
133
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
134
+ var params, __objectName, userSession, selectFieldNames, resolveInfo, fieldNames, result;
135
+ return tslib_1.__generator(this, function (_a) {
136
+ switch (_a.label) {
137
+ case 0:
138
+ params = ctx.params;
139
+ __objectName = params.__objectName;
140
+ userSession = ctx.meta.user;
141
+ selectFieldNames = [];
142
+ resolveInfo = ctx.meta.resolveInfo;
143
+ fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
144
+ if (!_.isEmpty(fieldNames)) {
145
+ selectFieldNames = fieldNames;
146
+ }
147
+ return [4, translateToDisplay(__objectName, params, userSession, selectFieldNames)];
148
+ case 1:
149
+ result = _a.sent();
150
+ return [2, result];
151
+ }
152
+ });
153
+ });
154
+ },
155
+ };
156
+ actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.UI_PREFIX)] = {
157
+ handler: function (ctx) {
158
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
159
+ var params, __objectName, userSession, selectFieldNames, resolveInfo, fieldNames, result;
160
+ return tslib_1.__generator(this, function (_a) {
161
+ switch (_a.label) {
162
+ case 0:
163
+ params = ctx.params;
164
+ __objectName = params.__objectName;
165
+ userSession = ctx.meta.user;
166
+ selectFieldNames = [];
167
+ resolveInfo = ctx.meta.resolveInfo;
168
+ fieldNames = (0, getQueryFields_1.getQueryFields)(resolveInfo);
169
+ if (!_.isEmpty(fieldNames)) {
170
+ selectFieldNames = fieldNames;
171
+ }
172
+ return [4, translateToUI(__objectName, params, userSession, selectFieldNames)];
173
+ case 1:
174
+ result = _a.sent();
175
+ return [2, result];
176
+ }
177
+ });
178
+ });
179
+ },
180
+ };
181
+ actions["".concat(consts_1.GRAPHQL_ACTION_PREFIX).concat(consts_1.PERMISSIONS_PREFIX)] = {
182
+ handler: function (ctx) {
183
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
184
+ var params, __objectName, userSession;
185
+ return tslib_1.__generator(this, function (_a) {
186
+ switch (_a.label) {
187
+ case 0:
188
+ params = ctx.params;
189
+ __objectName = params.__objectName;
190
+ userSession = ctx.meta.user;
191
+ return [4, (0, utils_1.callObjectServiceAction)("objectql.getRecordPermissionsById", userSession, {
192
+ objectName: __objectName,
193
+ recordId: params._id
194
+ })];
195
+ case 1: return [2, _a.sent()];
196
+ }
197
+ });
198
+ });
199
+ },
200
+ };
201
+ return actions;
202
+ }
203
+ exports.getGraphqlActions = getGraphqlActions;
204
+ function translateToDisplay(objectName, doc, userSession, selectorFieldNames) {
205
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
206
+ function _translateToDisplay(doc, selectorFieldNames) {
207
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
208
+ var displayObj, _loop_1, selectorFieldNames_1, selectorFieldNames_1_1, name, e_1_1;
209
+ var e_1, _a;
210
+ return tslib_1.__generator(this, function (_b) {
211
+ switch (_b.label) {
212
+ case 0:
213
+ displayObj = {};
214
+ _loop_1 = function (name) {
215
+ 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;
216
+ return tslib_1.__generator(this, function (_c) {
217
+ switch (_c.label) {
218
+ case 0:
219
+ if (!Object.prototype.hasOwnProperty.call(fields, name)) return [3, 41];
220
+ field = fields[name];
221
+ if (!_.has(doc, name)) return [3, 40];
222
+ fType = field.type;
223
+ if (!(fType == "text")) return [3, 1];
224
+ displayObj[name] = doc[name] || "";
225
+ return [3, 39];
226
+ case 1:
227
+ if (!(fType == "textarea")) return [3, 2];
228
+ displayObj[name] = doc[name] || "";
229
+ return [3, 39];
230
+ case 2:
231
+ if (!(fType == "html_text")) return [3, 3];
232
+ displayObj[name] = doc[name] || "";
233
+ return [3, 39];
234
+ case 3:
235
+ if (!(fType == "html")) return [3, 4];
236
+ displayObj[name] = doc[name] || "";
237
+ return [3, 39];
238
+ case 4:
239
+ if (!(fType == "select")) return [3, 5];
240
+ label = "";
241
+ map_1 = {};
242
+ value = doc[name];
243
+ translatedField = getTranslatedFieldConfig(objConfig, name);
244
+ translatedFieldOptions = translatedField && translatedField.options;
245
+ _.forEach(translatedFieldOptions, function (o) {
246
+ map_1[o.value] = o.label;
247
+ });
248
+ if (field.multiple) {
249
+ labels_1 = [];
250
+ _.forEach(value, function (v) {
251
+ labels_1.push(map_1[v]);
252
+ });
253
+ label = labels_1.join(",");
254
+ }
255
+ else {
256
+ label = map_1[value];
257
+ }
258
+ displayObj[name] = label;
259
+ return [3, 39];
260
+ case 5:
261
+ if (!(fType == "boolean")) return [3, 6];
262
+ if (doc[name]) {
263
+ displayObj[name] = "√";
264
+ }
265
+ else {
266
+ displayObj[name] = "";
267
+ }
268
+ return [3, 39];
269
+ case 6:
270
+ if (!(fType == "date")) return [3, 7];
271
+ displayObj[name] = doc[name] ? moment.utc(doc[name])
272
+ .format("YYYY-MM-DD") : '';
273
+ return [3, 39];
274
+ case 7:
275
+ if (!(fType == "datetime")) return [3, 8];
276
+ displayObj[name] = doc[name] ? moment(doc[name])
277
+ .utcOffset(utcOffset)
278
+ .format("YYYY-MM-DD HH:mm") : '';
279
+ return [3, 39];
280
+ case 8:
281
+ if (!(fType == "time")) return [3, 9];
282
+ displayObj[name] = doc[name] ? moment.utc(doc[name])
283
+ .format("HH:mm") : '';
284
+ return [3, 39];
285
+ case 9:
286
+ if (!(fType == "number")) return [3, 10];
287
+ displayObj[name] = doc[name] ? (0, utils_1.numberToString)(doc[name], field.scale) : "";
288
+ return [3, 39];
289
+ case 10:
290
+ if (!(fType == "currency")) return [3, 11];
291
+ displayObj[name] = doc[name] ? (0, utils_1.numberToString)(doc[name], field.scale) : "";
292
+ return [3, 39];
293
+ case 11:
294
+ if (!(fType == "percent")) return [3, 12];
295
+ displayObj[name] = doc[name] ? "".concat(doc[name] * 100, "%") : "";
296
+ return [3, 39];
297
+ case 12:
298
+ if (!(fType == "password")) return [3, 13];
299
+ displayObj[name] = "";
300
+ if (_.isString(doc[name])) {
301
+ for (i = 0; i < doc[name].length; i++) {
302
+ displayObj[name] += "*";
303
+ }
304
+ }
305
+ return [3, 39];
306
+ case 13:
307
+ if (!(fType == "lookup" && _.isString(field.reference_to))) return [3, 19];
308
+ refTo = field.reference_to;
309
+ refField = field.reference_to_field || '_id';
310
+ if (refTo === 'users') {
311
+ refTo = 'space_users';
312
+ refField = 'user';
313
+ }
314
+ refValue = doc[name];
315
+ if (!refValue) {
316
+ return [2, "continue"];
317
+ }
318
+ refObj = steedosSchema.getObject(refTo);
319
+ return [4, refObj.getNameFieldKey()];
320
+ case 14:
321
+ nameFieldKey = _c.sent();
322
+ if (!field.multiple) return [3, 16];
323
+ return [4, refObj.find({
324
+ filters: [refField, "in", refValue],
325
+ fields: [nameFieldKey],
326
+ })];
327
+ case 15:
328
+ refRecords = _c.sent();
329
+ displayObj[name] = _.pluck(refRecords, nameFieldKey).join(',');
330
+ return [3, 18];
331
+ case 16: return [4, refObj.find({
332
+ filters: [refField, "=", refValue],
333
+ fields: [nameFieldKey],
334
+ })];
335
+ case 17:
336
+ refRecord = (_c.sent())[0];
337
+ if (refRecord) {
338
+ displayObj[name] = refRecord[nameFieldKey];
339
+ }
340
+ _c.label = 18;
341
+ case 18: return [3, 39];
342
+ case 19:
343
+ if (!(fType == "master_detail" && _.isString(field.reference_to))) return [3, 25];
344
+ refTo = field.reference_to;
345
+ refField = field.reference_to_field || '_id';
346
+ if (refTo === 'users') {
347
+ refTo = 'space_users';
348
+ refField = 'user';
349
+ }
350
+ refValue = doc[name];
351
+ if (!refValue) {
352
+ return [2, "continue"];
353
+ }
354
+ refObj = steedosSchema.getObject(refTo);
355
+ return [4, refObj.getNameFieldKey()];
356
+ case 20:
357
+ nameFieldKey = _c.sent();
358
+ if (!field.multiple) return [3, 22];
359
+ return [4, refObj.find({
360
+ filters: [refField, "in", refValue],
361
+ fields: [nameFieldKey],
362
+ })];
363
+ case 21:
364
+ refRecords = _c.sent();
365
+ displayObj[name] = _.pluck(refRecords, nameFieldKey).join(',');
366
+ return [3, 24];
367
+ case 22: return [4, refObj.find({
368
+ filters: [refField, "=", refValue],
369
+ fields: [nameFieldKey],
370
+ })];
371
+ case 23:
372
+ refRecord = (_c.sent())[0];
373
+ if (refRecord) {
374
+ displayObj[name] = refRecord[nameFieldKey];
375
+ }
376
+ _c.label = 24;
377
+ case 24: return [3, 39];
378
+ case 25:
379
+ if (!((fType == "master_detail" || fType == "lookup") && field.reference_to && !_.isString(field.reference_to))) return [3, 28];
380
+ refValue = doc[name];
381
+ if (!refValue) {
382
+ return [2, "continue"];
383
+ }
384
+ refTo = refValue.o;
385
+ refValues = refValue.ids;
386
+ if (!refTo) {
387
+ return [2, "continue"];
388
+ }
389
+ refObj = steedosSchema.getObject(refTo);
390
+ return [4, refObj.getNameFieldKey()];
391
+ case 26:
392
+ nameFieldKey = _c.sent();
393
+ return [4, refObj.find({
394
+ filters: ["_id", "in", refValues],
395
+ fields: [nameFieldKey]
396
+ })];
397
+ case 27:
398
+ refRecords = _c.sent();
399
+ displayObj[name] = _.pluck(refRecords, nameFieldKey).join(',');
400
+ return [3, 39];
401
+ case 28:
402
+ if (!(fType == "autonumber")) return [3, 29];
403
+ displayObj[name] = doc[name] || "";
404
+ return [3, 39];
405
+ case 29:
406
+ if (!(fType == "url")) return [3, 30];
407
+ displayObj[name] = doc[name] || "";
408
+ return [3, 39];
409
+ case 30:
410
+ if (!(fType == "email")) return [3, 31];
411
+ displayObj[name] = doc[name] || "";
412
+ return [3, 39];
413
+ case 31:
414
+ if (!(fType == "formula")) return [3, 32];
415
+ displayObj[name] = doc[name] || "";
416
+ return [3, 39];
417
+ case 32:
418
+ if (!(fType == "summary")) return [3, 33];
419
+ displayObj[name] = doc[name] || "";
420
+ return [3, 39];
421
+ case 33:
422
+ if (!(fType == "image" || fType == "file")) return [3, 38];
423
+ fileLabel = "";
424
+ value = doc[name];
425
+ if (!value) {
426
+ return [2, "continue"];
427
+ }
428
+ fileObjectName = fType == "image" ? "cfs_images_filerecord" : "cfs_files_filerecord";
429
+ fileObject = steedosSchema.getObject(fileObjectName);
430
+ fileNameFieldKey = "original.name";
431
+ if (!field.multiple) return [3, 35];
432
+ return [4, fileObject.find({
433
+ filters: ["_id", "in", value],
434
+ fields: [fileNameFieldKey],
435
+ })];
436
+ case 34:
437
+ fileRecords = _c.sent();
438
+ fileLabel = _.map(fileRecords, function (fileRecord) {
439
+ var _a;
440
+ return (_a = fileRecord.original) === null || _a === void 0 ? void 0 : _a.name;
441
+ }).join(",");
442
+ return [3, 37];
443
+ case 35: return [4, fileObject.find({
444
+ filters: ["_id", "=", value],
445
+ fields: [fileNameFieldKey],
446
+ })];
447
+ case 36:
448
+ fileRecord = (_c.sent())[0];
449
+ if (fileRecord) {
450
+ fileLabel = fileRecord["original"]["name"];
451
+ }
452
+ _c.label = 37;
453
+ case 37:
454
+ displayObj[name] = fileLabel;
455
+ return [3, 39];
456
+ case 38:
457
+ console.error("Graphql Display: need to handle new field type ".concat(field.type, " for ").concat(objectName, "."));
458
+ displayObj[name] = doc[name] || "";
459
+ _c.label = 39;
460
+ case 39: return [3, 41];
461
+ case 40:
462
+ displayObj[name] = "";
463
+ _c.label = 41;
464
+ case 41: return [2];
465
+ }
466
+ });
467
+ };
468
+ _b.label = 1;
469
+ case 1:
470
+ _b.trys.push([1, 6, 7, 8]);
471
+ selectorFieldNames_1 = tslib_1.__values(selectorFieldNames), selectorFieldNames_1_1 = selectorFieldNames_1.next();
472
+ _b.label = 2;
473
+ case 2:
474
+ if (!!selectorFieldNames_1_1.done) return [3, 5];
475
+ name = selectorFieldNames_1_1.value;
476
+ return [5, _loop_1(name)];
477
+ case 3:
478
+ _b.sent();
479
+ _b.label = 4;
480
+ case 4:
481
+ selectorFieldNames_1_1 = selectorFieldNames_1.next();
482
+ return [3, 2];
483
+ case 5: return [3, 8];
484
+ case 6:
485
+ e_1_1 = _b.sent();
486
+ e_1 = { error: e_1_1 };
487
+ return [3, 8];
488
+ case 7:
489
+ try {
490
+ if (selectorFieldNames_1_1 && !selectorFieldNames_1_1.done && (_a = selectorFieldNames_1.return)) _a.call(selectorFieldNames_1);
491
+ }
492
+ finally { if (e_1) throw e_1.error; }
493
+ return [7];
494
+ case 8: return [2, displayObj];
495
+ }
496
+ });
497
+ });
498
+ }
499
+ var lng, steedosSchema, object, objConfig, fields, utcOffset, displayDoc;
500
+ return tslib_1.__generator(this, function (_a) {
501
+ switch (_a.label) {
502
+ case 0:
503
+ lng = (0, objectql_1.getUserLocale)(userSession);
504
+ steedosSchema = (0, objectql_1.getSteedosSchema)();
505
+ object = steedosSchema.getObject(objectName);
506
+ return [4, object.toConfig()];
507
+ case 1:
508
+ objConfig = _a.sent();
509
+ fields = objConfig.fields;
510
+ (0, i18n_1.translationObject)(lng, objConfig.name, objConfig, true);
511
+ utcOffset = userSession.utcOffset || 8;
512
+ return [4, _translateToDisplay(doc, selectorFieldNames)];
513
+ case 2:
514
+ displayDoc = _a.sent();
515
+ displayDoc['_id'] = doc._id;
516
+ return [2, displayDoc];
517
+ }
518
+ });
519
+ });
520
+ }
521
+ function translateToUI(objectName, doc, userSession, selectorFieldNames) {
522
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
523
+ function _translateToUI(doc, selectorFieldNames, parentDoc) {
524
+ var _a, _b;
525
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
526
+ var displayObj, _loop_2, selectorFieldNames_2, selectorFieldNames_2_1, name, e_2_1;
527
+ var e_2, _c;
528
+ return tslib_1.__generator(this, function (_d) {
529
+ switch (_d.label) {
530
+ case 0:
531
+ displayObj = {};
532
+ _loop_2 = function (name) {
533
+ var field, fType, label, map_2, value, translatedField, translatedFieldOptions, labels_2, refTo_1, refField, refValue, refFilters, refToObjectsField, refToObjectsField, 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, _doc_1, objectFieldDoc, objectDoc_1, gridDocs, _loop_3, _e, _f, gridDoc, e_3_1, error_1;
534
+ var e_3, _g;
535
+ return tslib_1.__generator(this, function (_h) {
536
+ switch (_h.label) {
537
+ case 0:
538
+ if (!Object.prototype.hasOwnProperty.call(fields, name)) return [3, 43];
539
+ field = fields[name];
540
+ _h.label = 1;
541
+ case 1:
542
+ _h.trys.push([1, 42, , 43]);
543
+ if (!_.has(doc, name)) return [3, 40];
544
+ fType = field.type;
545
+ if (!(fType == "select")) return [3, 2];
546
+ label = "";
547
+ map_2 = {};
548
+ value = doc[name];
549
+ translatedField = getTranslatedFieldConfig(objConfig, name);
550
+ translatedFieldOptions = translatedField && translatedField.options;
551
+ _.forEach(translatedFieldOptions, function (o) {
552
+ map_2[o.value] = o.label;
553
+ });
554
+ if (field.multiple) {
555
+ labels_2 = [];
556
+ _.forEach(value, function (v) {
557
+ labels_2.push(map_2[v]);
558
+ });
559
+ label = labels_2.join(",");
560
+ }
561
+ else {
562
+ label = map_2[value];
563
+ }
564
+ displayObj[name] = label;
565
+ return [3, 39];
566
+ case 2:
567
+ if (!(fType == "lookup" && _.isString(field.reference_to))) return [3, 8];
568
+ refTo_1 = field.reference_to;
569
+ refField = field.reference_to_field || '_id';
570
+ if (refTo_1 === 'users') {
571
+ refTo_1 = 'space_users';
572
+ refField = 'user';
573
+ }
574
+ refValue = doc[name];
575
+ if (!refValue) {
576
+ return [2, "continue"];
577
+ }
578
+ refFilters = null;
579
+ if (field.multiple) {
580
+ refFilters = [refField, "in", refValue];
581
+ }
582
+ else {
583
+ refFilters = [refField, "=", refValue];
584
+ }
585
+ if (refTo_1 === 'object_fields' && refField == 'name') {
586
+ refToObjectsField = _.find(fields, function (_field) {
587
+ return _field.reference_to === 'objects';
588
+ });
589
+ if (refToObjectsField) {
590
+ refFilters = [['object', '=', parentDoc[refToObjectsField.name]], refFilters];
591
+ }
592
+ }
593
+ if (refTo_1 === 'object_actions' && refField == 'name') {
594
+ refToObjectsField = _.find(fields, function (_field) {
595
+ return _field.reference_to === 'objects';
596
+ });
597
+ if (refToObjectsField) {
598
+ refFilters = [['object', '=', parentDoc[refToObjectsField.name]], refFilters];
599
+ }
600
+ }
601
+ refObj = steedosSchema.getObject(refTo_1);
602
+ return [4, refObj.getNameFieldKey()];
603
+ case 3:
604
+ nameFieldKey_1 = _h.sent();
605
+ if (!field.multiple) return [3, 5];
606
+ return [4, refObj.find({
607
+ filters: refFilters,
608
+ fields: [nameFieldKey_1],
609
+ })];
610
+ case 4:
611
+ refRecords = _h.sent();
612
+ displayObj[name] = _.map(refRecords, function (item) {
613
+ return {
614
+ objectName: refTo_1,
615
+ value: item._id,
616
+ label: item[nameFieldKey_1]
617
+ };
618
+ });
619
+ return [3, 7];
620
+ case 5: return [4, refObj.find({
621
+ filters: refFilters,
622
+ fields: [nameFieldKey_1],
623
+ })];
624
+ case 6:
625
+ refRecord = (_h.sent())[0];
626
+ if (refRecord) {
627
+ displayObj[name] = {
628
+ objectName: refTo_1,
629
+ value: refRecord._id,
630
+ label: refRecord[nameFieldKey_1]
631
+ };
632
+ }
633
+ _h.label = 7;
634
+ case 7: return [3, 39];
635
+ case 8:
636
+ if (!(fType == "master_detail" && _.isString(field.reference_to))) return [3, 14];
637
+ refTo_2 = field.reference_to;
638
+ refField = field.reference_to_field || '_id';
639
+ if (refTo_2 === 'users') {
640
+ refTo_2 = 'space_users';
641
+ refField = 'user';
642
+ }
643
+ refValue = doc[name];
644
+ if (!refValue) {
645
+ return [2, "continue"];
646
+ }
647
+ refObj = steedosSchema.getObject(refTo_2);
648
+ return [4, refObj.getNameFieldKey()];
649
+ case 9:
650
+ nameFieldKey_2 = _h.sent();
651
+ if (!field.multiple) return [3, 11];
652
+ return [4, refObj.find({
653
+ filters: [refField, "in", refValue],
654
+ fields: [nameFieldKey_2],
655
+ })];
656
+ case 10:
657
+ refRecords = _h.sent();
658
+ displayObj[name] = _.map(refRecords, function (item) {
659
+ return {
660
+ objectName: refTo_2,
661
+ value: item._id,
662
+ label: item[nameFieldKey_2]
663
+ };
664
+ });
665
+ return [3, 13];
666
+ case 11: return [4, refObj.find({
667
+ filters: [refField, "=", refValue],
668
+ fields: [nameFieldKey_2],
669
+ })];
670
+ case 12:
671
+ refRecord = (_h.sent())[0];
672
+ if (refRecord) {
673
+ displayObj[name] = {
674
+ objectName: refTo_2,
675
+ value: refRecord._id,
676
+ label: refRecord[nameFieldKey_2]
677
+ };
678
+ }
679
+ _h.label = 13;
680
+ case 13: return [3, 39];
681
+ case 14:
682
+ if (!((fType == "master_detail" || fType == "lookup") && field.reference_to && !_.isString(field.reference_to))) return [3, 17];
683
+ refValue = doc[name];
684
+ if (!refValue) {
685
+ return [2, "continue"];
686
+ }
687
+ refTo_3 = refValue.o;
688
+ refValues = refValue.ids;
689
+ if (!refTo_3) {
690
+ return [2, "continue"];
691
+ }
692
+ refObj = steedosSchema.getObject(refTo_3);
693
+ return [4, refObj.getNameFieldKey()];
694
+ case 15:
695
+ nameFieldKey_3 = _h.sent();
696
+ return [4, refObj.find({
697
+ filters: ["_id", "in", refValues],
698
+ fields: [nameFieldKey_3]
699
+ })];
700
+ case 16:
701
+ refRecords = _h.sent();
702
+ displayObj[name] = _.map(refRecords, function (item) {
703
+ return {
704
+ objectName: refTo_3,
705
+ value: item._id,
706
+ label: item[nameFieldKey_3]
707
+ };
708
+ });
709
+ return [3, 39];
710
+ case 17:
711
+ if (!(fType == "formula")) return [3, 18];
712
+ displayObj[name] = (0, utils_1.formatBasicFieldValue)(field.data_type, field, doc[name], objConfig, userSession);
713
+ return [3, 39];
714
+ case 18:
715
+ if (!(fType == "summary")) return [3, 19];
716
+ displayObj[name] = (0, utils_1.formatBasicFieldValue)('number', field, doc[name], objConfig, userSession);
717
+ return [3, 39];
718
+ case 19:
719
+ if (!(fType == "image" || fType == "file" || fType === 'avatar')) return [3, 24];
720
+ fileValue = null;
721
+ value = doc[name];
722
+ if (!value) {
723
+ return [2, "continue"];
724
+ }
725
+ storageName_1 = (0, utils_1.getFileStorageName)(fType);
726
+ fileObjectName = "cfs_".concat(storageName_1, "_filerecord");
727
+ fileObject = steedosSchema.getObject(fileObjectName);
728
+ fileNameFieldKey = "original.name";
729
+ if (!field.multiple) return [3, 21];
730
+ return [4, fileObject.find({
731
+ filters: ["_id", "in", value],
732
+ fields: ['_id', fileNameFieldKey, 'original.size', 'original.type'],
733
+ })];
734
+ case 20:
735
+ fileRecords = _h.sent();
736
+ fileValue = _.map(fileRecords, function (fileRecord) {
737
+ var _a, _b, _c;
738
+ return {
739
+ name: (_a = fileRecord.original) === null || _a === void 0 ? void 0 : _a.name,
740
+ url: (0, objectql_1.absoluteUrl)("/api/files/".concat(storageName_1, "/").concat(fileRecord._id)),
741
+ size: (_b = fileRecord.original) === null || _b === void 0 ? void 0 : _b.size,
742
+ type: (_c = fileRecord.original) === null || _c === void 0 ? void 0 : _c.type,
743
+ };
744
+ });
745
+ return [3, 23];
746
+ case 21: return [4, fileObject.find({
747
+ filters: ["_id", "=", value],
748
+ fields: ['_id', fileNameFieldKey, 'original.size', 'original.type'],
749
+ })];
750
+ case 22:
751
+ fileRecord = (_h.sent())[0];
752
+ if (fileRecord) {
753
+ fileValue = {
754
+ name: fileRecord["original"]["name"],
755
+ url: (0, objectql_1.absoluteUrl)("/api/files/".concat(storageName_1, "/").concat(value)),
756
+ size: (_a = fileRecord.original) === null || _a === void 0 ? void 0 : _a.size,
757
+ type: (_b = fileRecord.original) === null || _b === void 0 ? void 0 : _b.type
758
+ };
759
+ }
760
+ else {
761
+ fileValue = {
762
+ url: value
763
+ };
764
+ }
765
+ _h.label = 23;
766
+ case 23:
767
+ displayObj[name] = fileValue;
768
+ return [3, 39];
769
+ case 24:
770
+ if (!(fType == "filesize")) return [3, 25];
771
+ displayObj[name] = (0, utils_1.formatFileSize)(doc[name]);
772
+ return [3, 39];
773
+ case 25:
774
+ if (!(fType === 'object')) return [3, 28];
775
+ if (!(doc[name] && _.isObject(doc[name]))) return [3, 27];
776
+ _doc_1 = {};
777
+ _.each(doc[name], function (v, k) {
778
+ var newKey = "".concat(name, ".").concat(k);
779
+ _doc_1[newKey] = v;
780
+ });
781
+ return [4, _translateToUI(_doc_1, Object.keys(_doc_1), doc)];
782
+ case 26:
783
+ objectFieldDoc = _h.sent();
784
+ objectDoc_1 = {};
785
+ _.each(objectFieldDoc, function (v, k) {
786
+ var newKey = k.replace("".concat(name, "."), '');
787
+ objectDoc_1[newKey] = v;
788
+ });
789
+ displayObj[name] = objectDoc_1;
790
+ _h.label = 27;
791
+ case 27: return [3, 39];
792
+ case 28:
793
+ if (!(fType === 'grid')) return [3, 38];
794
+ if (!(doc[name] && _.isArray(doc[name]))) return [3, 37];
795
+ gridDocs = [];
796
+ _loop_3 = function (gridDoc) {
797
+ var _doc, objectFieldDoc, objectDoc;
798
+ return tslib_1.__generator(this, function (_j) {
799
+ switch (_j.label) {
800
+ case 0:
801
+ _doc = {};
802
+ _.each(gridDoc, function (v, k) {
803
+ var newKey = "".concat(name, ".$.").concat(k);
804
+ _doc[newKey] = v;
805
+ });
806
+ return [4, _translateToUI(_doc, Object.keys(_doc), doc)];
807
+ case 1:
808
+ objectFieldDoc = _j.sent();
809
+ objectDoc = {};
810
+ _.each(objectFieldDoc, function (v, k) {
811
+ var newKey = k.replace("".concat(name, ".$."), '');
812
+ objectDoc[newKey] = v;
813
+ });
814
+ gridDocs.push(objectDoc);
815
+ return [2];
816
+ }
817
+ });
818
+ };
819
+ _h.label = 29;
820
+ case 29:
821
+ _h.trys.push([29, 34, 35, 36]);
822
+ _e = (e_3 = void 0, tslib_1.__values(doc[name])), _f = _e.next();
823
+ _h.label = 30;
824
+ case 30:
825
+ if (!!_f.done) return [3, 33];
826
+ gridDoc = _f.value;
827
+ return [5, _loop_3(gridDoc)];
828
+ case 31:
829
+ _h.sent();
830
+ _h.label = 32;
831
+ case 32:
832
+ _f = _e.next();
833
+ return [3, 30];
834
+ case 33: return [3, 36];
835
+ case 34:
836
+ e_3_1 = _h.sent();
837
+ e_3 = { error: e_3_1 };
838
+ return [3, 36];
839
+ case 35:
840
+ try {
841
+ if (_f && !_f.done && (_g = _e.return)) _g.call(_e);
842
+ }
843
+ finally { if (e_3) throw e_3.error; }
844
+ return [7];
845
+ case 36:
846
+ displayObj[name] = gridDocs;
847
+ _h.label = 37;
848
+ case 37: return [3, 39];
849
+ case 38:
850
+ displayObj[name] = (0, utils_1.formatBasicFieldValue)(fType, field, doc[name], objConfig, userSession);
851
+ _h.label = 39;
852
+ case 39: return [3, 41];
853
+ case 40:
854
+ displayObj[name] = "";
855
+ _h.label = 41;
856
+ case 41: return [3, 43];
857
+ case 42:
858
+ error_1 = _h.sent();
859
+ displayObj[name] = doc[name];
860
+ return [3, 43];
861
+ case 43: return [2];
862
+ }
863
+ });
864
+ };
865
+ _d.label = 1;
866
+ case 1:
867
+ _d.trys.push([1, 6, 7, 8]);
868
+ selectorFieldNames_2 = tslib_1.__values(selectorFieldNames), selectorFieldNames_2_1 = selectorFieldNames_2.next();
869
+ _d.label = 2;
870
+ case 2:
871
+ if (!!selectorFieldNames_2_1.done) return [3, 5];
872
+ name = selectorFieldNames_2_1.value;
873
+ return [5, _loop_2(name)];
874
+ case 3:
875
+ _d.sent();
876
+ _d.label = 4;
877
+ case 4:
878
+ selectorFieldNames_2_1 = selectorFieldNames_2.next();
879
+ return [3, 2];
880
+ case 5: return [3, 8];
881
+ case 6:
882
+ e_2_1 = _d.sent();
883
+ e_2 = { error: e_2_1 };
884
+ return [3, 8];
885
+ case 7:
886
+ try {
887
+ if (selectorFieldNames_2_1 && !selectorFieldNames_2_1.done && (_c = selectorFieldNames_2.return)) _c.call(selectorFieldNames_2);
888
+ }
889
+ finally { if (e_2) throw e_2.error; }
890
+ return [7];
891
+ case 8: return [2, displayObj];
892
+ }
893
+ });
894
+ });
895
+ }
896
+ var lng, steedosSchema, object, objConfig, fields, uiDoc;
897
+ return tslib_1.__generator(this, function (_a) {
898
+ switch (_a.label) {
899
+ case 0:
900
+ lng = (0, objectql_1.getUserLocale)(userSession);
901
+ steedosSchema = (0, objectql_1.getSteedosSchema)();
902
+ object = steedosSchema.getObject(objectName);
903
+ return [4, object.toConfig()];
904
+ case 1:
905
+ objConfig = _a.sent();
906
+ fields = objConfig.fields;
907
+ (0, i18n_1.translationObject)(lng, objConfig.name, objConfig, true);
908
+ return [4, _translateToUI(doc, selectorFieldNames, doc)];
909
+ case 2:
910
+ uiDoc = _a.sent();
911
+ uiDoc['_id'] = doc._id;
912
+ return [2, uiDoc];
913
+ }
914
+ });
915
+ });
916
+ }
917
+ function getTranslatedFieldConfig(translatedObject, name) {
918
+ return translatedObject.fields[name.replace(/__label$/, "")];
919
+ }
920
+ //# sourceMappingURL=getGraphqlActions.js.map