@pxp-nd/flow 1.0.84 → 1.0.86

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.
@@ -645,10 +645,14 @@ let Flow = class Flow extends core_1.Controller {
645
645
  }
646
646
  }
647
647
  async basicFlowList(params) {
648
+ var _a;
648
649
  const isActive = params._isActive;
649
650
  const type = params._type;
650
651
  const vendorId = params._vendorId;
651
652
  const allowedColumns = ['name', 'description'];
653
+ const filter = (params === null || params === void 0 ? void 0 : params.filter) ? JSON.parse(params === null || params === void 0 ? void 0 : params.filter) : null;
654
+ const filters = (filter === null || filter === void 0 ? void 0 : filter.items) || [];
655
+ const logicOperator = ((_a = filter === null || filter === void 0 ? void 0 : filter.logicOperator) === null || _a === void 0 ? void 0 : _a.toUpperCase()) || 'AND';
652
656
  const queryBuilder = await (0, typeorm_1.getManager)()
653
657
  .createQueryBuilder()
654
658
  .select([
@@ -687,6 +691,52 @@ let Flow = class Flow extends core_1.Controller {
687
691
  queryBuilder.andWhere(`f.${params.genericFilterFields} LIKE :genericFilterValue`, { genericFilterValue: `%${params.genericFilterValue}%` });
688
692
  }
689
693
  }
694
+ // Dynamic filters
695
+ filters.forEach((filter, index) => {
696
+ const { field, operator, value } = filter;
697
+ //if (allowedColumns.includes(field)) {
698
+ const queryField = `f.${field}`;
699
+ const parameterName = `filterValue${index}`;
700
+ let condition;
701
+ switch (operator) {
702
+ case 'contains':
703
+ condition = `${queryField} LIKE :${parameterName}`;
704
+ queryBuilder.setParameter(parameterName, `%${value}%`);
705
+ break;
706
+ case 'equals':
707
+ condition = `${queryField} = :${parameterName}`;
708
+ queryBuilder.setParameter(parameterName, value);
709
+ break;
710
+ case 'startsWith':
711
+ condition = `${queryField} LIKE :${parameterName}`;
712
+ queryBuilder.setParameter(parameterName, `${value}%`);
713
+ break;
714
+ case 'endsWith':
715
+ condition = `${queryField} LIKE :${parameterName}`;
716
+ queryBuilder.setParameter(parameterName, `%${value}`);
717
+ break;
718
+ case 'isEmpty':
719
+ condition = `${queryField} IS NULL OR ${queryField} = ''`;
720
+ break;
721
+ case 'isNotEmpty':
722
+ condition = `${queryField} IS NOT NULL AND ${queryField} <> ''`;
723
+ break;
724
+ case 'isAnyOf':
725
+ condition = `${queryField} IN (:...${parameterName})`;
726
+ queryBuilder.setParameter(parameterName, value.split(',')); // Asume que `value` es una cadena separada por comas.
727
+ break;
728
+ // Puedes agregar más casos aquí si hay otros operadores.
729
+ default:
730
+ throw new Error(`Operator ${operator} is not supported.`);
731
+ }
732
+ if (index === 0) {
733
+ queryBuilder.andWhere(condition);
734
+ }
735
+ else {
736
+ queryBuilder[logicOperator === 'OR' ? 'orWhere' : 'andWhere'](condition);
737
+ }
738
+ //}
739
+ });
690
740
  queryBuilder.groupBy([
691
741
  'f.flow_id',
692
742
  'f.vendor_id',
@@ -15,4 +15,5 @@ export default class Flow extends PxpEntity {
15
15
  status: string;
16
16
  modifiedAt: Date;
17
17
  modifiedBy: string;
18
+ templateType: string;
18
19
  }
@@ -82,6 +82,10 @@ __decorate([
82
82
  (0, typeorm_1.Column)({ name: 'modified_by', type: 'varchar', length: 500 }),
83
83
  __metadata("design:type", String)
84
84
  ], Flow.prototype, "modifiedBy", void 0);
85
+ __decorate([
86
+ (0, typeorm_1.Column)({ name: 'template_type', type: 'varchar', nullable: false, length: 15 }),
87
+ __metadata("design:type", String)
88
+ ], Flow.prototype, "templateType", void 0);
85
89
  Flow = __decorate([
86
90
  (0, typeorm_1.Entity)({ name: 'twf_flow' })
87
91
  ], Flow);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pxp-nd/flow",
3
- "version": "1.0.84",
3
+ "version": "1.0.86",
4
4
  "description": "Workflow module for pxp-nd framework",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",