@infrab4a/connect 3.2.3 → 3.2.5-beta.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.
@@ -2684,19 +2684,18 @@
2684
2684
  function OrderFirestoreRepository(firestore) {
2685
2685
  var _this = _super.call(this) || this;
2686
2686
  _this.firestore = firestore;
2687
- _this.orderFromFirestore = function (order, id) {
2687
+ _this.orderFromFirestore = function (order) {
2688
2688
  var _a;
2689
- var modifiedOrder = _this.model.toInstance(Object.assign(Object.assign({}, order), { id: id }));
2690
- if (!!((_a = modifiedOrder === null || modifiedOrder === void 0 ? void 0 : modifiedOrder.lineItems) === null || _a === void 0 ? void 0 : _a.length)) {
2691
- modifiedOrder.lineItems = modifiedOrder.lineItems.map(function (lineItem) {
2692
- if (!!lineItem.price[modifiedOrder.shop]) {
2693
- var shopPrice = lineItem['price'][modifiedOrder.shop];
2689
+ if (!!((_a = order === null || order === void 0 ? void 0 : order.lineItems) === null || _a === void 0 ? void 0 : _a.length)) {
2690
+ order.lineItems = order.lineItems.map(function (lineItem) {
2691
+ if (!!lineItem.price[order.shop]) {
2692
+ var shopPrice = lineItem['price'][order.shop];
2694
2693
  lineItem['price'] = shopPrice;
2695
2694
  }
2696
2695
  return lineItem;
2697
2696
  });
2698
2697
  }
2699
- return modifiedOrder;
2698
+ return order;
2700
2699
  };
2701
2700
  _this.collectionName = 'orders';
2702
2701
  _this.model = Order;
@@ -2709,7 +2708,7 @@
2709
2708
  toFirestore: function (data) { return toFirestore((data === null || data === void 0 ? void 0 : data.toPlain) ? data.toPlain() : data); },
2710
2709
  fromFirestore: function (snap) {
2711
2710
  var instance = fromFirestore(snap);
2712
- return _this.orderFromFirestore(instance, snap.id);
2711
+ return _this.orderFromFirestore(instance);
2713
2712
  },
2714
2713
  };
2715
2714
  };
@@ -2986,6 +2985,117 @@
2986
2985
  return Object.assign({ attributeName: attributeName || columnName, columnName: columnName }, fieldOption);
2987
2986
  };
2988
2987
 
2988
+ var HasuraGraphQLWhere;
2989
+ (function (HasuraGraphQLWhere) {
2990
+ HasuraGraphQLWhere["EQUALS"] = "_eq";
2991
+ HasuraGraphQLWhere["GT"] = "_gt";
2992
+ HasuraGraphQLWhere["GTE"] = "_gte";
2993
+ HasuraGraphQLWhere["IN"] = "_in";
2994
+ HasuraGraphQLWhere["NOTIN"] = "_nin";
2995
+ HasuraGraphQLWhere["LT"] = "_lt";
2996
+ HasuraGraphQLWhere["LTE"] = "_lte";
2997
+ HasuraGraphQLWhere["LIKE"] = "_like";
2998
+ HasuraGraphQLWhere["NOTLIKE"] = "_nlike";
2999
+ HasuraGraphQLWhere["ISNULL"] = "_is_null";
3000
+ HasuraGraphQLWhere["ISNOTNULL"] = "_is_null";
3001
+ })(HasuraGraphQLWhere || (HasuraGraphQLWhere = {}));
3002
+
3003
+ var HasuraGraphQLColumnType;
3004
+ (function (HasuraGraphQLColumnType) {
3005
+ HasuraGraphQLColumnType["Int"] = "Int";
3006
+ HasuraGraphQLColumnType["Float"] = "Float";
3007
+ HasuraGraphQLColumnType["Boolean"] = "Boolean";
3008
+ HasuraGraphQLColumnType["String"] = "String";
3009
+ HasuraGraphQLColumnType["DateTime"] = "timestampz";
3010
+ HasuraGraphQLColumnType["Json"] = "json";
3011
+ HasuraGraphQLColumnType["Jsonb"] = "jsonb";
3012
+ HasuraGraphQLColumnType["Enum"] = "enum";
3013
+ HasuraGraphQLColumnType["Uuid"] = "uuid";
3014
+ })(HasuraGraphQLColumnType || (HasuraGraphQLColumnType = {}));
3015
+
3016
+ var FilterOptionHelper = /** @class */ (function () {
3017
+ function FilterOptionHelper() {
3018
+ }
3019
+ return FilterOptionHelper;
3020
+ }());
3021
+ FilterOptionHelper.CheckIfIsFilterOption = function (filter) { return !lodash.isNil(filter === null || filter === void 0 ? void 0 : filter.operator); };
3022
+ FilterOptionHelper.GetValueFromFilter = function (filter, fieldOption) {
3023
+ if (!FilterOptionHelper.CheckIfIsFilterOption(filter))
3024
+ return filter;
3025
+ if (filter.operator === exports.Where.ISNULL)
3026
+ return true;
3027
+ if (filter.operator === exports.Where.ISNOTNULL)
3028
+ return false;
3029
+ var converter = fieldOption.to
3030
+ ? fieldOption.to
3031
+ : function (value) { return filter.operator === exports.Where.LIKE && !Array.isArray(filter.value) && value.indexOf('%') < 0
3032
+ ? "%" + value + "%"
3033
+ : value; };
3034
+ return Array.isArray(filter.value) && !fieldOption.fields && [exports.Where.IN, exports.Where.NOTIN].includes(filter.operator)
3035
+ ? filter.value.map(function (fieldValue) { return converter(fieldValue); })
3036
+ : converter(filter.value);
3037
+ };
3038
+
3039
+ var BindFilterQueryHelper = /** @class */ (function () {
3040
+ function BindFilterQueryHelper() {
3041
+ }
3042
+ return BindFilterQueryHelper;
3043
+ }());
3044
+ BindFilterQueryHelper.MakeGraphQLWhere = function (filter, fields) { return Object.keys(filter).reduce(function (variables, fieldName) {
3045
+ var _a;
3046
+ var columnOption = AttributeOptionHelper.FindByAttribute(fieldName, fields);
3047
+ if (!columnOption.bindFindFilter)
3048
+ return Object.assign(Object.assign({}, variables), (_a = {},
3049
+ _a[columnOption.columnName] = BindFilterQueryHelper.BuildWhereSentence(fieldName, filter[fieldName], fields),
3050
+ _a));
3051
+ var builtFilter = columnOption.bindFindFilter(filter[fieldName]);
3052
+ return Object.assign(Object.assign({}, variables), Object.keys(builtFilter).reduce(function (variablesList, columnName) {
3053
+ var _a;
3054
+ return (Object.assign(Object.assign({}, variablesList), (_a = {}, _a[columnName] = BindFilterQueryHelper.BuildWhereSentence(fieldName, builtFilter[columnName], fields), _a)));
3055
+ }, {}));
3056
+ }, {}); };
3057
+ BindFilterQueryHelper.BuildWhereSentence = function (field, options, fields) {
3058
+ var _a;
3059
+ var fieldSentenceOptions = AttributeOptionHelper.FindByAttribute(field, fields);
3060
+ if (!Array.isArray(options) &&
3061
+ lodash.isObject(options) &&
3062
+ lodash.isNil(options === null || options === void 0 ? void 0 : options.operator) &&
3063
+ lodash.isNil(options === null || options === void 0 ? void 0 : options.value) &&
3064
+ lodash.isNil(fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.to))
3065
+ return Object.keys(options).reduce(function (variables, key) {
3066
+ var _a;
3067
+ var fieldOptions = AttributeOptionHelper.FindByAttribute(key, (fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.fields) || fields);
3068
+ var columnName = fieldOptions.columnName;
3069
+ var columnFields = fieldOptions.fields;
3070
+ return Object.assign(Object.assign({}, variables), (_a = {}, _a[columnName] = BindFilterQueryHelper.BuildWhereSentence(key, options[key], columnFields || []), _a));
3071
+ }, {});
3072
+ if (!Array.isArray(options) && !lodash.isNil(fieldSentenceOptions.fields))
3073
+ return _a = {},
3074
+ _a[fieldSentenceOptions.fields[0]] = BindFilterQueryHelper.BuildOperatorSentence(options, fieldSentenceOptions),
3075
+ _a;
3076
+ if (lodash.isObject(options) && !FilterOptionHelper.CheckIfIsFilterOption(options))
3077
+ options = Object.values(options)[0];
3078
+ return Array.isArray(options)
3079
+ ? options.reduce(function (whereSentence, option) { return (Object.assign(Object.assign({}, whereSentence), BindFilterQueryHelper.BuildOperatorSentence(option, fieldSentenceOptions))); }, {})
3080
+ : BindFilterQueryHelper.BuildOperatorSentence(options, fieldSentenceOptions);
3081
+ };
3082
+ BindFilterQueryHelper.BuildOperatorSentence = function (options, fieldOption) {
3083
+ var _a;
3084
+ return (_a = {},
3085
+ _a[BindFilterQueryHelper.GetHasuraOperator(options, fieldOption)] = FilterOptionHelper.GetValueFromFilter(options, fieldOption),
3086
+ _a);
3087
+ };
3088
+ BindFilterQueryHelper.GetHasuraOperator = function (options, fieldOption) { return FilterOptionHelper.CheckIfIsFilterOption(options)
3089
+ ? fieldOption.type === HasuraGraphQLColumnType.Jsonb
3090
+ ? BindFilterQueryHelper.GetHasuraJsonbOperator(options)
3091
+ : HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find(function (graphQLOperator) { return graphQLOperator === Object.keys(exports.Where).find(function (operator) { return exports.Where[operator] === (options === null || options === void 0 ? void 0 : options.operator); }); })]
3092
+ : HasuraGraphQLWhere.EQUALS; };
3093
+ BindFilterQueryHelper.GetHasuraJsonbOperator = function (options) { return options.operator === exports.Where.IN
3094
+ ? '_contains'
3095
+ : options.operator === exports.Where.LIKE
3096
+ ? '_has_keys_any'
3097
+ : HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find(function (graphQLOperator) { return graphQLOperator === Object.keys(exports.Where).find(function (operator) { return exports.Where[operator] === (options === null || options === void 0 ? void 0 : options.operator); }); })]; };
3098
+
2989
3099
  var GraphQLFieldHelper = /** @class */ (function () {
2990
3100
  function GraphQLFieldHelper() {
2991
3101
  }
@@ -2994,7 +3104,7 @@
2994
3104
  GraphQLFieldHelper.CheckIsGraphQLParams = function (params) { return !lodash.isString(params) && Array.isArray(params) && params.length >= 0 && !!params[0].operation; };
2995
3105
  GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields = function (fields) {
2996
3106
  return fields === null || fields === void 0 ? void 0 : fields.map(function (field) {
2997
- var _b, _c;
3107
+ var _b, _c, _d;
2998
3108
  if (lodash.isString(field))
2999
3109
  return field.toString();
3000
3110
  var fieldName = Object.keys(field).shift();
@@ -3004,9 +3114,21 @@
3004
3114
  if (!AttributeOptionHelper.CheckIsColumnOption(fieldValue))
3005
3115
  return;
3006
3116
  if (fieldValue.fields)
3007
- return _c = {},
3008
- _c[fieldValue.columnName || fieldName] = GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
3009
- _c;
3117
+ return !fieldValue.filters
3118
+ ? (_c = {},
3119
+ _c[fieldValue.columnName || fieldName] = GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
3120
+ _c) : {
3121
+ operation: fieldValue.columnName || fieldName,
3122
+ fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
3123
+ variables: (_d = {},
3124
+ _d[fieldValue.columnName + "_where"] = {
3125
+ name: 'where',
3126
+ type: fieldValue.filters.filterType,
3127
+ value: BindFilterQueryHelper.MakeGraphQLWhere(fieldValue.filters.filters, fieldValue.fields),
3128
+ required: true,
3129
+ },
3130
+ _d),
3131
+ };
3010
3132
  return fieldValue.columnName;
3011
3133
  }).filter(function (field) { return !!field; });
3012
3134
  };
@@ -3065,29 +3187,6 @@
3065
3187
  }, {});
3066
3188
  };
