@drax/crud-back 3.5.1 → 3.9.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.
@@ -260,6 +260,10 @@ class AbstractFastifyController extends CommonController {
260
260
  async postUpdatePartial(request, item) {
261
261
  return item;
262
262
  }
263
+ //Sobrescribir este metodo para manipular filtros en operaciones de lectura
264
+ async preRead(request, filters) {
265
+ return filters;
266
+ }
263
267
  //Sobrescribir este metodo para manipular items a devolver en operaciones de lectura
264
268
  async postRead(request, item) {
265
269
  return item;
@@ -414,8 +418,9 @@ class AbstractFastifyController extends CommonController {
414
418
  const orderBy = request.query.orderBy;
415
419
  const order = request.query.order;
416
420
  const search = (_a = request.query).search ?? (_a.search = undefined);
417
- const filters = this.parseFilters(request.query.filters);
421
+ let filters = this.parseFilters(request.query.filters);
418
422
  this.applyUserAndTenantFilters(filters, request.rbac);
423
+ filters = await this.preRead(request, filters);
419
424
  let items = await this.service.find({ search, filters, order, orderBy, limit });
420
425
  items = await this.postReadItems(request, items);
421
426
  return items;
@@ -429,7 +434,8 @@ class AbstractFastifyController extends CommonController {
429
434
  try {
430
435
  request.rbac.assertPermission(this.permission.View);
431
436
  const search = (_a = request.query).search ?? (_a.search = undefined);
432
- const filters = this.parseFilters(request.query.filters);
437
+ let filters = this.parseFilters(request.query.filters);
438
+ filters = await this.preRead(request, filters);
433
439
  this.applyUserAndTenantFilters(filters, request.rbac);
434
440
  let item = await this.service.findOne({ search, filters });
435
441
  item = await this.postReadItem(request, item);
@@ -451,6 +457,7 @@ class AbstractFastifyController extends CommonController {
451
457
  const value = request.params.value;
452
458
  let filters = [];
453
459
  this.applyUserAndTenantFilters(filters, request.rbac);
460
+ filters = await this.preRead(request, filters);
454
461
  let items = await this.service.findBy(field, value, limit, filters);
455
462
  items = await this.postReadItems(request, items);
456
463
  return items;
@@ -470,6 +477,7 @@ class AbstractFastifyController extends CommonController {
470
477
  const value = request.params.value;
471
478
  let filters = [];
472
479
  this.applyUserAndTenantFilters(filters, request.rbac);
480
+ filters = await this.preRead(request, filters);
473
481
  let item = await this.service.findOneBy(field, value, filters);
474
482
  item = await this.postReadItem(request, item);
475
483
  return item;
@@ -482,9 +490,10 @@ class AbstractFastifyController extends CommonController {
482
490
  try {
483
491
  request.rbac.assertPermission(this.permission.View);
484
492
  const search = request.query.search;
485
- const filters = [];
493
+ let filters = [];
486
494
  const limit = this.defaultLimit;
487
495
  this.applyUserAndTenantFilters(filters, request.rbac);
496
+ filters = await this.preRead(request, filters);
488
497
  let items = await this.service.search(search, limit, filters);
489
498
  items = await this.postReadItems(request, items);
490
499
  return items;
@@ -504,8 +513,9 @@ class AbstractFastifyController extends CommonController {
504
513
  const orderBy = request.query.orderBy;
505
514
  const order = request.query.order;
506
515
  const search = request.query.search;
507
- const filters = this.parseFilters(request.query.filters);
516
+ let filters = this.parseFilters(request.query.filters);
508
517
  this.applyUserAndTenantFilters(filters, request.rbac);
518
+ filters = await this.preRead(request, filters);
509
519
  let paginateResult = await this.service.paginate({ page, limit, orderBy, order, search, filters });
510
520
  paginateResult = await this.postReadPaginate(request, paginateResult);
511
521
  return paginateResult;
@@ -526,8 +536,9 @@ class AbstractFastifyController extends CommonController {
526
536
  const orderBy = request.query.orderBy;
527
537
  const order = request.query.order;
528
538
  const search = request.query.search;
529
- const filters = this.parseFilters(request.query.filters);
539
+ let filters = this.parseFilters(request.query.filters);
530
540
  this.applyUserAndTenantFilters(filters, request.rbac);
541
+ filters = await this.preRead(request, filters);
531
542
  const year = (new Date().getFullYear()).toString();
532
543
  const month = (new Date().getMonth() + 1).toString().padStart(2, '0');
533
544
  const exportPath = 'exports';
@@ -568,8 +579,9 @@ class AbstractFastifyController extends CommonController {
568
579
  if (fields.length === 0) {
569
580
  throw new BadRequestError('At least one field is required for grouping');
570
581
  }
571
- const filters = this.parseFilters(request.query.filters);
582
+ let filters = this.parseFilters(request.query.filters);
572
583
  this.applyUserAndTenantFilters(filters, request.rbac);
584
+ filters = await this.preRead(request, filters);
573
585
  const result = await this.service.groupBy({ fields, filters, dateFormat });
574
586
  return result;
575
587
  }
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "3.5.1",
6
+ "version": "3.9.0",
7
7
  "description": "Crud utils across modules",
8
8
  "main": "dist/index.js",
9
9
  "types": "types/index.d.ts",
@@ -25,7 +25,7 @@
25
25
  "@drax/common-back": "^3.0.0",
26
26
  "@drax/common-share": "^3.0.0",
27
27
  "@drax/identity-share": "^3.0.0",
28
- "@drax/media-back": "^3.5.1",
28
+ "@drax/media-back": "^3.9.0",
29
29
  "@graphql-tools/load-files": "^7.0.0",
30
30
  "@graphql-tools/merge": "^9.0.4",
31
31
  "mongoose": "^8.23.0",
@@ -47,5 +47,5 @@
47
47
  "typescript": "^5.9.3",
48
48
  "vitest": "^3.2.4"
49
49
  },
50
- "gitHead": "d8bd69ce5d0ac0381a8005c866992db8f3c2e5e1"
50
+ "gitHead": "b1af2464a5d229ac728d216fe18e680322cfe158"
51
51
  }
@@ -367,6 +367,11 @@ class AbstractFastifyController<T, C, U> extends CommonController {
367
367
  return item
368
368
  }
369
369
 
370
+ //Sobrescribir este metodo para manipular filtros en operaciones de lectura
371
+ async preRead(request: CustomRequest, filters: IDraxFieldFilter[]):Promise<IDraxFieldFilter[]> {
372
+ return filters
373
+ }
374
+
370
375
  //Sobrescribir este metodo para manipular items a devolver en operaciones de lectura
371
376
  async postRead(request: CustomRequest, item: T) {
372
377
  return item
@@ -562,11 +567,11 @@ class AbstractFastifyController<T, C, U> extends CommonController {
562
567
  const orderBy = request.query.orderBy
563
568
  const order = request.query.order
564
569
  const search = request.query.search ??= undefined
565
- const filters = this.parseFilters(request.query.filters)
566
-
567
-
570
+ let filters = this.parseFilters(request.query.filters)
568
571
  this.applyUserAndTenantFilters(filters, request.rbac);
569
572
 
573
+ filters = await this.preRead(request, filters)
574
+
570
575
  let items = await this.service.find({search, filters, order, orderBy, limit})
571
576
 
572
577
  items = await this.postReadItems(request, items)
@@ -582,7 +587,8 @@ class AbstractFastifyController<T, C, U> extends CommonController {
582
587
  request.rbac.assertPermission(this.permission.View)
583
588
 
584
589
  const search = request.query.search ??= undefined
585
- const filters = this.parseFilters(request.query.filters)
590
+ let filters = this.parseFilters(request.query.filters)
591
+ filters = await this.preRead(request, filters)
586
592
 
587
593
  this.applyUserAndTenantFilters(filters, request.rbac);
588
594
 
@@ -610,6 +616,7 @@ class AbstractFastifyController<T, C, U> extends CommonController {
610
616
 
611
617
  let filters = []
612
618
  this.applyUserAndTenantFilters(filters, request.rbac);
619
+ filters = await this.preRead(request, filters)
613
620
 
614
621
  let items = await this.service.findBy(field, value, limit, filters)
615
622
 
@@ -635,6 +642,7 @@ class AbstractFastifyController<T, C, U> extends CommonController {
635
642
 
636
643
  let filters = []
637
644
  this.applyUserAndTenantFilters(filters, request.rbac);
645
+ filters = await this.preRead(request, filters)
638
646
 
639
647
  let item = await this.service.findOneBy(field, value, filters)
640
648
 
@@ -652,10 +660,11 @@ class AbstractFastifyController<T, C, U> extends CommonController {
652
660
  try {
653
661
  request.rbac.assertPermission(this.permission.View)
654
662
  const search = request.query.search
655
- const filters = []
663
+ let filters = []
656
664
  const limit = this.defaultLimit
657
665
 
658
666
  this.applyUserAndTenantFilters(filters, request.rbac);
667
+ filters = await this.preRead(request, filters)
659
668
 
660
669
  let items = await this.service.search(search, limit, filters)
661
670
  items = await this.postReadItems(request, items)
@@ -679,9 +688,9 @@ class AbstractFastifyController<T, C, U> extends CommonController {
679
688
  const orderBy = request.query.orderBy
680
689
  const order = request.query.order
681
690
  const search = request.query.search
682
- const filters: IDraxFieldFilter[] = this.parseFilters(request.query.filters)
691
+ let filters: IDraxFieldFilter[] = this.parseFilters(request.query.filters)
683
692
  this.applyUserAndTenantFilters(filters, request.rbac);
684
-
693
+ filters = await this.preRead(request, filters)
685
694
 
686
695
  let paginateResult = await this.service.paginate({page, limit, orderBy, order, search, filters})
687
696
  paginateResult = await this.postReadPaginate(request, paginateResult)
@@ -705,9 +714,12 @@ class AbstractFastifyController<T, C, U> extends CommonController {
705
714
  const orderBy = request.query.orderBy
706
715
  const order = request.query.order
707
716
  const search = request.query.search
708
- const filters = this.parseFilters(request.query.filters)
717
+ let filters = this.parseFilters(request.query.filters)
709
718
 
710
719
  this.applyUserAndTenantFilters(filters, request.rbac);
720
+ filters = await this.preRead(request, filters)
721
+
722
+
711
723
 
712
724
  const year = (new Date().getFullYear()).toString()
713
725
  const month = (new Date().getMonth() + 1).toString().padStart(2, '0')
@@ -760,9 +772,9 @@ class AbstractFastifyController<T, C, U> extends CommonController {
760
772
  throw new BadRequestError('At least one field is required for grouping')
761
773
  }
762
774
 
763
- const filters: IDraxFieldFilter[] = this.parseFilters(request.query.filters)
775
+ let filters: IDraxFieldFilter[] = this.parseFilters(request.query.filters)
764
776
  this.applyUserAndTenantFilters(filters, request.rbac)
765
-
777
+ filters = await this.preRead(request, filters)
766
778
 
767
779
  const result = await this.service.groupBy({fields, filters, dateFormat})
768
780