3067
3189
 
3068
- var FilterOptionHelper = /** @class */ (function () {
3069
- function FilterOptionHelper() {
3070
- }
3071
- return FilterOptionHelper;
3072
- }());
3073
- FilterOptionHelper.CheckIfIsFilterOption = function (filter) { return !lodash.isNil(filter === null || filter === void 0 ? void 0 : filter.operator); };
3074
- FilterOptionHelper.GetValueFromFilter = function (filter, fieldOption) {
3075
- if (!FilterOptionHelper.CheckIfIsFilterOption(filter))
3076
- return filter;
3077
- if (filter.operator === exports.Where.ISNULL)
3078
- return true;
3079
- if (filter.operator === exports.Where.ISNOTNULL)
3080
- return false;
3081
- var converter = fieldOption.to
3082
- ? fieldOption.to
3083
- : function (value) { return filter.operator === exports.Where.LIKE && !Array.isArray(filter.value) && value.indexOf('%') < 0
3084
- ? "%" + value + "%"
3085
- : value; };
3086
- return Array.isArray(filter.value) && !fieldOption.fields && [exports.Where.IN, exports.Where.NOTIN].includes(filter.operator)
3087
- ? filter.value.map(function (fieldValue) { return converter(fieldValue); })
3088
- : converter(filter.value);
3089
- };
3090
-
3091
3190
  var withCreateHasuraGraphQL = function (MixinBase) {
3092
3191
  return /** @class */ (function (_super) {
3093
3192
  __extends(CreateHasuraGraphQLMixin, _super);
@@ -3441,92 +3540,11 @@
3441
3540
  }(MixinBase));
3442
3541
  };
3443
3542
 
3444
- var HasuraGraphQLWhere;
3445
- (function (HasuraGraphQLWhere) {
3446
- HasuraGraphQLWhere["EQUALS"] = "_eq";
3447
- HasuraGraphQLWhere["GT"] = "_gt";
3448
- HasuraGraphQLWhere["GTE"] = "_gte";
3449
- HasuraGraphQLWhere["IN"] = "_in";
3450
- HasuraGraphQLWhere["NOTIN"] = "_nin";
3451
- HasuraGraphQLWhere["LT"] = "_lt";
3452
- HasuraGraphQLWhere["LTE"] = "_lte";
3453
- HasuraGraphQLWhere["LIKE"] = "_like";
3454
- HasuraGraphQLWhere["NOTLIKE"] = "_nlike";
3455
- HasuraGraphQLWhere["ISNULL"] = "_is_null";
3456
- HasuraGraphQLWhere["ISNOTNULL"] = "_is_null";
3457
- })(HasuraGraphQLWhere || (HasuraGraphQLWhere = {}));
3458
-
3459
- var HasuraGraphQLColumnType;
3460
- (function (HasuraGraphQLColumnType) {
3461
- HasuraGraphQLColumnType["Int"] = "Int";
3462
- HasuraGraphQLColumnType["Float"] = "Float";
3463
- HasuraGraphQLColumnType["Boolean"] = "Boolean";
3464
- HasuraGraphQLColumnType["String"] = "String";
3465
- HasuraGraphQLColumnType["DateTime"] = "timestampz";
3466
- HasuraGraphQLColumnType["Json"] = "json";
3467
- HasuraGraphQLColumnType["Jsonb"] = "jsonb";
3468
- HasuraGraphQLColumnType["Enum"] = "enum";
3469
- HasuraGraphQLColumnType["Uuid"] = "uuid";
3470
- })(HasuraGraphQLColumnType || (HasuraGraphQLColumnType = {}));
3471
-
3472
3543
  var withFindHasuraGraphQL = function (MixinBase) {
3473
3544
  return /** @class */ (function (_super) {
3474
3545
  __extends(FindHasuraGraphQLMixin, _super);
3475
3546
  function FindHasuraGraphQLMixin() {
3476
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
3477
- _this.makeGraphQLWhere = function (filter, fields) { return Object.keys(filter).reduce(function (variables, fieldName) {
3478
- var _b;
3479
- var columnOption = AttributeOptionHelper.FindByAttribute(fieldName, fields);
3480
- if (!columnOption.bindFindFilter)
3481
- return Object.assign(Object.assign({}, variables), (_b = {}, _b[columnOption.columnName] = _this.buildWhereSentence(fieldName, filter[fieldName], fields), _b));
3482
- var builtFilter = columnOption.bindFindFilter(filter[fieldName]);
3483
- return Object.assign(Object.assign({}, variables), Object.keys(builtFilter).reduce(function (variablesList, columnName) {
3484
- var _b;
3485
- return (Object.assign(Object.assign({}, variablesList), (_b = {}, _b[columnName] = _this.buildWhereSentence(fieldName, builtFilter[columnName], fields), _b)));
3486
- }, {}));
3487
- }, {}); };
3488
- _this.buildWhereSentence = function (field, options, fields) {
3489
- var _b;
3490
- var fieldSentenceOptions = AttributeOptionHelper.FindByAttribute(field, fields);
3491
- if (!Array.isArray(options) &&
3492
- lodash.isObject(options) &&
3493
- lodash.isNil(options === null || options === void 0 ? void 0 : options.operator) &&
3494
- lodash.isNil(options === null || options === void 0 ? void 0 : options.value) &&
3495
- lodash.isNil(fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.to))
3496
- return Object.keys(options).reduce(function (variables, key) {
3497
- var _b;
3498
- var fieldOptions = AttributeOptionHelper.FindByAttribute(key, (fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.fields) || fields);
3499
- var columnName = fieldOptions.columnName;
3500
- var columnFields = fieldOptions.fields;
3501
- return Object.assign(Object.assign({}, variables), (_b = {}, _b[columnName] = _this.buildWhereSentence(key, options[key], columnFields || []), _b));
3502
- }, {});
3503
- if (!Array.isArray(options) && !lodash.isNil(fieldSentenceOptions.fields))
3504
- return _b = {},
3505
- _b[fieldSentenceOptions.fields[0]] = _this.buildOperatorSentence(options, fieldSentenceOptions),
3506
- _b;
3507
- if (lodash.isObject(options) && !FilterOptionHelper.CheckIfIsFilterOption(options))
3508
- options = Object.values(options)[0];
3509
- return Array.isArray(options)
3510
- ? options.reduce(function (whereSentence, option) { return (Object.assign(Object.assign({}, whereSentence), _this.buildOperatorSentence(option, fieldSentenceOptions))); }, {})
3511
- : _this.buildOperatorSentence(options, fieldSentenceOptions);
3512
- };
3513
- _this.buildOperatorSentence = function (options, fieldOption) {
3514
- var _b;
3515
- return (_b = {},
3516
- _b[_this.getHasuraOperator(options, fieldOption)] = FilterOptionHelper.GetValueFromFilter(options, fieldOption),
3517
- _b);
3518
- };
3519
- _this.getHasuraOperator = function (options, fieldOption) { return FilterOptionHelper.CheckIfIsFilterOption(options)
3520
- ? fieldOption.type === HasuraGraphQLColumnType.Jsonb
3521
- ? _this.getHasuraJsonbOperator(options)
3522
- : HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find(function (graphQLOperator) { return graphQLOperator === Object.keys(exports.Where).find(function (operator) { return exports.Where[operator] === (options === null || options === void 0 ? void 0 : options.operator); }); })]
3523
- : HasuraGraphQLWhere.EQUALS; };
3524
- _this.getHasuraJsonbOperator = function (options) { return options.operator === exports.Where.IN
3525
- ? '_contains'
3526
- : options.operator === exports.Where.LIKE
3527
- ? '_has_keys_any'
3528
- : HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find(function (graphQLOperator) { return graphQLOperator === Object.keys(exports.Where).find(function (operator) { return exports.Where[operator] === (options === null || options === void 0 ? void 0 : options.operator); }); })]; };
3529
- return _this;
3547
+ return _super !== null && _super.apply(this, arguments) || this;
3530
3548
  }
3531
3549
  FindHasuraGraphQLMixin.prototype.find = function (options) {
3532
3550
  return __awaiter(this, void 0, void 0, function () {
@@ -3540,7 +3558,7 @@
3540
3558
  ? {}
3541
3559
  : {
3542
3560
  where: {
3543
- value: this.makeGraphQLWhere(filters, this.fields),
3561
+ value: BindFilterQueryHelper.MakeGraphQLWhere(filters, this.fields),
3544
3562
  type: this.tableName + "_bool_exp",
3545
3563
  required: true,
3546
3564
  },
@@ -4078,6 +4096,10 @@
4078
4096
  {
4079
4097
  rate: {
4080
4098
  columnName: 'reviews_aggregate',
4099
+ filters: {
4100
+ filters: { status: true },
4101
+ filterType: 'product_review_bool_exp',
4102
+ },
4081
4103
  fields: [{ aggregate: [{ avg: ['rate'] }] }],
4082
4104
  from: function (value) { return value.aggregate.avg.rate; },
4083
4105
  },