@zola_do/crud 0.2.8 → 0.2.12
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.
- package/README.md +158 -68
- package/dist/controller/entity-crud.controller.js +8 -3
- package/dist/controller/entity-crud.controller.js.map +1 -1
- package/dist/controller/extra-crud.controller.js +5 -0
- package/dist/controller/extra-crud.controller.js.map +1 -1
- package/dist/controller/relation-crud.controller.js +3 -0
- package/dist/controller/relation-crud.controller.js.map +1 -1
- package/dist/crud-operation/repository/entity-crud.repository.d.ts +4 -4
- package/dist/crud-operation/repository/entity-crud.repository.js +29 -18
- package/dist/crud-operation/repository/entity-crud.repository.js.map +1 -1
- package/dist/crud-operation/repository/extra-crud.repository.d.ts +4 -4
- package/dist/crud-operation/repository/extra-crud.repository.js +28 -14
- package/dist/crud-operation/repository/extra-crud.repository.js.map +1 -1
- package/dist/crud-operation/repository/relation-crud.repository.js +4 -0
- package/dist/crud-operation/repository/relation-crud.repository.js.map +1 -1
- package/dist/crud-operation/service/relation-crud.service.js.map +1 -1
- package/dist/crud.module.d.ts +3 -0
- package/dist/crud.module.js +25 -0
- package/dist/crud.module.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/service/entity-crud.service.d.ts +5 -4
- package/dist/service/entity-crud.service.js +72 -60
- package/dist/service/entity-crud.service.js.map +1 -1
- package/dist/service/extra-crud.service.d.ts +4 -3
- package/dist/service/extra-crud.service.js +45 -36
- package/dist/service/extra-crud.service.js.map +1 -1
- package/dist/service/relation-crud.service.d.ts +4 -3
- package/dist/service/relation-crud.service.js +23 -10
- package/dist/service/relation-crud.service.js.map +1 -1
- package/dist/shared/guards/crud-operation-disabled.guard.js.map +1 -1
- package/dist/shared/index.d.ts +2 -0
- package/dist/shared/index.js +2 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/interceptors/transaction-interceptor.d.ts +7 -2
- package/dist/shared/interceptors/transaction-interceptor.js +35 -6
- package/dist/shared/interceptors/transaction-interceptor.js.map +1 -1
- package/dist/shared/request-context/apply-create-context.helper.js +5 -12
- package/dist/shared/request-context/apply-create-context.helper.js.map +1 -1
- package/dist/shared/tokens/crud-transaction-context.token.d.ts +1 -0
- package/dist/shared/tokens/crud-transaction-context.token.js +5 -0
- package/dist/shared/tokens/crud-transaction-context.token.js.map +1 -0
- package/dist/shared/types/crud-option.type.d.ts +26 -39
- package/dist/shared/types/crud-transaction-context-hook.interface.d.ts +8 -0
- package/dist/shared/types/crud-transaction-context-hook.interface.js +3 -0
- package/dist/shared/types/crud-transaction-context-hook.interface.js.map +1 -0
- package/dist/shared/types/index.d.ts +1 -0
- package/dist/shared/types/index.js +1 -0
- package/dist/shared/types/index.js.map +1 -1
- package/dist/shared/utils/crud-hooks.helper.d.ts +7 -4
- package/dist/shared/utils/crud-hooks.helper.js +33 -11
- package/dist/shared/utils/crud-hooks.helper.js.map +1 -1
- package/dist/shared/utils/crud-transaction.decorators.d.ts +1 -0
- package/dist/shared/utils/crud-transaction.decorators.js +8 -0
- package/dist/shared/utils/crud-transaction.decorators.js.map +1 -0
- package/dist/shared/utils/cursor-query.helper.js.map +1 -1
- package/dist/shared/utils/index.d.ts +2 -0
- package/dist/shared/utils/index.js +2 -0
- package/dist/shared/utils/index.js.map +1 -1
- package/dist/shared/utils/transactional-repository.helper.d.ts +4 -0
- package/dist/shared/utils/transactional-repository.helper.js +23 -0
- package/dist/shared/utils/transactional-repository.helper.js.map +1 -0
- package/package.json +115 -112
package/README.md
CHANGED
|
@@ -47,26 +47,26 @@ npm install @nestjs/microservices
|
|
|
47
47
|
### 1. Create an Entity
|
|
48
48
|
|
|
49
49
|
```typescript
|
|
50
|
-
import { CommonEntity } from
|
|
50
|
+
import { CommonEntity } from '@zola_do/nestjs-shared';
|
|
51
51
|
import {
|
|
52
52
|
Entity,
|
|
53
53
|
Column,
|
|
54
54
|
PrimaryGeneratedColumn,
|
|
55
55
|
DeleteDateColumn,
|
|
56
|
-
} from
|
|
56
|
+
} from 'typeorm';
|
|
57
57
|
|
|
58
|
-
@Entity(
|
|
58
|
+
@Entity('products')
|
|
59
59
|
export class Product extends CommonEntity {
|
|
60
|
-
@PrimaryGeneratedColumn(
|
|
60
|
+
@PrimaryGeneratedColumn('uuid')
|
|
61
61
|
id: string;
|
|
62
62
|
|
|
63
63
|
@Column()
|
|
64
64
|
name: string;
|
|
65
65
|
|
|
66
|
-
@Column({ type:
|
|
66
|
+
@Column({ type: 'decimal', precision: 10, scale: 2 })
|
|
67
67
|
price: number;
|
|
68
68
|
|
|
69
|
-
@Column({ default:
|
|
69
|
+
@Column({ default: 'active' })
|
|
70
70
|
status: string;
|
|
71
71
|
|
|
72
72
|
@DeleteDateColumn()
|
|
@@ -77,17 +77,17 @@ export class Product extends CommonEntity {
|
|
|
77
77
|
### 2. Create Controller
|
|
78
78
|
|
|
79
79
|
```typescript
|
|
80
|
-
import { Controller } from
|
|
81
|
-
import { EntityCrudController } from
|
|
82
|
-
import { EntityCrudService } from
|
|
83
|
-
import { Product } from
|
|
80
|
+
import { Controller } from '@nestjs/common';
|
|
81
|
+
import { EntityCrudController } from '@zola_do/crud';
|
|
82
|
+
import { EntityCrudService } from '@zola_do/crud/service';
|
|
83
|
+
import { Product } from './product.entity';
|
|
84
84
|
|
|
85
|
-
@Controller(
|
|
85
|
+
@Controller('products')
|
|
86
86
|
export class ProductsController extends EntityCrudController<Product>({
|
|
87
|
-
createPermission:
|
|
88
|
-
viewPermission:
|
|
89
|
-
updatePermission:
|
|
90
|
-
deletePermission:
|
|
87
|
+
createPermission: 'product:create',
|
|
88
|
+
viewPermission: 'product:view',
|
|
89
|
+
updatePermission: 'product:update',
|
|
90
|
+
deletePermission: 'product:delete',
|
|
91
91
|
}) {
|
|
92
92
|
constructor(service: EntityCrudService<Product>) {
|
|
93
93
|
super(service);
|
|
@@ -98,11 +98,11 @@ export class ProductsController extends EntityCrudController<Product>({
|
|
|
98
98
|
### 3. Create Module
|
|
99
99
|
|
|
100
100
|
```typescript
|
|
101
|
-
import { Module } from
|
|
102
|
-
import { TypeOrmModule } from
|
|
103
|
-
import { EntityCrudService } from
|
|
104
|
-
import { Product } from
|
|
105
|
-
import { ProductsController } from
|
|
101
|
+
import { Module } from '@nestjs/common';
|
|
102
|
+
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
103
|
+
import { EntityCrudService } from '@zola_do/crud/service';
|
|
104
|
+
import { Product } from './product.entity';
|
|
105
|
+
import { ProductsController } from './products.controller';
|
|
106
106
|
|
|
107
107
|
@Module({
|
|
108
108
|
imports: [TypeOrmModule.forFeature([Product])],
|
|
@@ -145,25 +145,19 @@ const options: EntityCrudOptions = {
|
|
|
145
145
|
restorePermission: 'product:restore',
|
|
146
146
|
viewArchivedPermission: 'product:view_archived',
|
|
147
147
|
|
|
148
|
-
//
|
|
149
|
-
|
|
150
|
-
organizationId
|
|
151
|
-
createdBy
|
|
152
|
-
}),
|
|
153
|
-
|
|
154
|
-
// Write field restrictions
|
|
155
|
-
allowedWriteFields: ['name', 'price'],
|
|
156
|
-
blockedWriteFields: ['id', 'createdAt'],
|
|
157
|
-
|
|
158
|
-
// Operation hooks
|
|
159
|
-
beforeCreate: async ({ service, req, itemData }) => {
|
|
160
|
-
itemData.createdBy = req.user.id;
|
|
161
|
-
itemData.status ??= 'draft';
|
|
148
|
+
// Operation hooks (create-time context mapping)
|
|
149
|
+
beforeCreate: async ({ req, itemData }) => {
|
|
150
|
+
itemData.organizationId = req?.user?.organizationId;
|
|
151
|
+
itemData.createdBy = req?.user?.id;
|
|
162
152
|
},
|
|
163
153
|
afterCreate: async ({ service, req, result }) => {
|
|
164
154
|
await service.sendNotification(result.id);
|
|
165
155
|
},
|
|
166
156
|
|
|
157
|
+
// Write field restrictions
|
|
158
|
+
allowedWriteFields: ['name', 'price'],
|
|
159
|
+
blockedWriteFields: ['id', 'createdAt'],
|
|
160
|
+
|
|
167
161
|
beforeFindAll: async ({ service, req, where }) => {
|
|
168
162
|
where.organizationId = req.user.organizationId;
|
|
169
163
|
},
|
|
@@ -321,7 +315,7 @@ const options: EntityCrudOptions = {
|
|
|
321
315
|
|
|
322
316
|
// Per-operation authorization
|
|
323
317
|
canCreate: async ({ service, req }) => {
|
|
324
|
-
return req.user.permissions.includes(
|
|
318
|
+
return req.user.permissions.includes('product:create');
|
|
325
319
|
},
|
|
326
320
|
|
|
327
321
|
canFindAll: async ({ service, req }) => {
|
|
@@ -381,29 +375,125 @@ operations: {
|
|
|
381
375
|
| `restore` | `PATCH /restore/:id` | Restore entity |
|
|
382
376
|
| `findAllArchived` | `GET /archived` | List deleted |
|
|
383
377
|
|
|
378
|
+
## Request Transactions
|
|
379
|
+
|
|
380
|
+
Enable atomic mutating requests (create/update/delete hooks + DB writes commit or roll back together):
|
|
381
|
+
|
|
382
|
+
```typescript
|
|
383
|
+
import { InjectDataSource } from '@nestjs/typeorm';
|
|
384
|
+
import {
|
|
385
|
+
bindCrudTransactionDataSource,
|
|
386
|
+
CrudTransactionModule,
|
|
387
|
+
} from '@zola_do/crud';
|
|
388
|
+
import { DataSource } from 'typeorm';
|
|
389
|
+
|
|
390
|
+
@Module({
|
|
391
|
+
imports: [TypeOrmModule.forRoot(dataSourceOptions), CrudTransactionModule],
|
|
392
|
+
})
|
|
393
|
+
export class AppModule {
|
|
394
|
+
constructor(@InjectDataSource() dataSource: DataSource) {
|
|
395
|
+
bindCrudTransactionDataSource(dataSource);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
```typescript
|
|
401
|
+
EntityCrudController<Product>({
|
|
402
|
+
useTransaction: true,
|
|
403
|
+
beforeCreate: async ({ itemData }) => {
|
|
404
|
+
itemData.status = 'draft';
|
|
405
|
+
},
|
|
406
|
+
afterCreate: async ({ repository, result }) => {
|
|
407
|
+
// DB work here uses the same transaction; throws roll back the insert too.
|
|
408
|
+
await repository.insert({ ...relatedRow, productId: result.id });
|
|
409
|
+
},
|
|
410
|
+
});
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
How it works:
|
|
414
|
+
|
|
415
|
+
1. `useTransaction: true` attaches `TransactionInterceptor` to mutating routes (`POST`, `PUT`, `DELETE`, restore, bulk).
|
|
416
|
+
2. The interceptor starts a TypeORM transaction and stores the entity manager on `req`.
|
|
417
|
+
3. CRUD services resolve repositories from that manager, so `beforeCreate`, inserts/updates/deletes, and `afterCreate` DB calls share one transaction.
|
|
418
|
+
4. If any step throws, the interceptor rolls back and the client receives the error.
|
|
419
|
+
|
|
420
|
+
Notes:
|
|
421
|
+
|
|
422
|
+
- Non-DB side effects in hooks (HTTP, email, queues) are **not** rolled back automatically.
|
|
423
|
+
- Use `context.repository` (or pass `context.req` into other service methods) so related DB work stays in the same transaction.
|
|
424
|
+
- Read endpoints (`GET`) are unchanged and do not start a transaction unless you add the interceptor manually.
|
|
425
|
+
|
|
426
|
+
### Postgres RLS / session context (consuming app)
|
|
427
|
+
|
|
428
|
+
Implement {@link CrudTransactionContextHook} in your app and **bind it in `AppModule`**
|
|
429
|
+
(the interceptor singleton is created before optional token injection resolves):
|
|
430
|
+
|
|
431
|
+
```typescript
|
|
432
|
+
import {
|
|
433
|
+
bindCrudTransactionContextHook,
|
|
434
|
+
bindCrudTransactionDataSource,
|
|
435
|
+
CrudTransactionContextHook,
|
|
436
|
+
CrudTransactionModule,
|
|
437
|
+
} from '@zola_do/crud';
|
|
438
|
+
import { InjectDataSource } from '@nestjs/typeorm';
|
|
439
|
+
import { DataSource } from 'typeorm';
|
|
440
|
+
import { Injectable } from '@nestjs/common';
|
|
441
|
+
|
|
442
|
+
@Injectable()
|
|
443
|
+
class PostgresRlsTransactionContextHook implements CrudTransactionContextHook {
|
|
444
|
+
async apply({ req, queryRunner }) {
|
|
445
|
+
const user = req?.user;
|
|
446
|
+
await queryRunner.query(
|
|
447
|
+
`SELECT set_config('app.user_id', $1, true), set_config('app.tenant_id', $2, true)`,
|
|
448
|
+
[user?.id ?? '', user?.tenantId ?? ''],
|
|
449
|
+
);
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
@Module({
|
|
454
|
+
imports: [TypeOrmModule.forRoot(dataSourceOptions), CrudTransactionModule],
|
|
455
|
+
providers: [PostgresRlsTransactionContextHook],
|
|
456
|
+
})
|
|
457
|
+
export class AppModule {
|
|
458
|
+
constructor(
|
|
459
|
+
@InjectDataSource() dataSource: DataSource,
|
|
460
|
+
rlsHook: PostgresRlsTransactionContextHook,
|
|
461
|
+
) {
|
|
462
|
+
bindCrudTransactionDataSource(dataSource);
|
|
463
|
+
bindCrudTransactionContextHook(rlsHook);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
The hook runs after `START TRANSACTION` and before CRUD handlers. Use transaction-local
|
|
469
|
+
`set_config(..., true)` so pooled connections do not leak context. For read routes (`GET`),
|
|
470
|
+
add a similar global interceptor if RLS must apply there too.
|
|
471
|
+
|
|
384
472
|
## Request Context Mapping
|
|
385
473
|
|
|
386
474
|
The CRUD package supports automatic context injection for create operations:
|
|
387
475
|
|
|
388
|
-
### Method 1: Per-CRUD
|
|
476
|
+
### Method 1: Per-CRUD `beforeCreate` Hook
|
|
389
477
|
|
|
390
478
|
```typescript
|
|
391
479
|
EntityCrudController<Product>({
|
|
392
|
-
|
|
393
|
-
organizationId
|
|
394
|
-
organizationName
|
|
395
|
-
createdBy
|
|
396
|
-
}
|
|
480
|
+
beforeCreate: async ({ req, itemData }) => {
|
|
481
|
+
itemData.organizationId = req?.user?.organizationId;
|
|
482
|
+
itemData.organizationName = req?.user?.organizationName;
|
|
483
|
+
itemData.createdBy = req?.user?.id;
|
|
484
|
+
},
|
|
397
485
|
});
|
|
398
486
|
```
|
|
399
487
|
|
|
488
|
+
When `beforeCreate` is configured, the legacy `req.user.organization` fallback does not overwrite client-supplied organization fields.
|
|
489
|
+
|
|
400
490
|
### Method 2: Module-Level Resolver
|
|
401
491
|
|
|
402
492
|
```typescript
|
|
403
493
|
import {
|
|
404
494
|
CRUD_REQUEST_CONTEXT_RESOLVER,
|
|
405
495
|
CrudRequestContextResolver,
|
|
406
|
-
} from
|
|
496
|
+
} from '@zola_do/crud/request-context';
|
|
407
497
|
|
|
408
498
|
const resolver: CrudRequestContextResolver = {
|
|
409
499
|
resolveCreateContext: ({ req }) => ({
|
|
@@ -438,19 +528,19 @@ If no resolver is configured, the system falls back to `req.user.organization`:
|
|
|
438
528
|
For managing many-to-many relationships:
|
|
439
529
|
|
|
440
530
|
```typescript
|
|
441
|
-
import { RelationCrudController, RelationCrudService } from
|
|
531
|
+
import { RelationCrudController, RelationCrudService } from '@zola_do/crud';
|
|
442
532
|
|
|
443
|
-
@Controller(
|
|
533
|
+
@Controller('products/:productId/categories')
|
|
444
534
|
export class ProductCategoriesController extends RelationCrudController(
|
|
445
535
|
{
|
|
446
|
-
firstEntityIdName:
|
|
447
|
-
firstInclude:
|
|
448
|
-
secondEntityIdName:
|
|
449
|
-
secondInclude:
|
|
450
|
-
viewPermission:
|
|
536
|
+
firstEntityIdName: 'productId',
|
|
537
|
+
firstInclude: 'product',
|
|
538
|
+
secondEntityIdName: 'categoryId',
|
|
539
|
+
secondInclude: 'category',
|
|
540
|
+
viewPermission: 'product:view',
|
|
451
541
|
operations: {
|
|
452
|
-
bulkSaveFirst:
|
|
453
|
-
findAllSecond:
|
|
542
|
+
bulkSaveFirst: 'hide',
|
|
543
|
+
findAllSecond: 'hide',
|
|
454
544
|
},
|
|
455
545
|
},
|
|
456
546
|
ProductCategory,
|
|
@@ -475,14 +565,14 @@ export class ProductCategoriesController extends RelationCrudController(
|
|
|
475
565
|
Extended CRUD with parent entity scoping:
|
|
476
566
|
|
|
477
567
|
```typescript
|
|
478
|
-
import { ExtraCrudController, ExtraCrudService } from
|
|
568
|
+
import { ExtraCrudController, ExtraCrudService } from '@zola_do/crud';
|
|
479
569
|
|
|
480
|
-
@Controller(
|
|
570
|
+
@Controller('events/:eventId/attendees')
|
|
481
571
|
export class EventAttendeesController extends ExtraCrudController(
|
|
482
572
|
{
|
|
483
|
-
entityIdName:
|
|
484
|
-
createPermission:
|
|
485
|
-
viewPermission:
|
|
573
|
+
entityIdName: 'eventId',
|
|
574
|
+
createPermission: 'attendee:create',
|
|
575
|
+
viewPermission: 'attendee:view',
|
|
486
576
|
},
|
|
487
577
|
Attendee,
|
|
488
578
|
) {
|
|
@@ -497,7 +587,7 @@ export class EventAttendeesController extends ExtraCrudController(
|
|
|
497
587
|
The package includes a safe global exception filter:
|
|
498
588
|
|
|
499
589
|
```typescript
|
|
500
|
-
import { GlobalExceptionFilter } from
|
|
590
|
+
import { GlobalExceptionFilter } from '@zola_do/crud';
|
|
501
591
|
|
|
502
592
|
// In your main.ts
|
|
503
593
|
app.useGlobalFilters(new GlobalExceptionFilter());
|
|
@@ -535,7 +625,7 @@ app.useGlobalFilters(new GlobalExceptionFilter());
|
|
|
535
625
|
```typescript
|
|
536
626
|
// Force hard delete
|
|
537
627
|
EntityCrudController<Product>({
|
|
538
|
-
deleteMode:
|
|
628
|
+
deleteMode: 'hard',
|
|
539
629
|
beforeDelete: async ({ service, params }) => {
|
|
540
630
|
await service.cleanupRelatedData(params.id);
|
|
541
631
|
},
|
|
@@ -642,14 +732,14 @@ Repository with built-in query construction.
|
|
|
642
732
|
Subpath imports are recommended for tree-shaking:
|
|
643
733
|
|
|
644
734
|
```typescript
|
|
645
|
-
import { EntityCrudController } from
|
|
646
|
-
import { EntityCrudService } from
|
|
647
|
-
import { EntityCrudRepository } from
|
|
735
|
+
import { EntityCrudController } from '@zola_do/crud/controller';
|
|
736
|
+
import { EntityCrudService } from '@zola_do/crud/service';
|
|
737
|
+
import { EntityCrudRepository } from '@zola_do/crud/repository';
|
|
648
738
|
import {
|
|
649
739
|
CRUD_REQUEST_CONTEXT_RESOLVER,
|
|
650
740
|
CrudRequestContextResolver,
|
|
651
|
-
} from
|
|
652
|
-
import { EntityCrudOptions, GlobalExceptionFilter } from
|
|
741
|
+
} from '@zola_do/crud/request-context';
|
|
742
|
+
import { EntityCrudOptions, GlobalExceptionFilter } from '@zola_do/crud';
|
|
653
743
|
```
|
|
654
744
|
|
|
655
745
|
Root import is supported for backward compatibility:
|
|
@@ -659,7 +749,7 @@ import {
|
|
|
659
749
|
EntityCrudController,
|
|
660
750
|
EntityCrudService,
|
|
661
751
|
EntityCrudOptions,
|
|
662
|
-
} from
|
|
752
|
+
} from '@zola_do/crud';
|
|
663
753
|
```
|
|
664
754
|
|
|
665
755
|
## Optional Features
|
|
@@ -669,7 +759,7 @@ import {
|
|
|
669
759
|
For NestJS microservices:
|
|
670
760
|
|
|
671
761
|
```typescript
|
|
672
|
-
import { ExceptionFilter } from
|
|
762
|
+
import { ExceptionFilter } from '@zola_do/crud/optional/rpc';
|
|
673
763
|
|
|
674
764
|
@Module({
|
|
675
765
|
providers: [
|
|
@@ -701,7 +791,7 @@ export class ProductService extends EntityCrudService<Product> {
|
|
|
701
791
|
}
|
|
702
792
|
|
|
703
793
|
async findActive(): Promise<Product[]> {
|
|
704
|
-
return this.repository.find({ where: { status:
|
|
794
|
+
return this.repository.find({ where: { status: 'active' } });
|
|
705
795
|
}
|
|
706
796
|
}
|
|
707
797
|
```
|
|
@@ -711,7 +801,7 @@ export class ProductService extends EntityCrudService<Product> {
|
|
|
711
801
|
Use `class-validator` decorators:
|
|
712
802
|
|
|
713
803
|
```typescript
|
|
714
|
-
import { IsString, IsNumber, IsEnum, IsOptional } from
|
|
804
|
+
import { IsString, IsNumber, IsEnum, IsOptional } from 'class-validator';
|
|
715
805
|
|
|
716
806
|
export class CreateProductDto {
|
|
717
807
|
@IsString()
|
|
@@ -720,7 +810,7 @@ export class CreateProductDto {
|
|
|
720
810
|
@IsNumber()
|
|
721
811
|
price: number;
|
|
722
812
|
|
|
723
|
-
@IsEnum([
|
|
813
|
+
@IsEnum(['draft', 'active', 'archived'])
|
|
724
814
|
@IsOptional()
|
|
725
815
|
status?: string;
|
|
726
816
|
}
|
|
@@ -23,6 +23,7 @@ const authorization_1 = require("@zola_do/authorization");
|
|
|
23
23
|
function EntityCrudController(options) {
|
|
24
24
|
var _a, _b, _c;
|
|
25
25
|
const operations = (_a = options === null || options === void 0 ? void 0 : options.operations) !== null && _a !== void 0 ? _a : {};
|
|
26
|
+
const tx = (0, shared_1.crudTransactionDecorators)(options === null || options === void 0 ? void 0 : options.useTransaction);
|
|
26
27
|
const normalizeDisableConfig = (config) => {
|
|
27
28
|
if (!config)
|
|
28
29
|
return {};
|
|
@@ -160,9 +161,10 @@ function EntityCrudController(options) {
|
|
|
160
161
|
if (createDisable.mode !== 'hide') {
|
|
161
162
|
const guards = createDisable.mode === 'block'
|
|
162
163
|
? [new shared_1.CrudOperationDisabledGuard('create', createDisable.reason)]
|
|
163
|
-
: [
|
|
164
|
+
: [(0, authorization_1.PermissionsGuard)(options === null || options === void 0 ? void 0 : options.createPermission)];
|
|
164
165
|
applyMethodDecorators(EntityCrudControllerHost, 'create', [
|
|
165
166
|
(0, common_1.Post)(),
|
|
167
|
+
...tx,
|
|
166
168
|
(0, swagger_1.ApiBody)({ type: (options === null || options === void 0 ? void 0 : options.createDto) || extra_crud_controller_1.BaseAPIDto }),
|
|
167
169
|
(0, common_1.UseGuards)(...guards),
|
|
168
170
|
]);
|
|
@@ -213,6 +215,7 @@ function EntityCrudController(options) {
|
|
|
213
215
|
if (updateDisable.mode !== 'hide') {
|
|
214
216
|
applyMethodDecorators(EntityCrudControllerHost, 'update', [
|
|
215
217
|
(0, common_1.Put)(':id'),
|
|
218
|
+
...tx,
|
|
216
219
|
(0, swagger_1.ApiBody)({ type: (options === null || options === void 0 ? void 0 : options.updateDto) || extra_crud_controller_1.BaseAPIDto }),
|
|
217
220
|
(0, common_1.UseGuards)(updateDisable.mode === 'block'
|
|
218
221
|
? new shared_1.CrudOperationDisabledGuard('update')
|
|
@@ -223,6 +226,7 @@ function EntityCrudController(options) {
|
|
|
223
226
|
if (deleteDisable.mode !== 'hide') {
|
|
224
227
|
applyMethodDecorators(EntityCrudControllerHost, 'softDelete', [
|
|
225
228
|
(0, common_1.Delete)(':id'),
|
|
229
|
+
...tx,
|
|
226
230
|
(0, common_1.UseGuards)(deleteDisable.mode === 'block'
|
|
227
231
|
? new shared_1.CrudOperationDisabledGuard('delete')
|
|
228
232
|
: (0, authorization_1.PermissionsGuard)(options === null || options === void 0 ? void 0 : options.deletePermission)),
|
|
@@ -232,6 +236,7 @@ function EntityCrudController(options) {
|
|
|
232
236
|
if (restoreDisable.mode !== 'hide') {
|
|
233
237
|
applyMethodDecorators(EntityCrudControllerHost, 'restore', [
|
|
234
238
|
(0, common_1.Patch)('restore/:id'),
|
|
239
|
+
...tx,
|
|
235
240
|
(0, common_1.UseGuards)(restoreDisable.mode === 'block'
|
|
236
241
|
? new shared_1.CrudOperationDisabledGuard('restore')
|
|
237
242
|
: (0, authorization_1.PermissionsGuard)(options === null || options === void 0 ? void 0 : options.restorePermission)),
|
|
@@ -278,11 +283,11 @@ function EntityCrudController(options) {
|
|
|
278
283
|
new shared_1.CrudOperationDisabledGuard('bulkCreate', bulkCreateDisable.reason),
|
|
279
284
|
]
|
|
280
285
|
: [
|
|
281
|
-
authorization_1.JwtGuard,
|
|
282
286
|
(0, authorization_1.PermissionsGuard)((_b = options === null || options === void 0 ? void 0 : options.bulkCreatePermission) !== null && _b !== void 0 ? _b : options === null || options === void 0 ? void 0 : options.createPermission),
|
|
283
287
|
];
|
|
284
288
|
applyMethodDecorators(EntityCrudControllerHost, 'bulkCreate', [
|
|
285
289
|
(0, common_1.Post)('bulk'),
|
|
290
|
+
...tx,
|
|
286
291
|
(0, swagger_1.ApiBody)({
|
|
287
292
|
schema: {
|
|
288
293
|
type: 'object',
|
|
@@ -304,11 +309,11 @@ function EntityCrudController(options) {
|
|
|
304
309
|
new shared_1.CrudOperationDisabledGuard('bulkDelete', bulkDeleteDisable.reason),
|
|
305
310
|
]
|
|
306
311
|
: [
|
|
307
|
-
authorization_1.JwtGuard,
|
|
308
312
|
(0, authorization_1.PermissionsGuard)((_c = options === null || options === void 0 ? void 0 : options.bulkDeletePermission) !== null && _c !== void 0 ? _c : options === null || options === void 0 ? void 0 : options.deletePermission),
|
|
309
313
|
];
|
|
310
314
|
applyMethodDecorators(EntityCrudControllerHost, 'bulkDelete', [
|
|
311
315
|
(0, common_1.Post)('bulk-delete'),
|
|
316
|
+
...tx,
|
|
312
317
|
(0, swagger_1.ApiBody)({
|
|
313
318
|
schema: {
|
|
314
319
|
type: 'object',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-crud.controller.js","sourceRoot":"","sources":["../../src/controller/entity-crud.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"entity-crud.controller.js","sourceRoot":"","sources":["../../src/controller/entity-crud.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ function ExtraCrudController(options) {
|
|
|
27
27
|
var _a;
|
|
28
28
|
const { createDto, updateDto } = options;
|
|
29
29
|
const operations = (_a = options.operations) !== null && _a !== void 0 ? _a : {};
|
|
30
|
+
const tx = (0, shared_1.crudTransactionDecorators)(options.useTransaction);
|
|
30
31
|
const normalizeDisableConfig = (config) => {
|
|
31
32
|
if (!config)
|
|
32
33
|
return {};
|
|
@@ -144,6 +145,7 @@ function ExtraCrudController(options) {
|
|
|
144
145
|
if (createDisable.mode !== 'hide') {
|
|
145
146
|
applyMethodDecorators(ExtraCrudControllerHost, 'create', [
|
|
146
147
|
(0, common_1.Post)(),
|
|
148
|
+
...tx,
|
|
147
149
|
(0, swagger_1.ApiBody)({ type: createDto || BaseAPIDto }),
|
|
148
150
|
(0, common_1.UseGuards)(createDisable.mode === 'block'
|
|
149
151
|
? new shared_1.CrudOperationDisabledGuard('create', createDisable.reason)
|
|
@@ -196,6 +198,7 @@ function ExtraCrudController(options) {
|
|
|
196
198
|
if (updateDisable.mode !== 'hide') {
|
|
197
199
|
applyMethodDecorators(ExtraCrudControllerHost, 'update', [
|
|
198
200
|
(0, common_1.Put)(':id'),
|
|
201
|
+
...tx,
|
|
199
202
|
(0, common_1.UseGuards)(updateDisable.mode === 'block'
|
|
200
203
|
? new shared_1.CrudOperationDisabledGuard('update')
|
|
201
204
|
: (0, authorization_1.PermissionsGuard)(options.updatePermission)),
|
|
@@ -206,6 +209,7 @@ function ExtraCrudController(options) {
|
|
|
206
209
|
if (deleteDisable.mode !== 'hide') {
|
|
207
210
|
applyMethodDecorators(ExtraCrudControllerHost, 'softDelete', [
|
|
208
211
|
(0, common_1.Delete)(':id'),
|
|
212
|
+
...tx,
|
|
209
213
|
(0, common_1.UseGuards)(deleteDisable.mode === 'block'
|
|
210
214
|
? new shared_1.CrudOperationDisabledGuard('delete', deleteDisable.reason)
|
|
211
215
|
: (0, authorization_1.PermissionsGuard)(options.deletePermission)),
|
|
@@ -215,6 +219,7 @@ function ExtraCrudController(options) {
|
|
|
215
219
|
if (restoreDisable.mode !== 'hide') {
|
|
216
220
|
applyMethodDecorators(ExtraCrudControllerHost, 'restore', [
|
|
217
221
|
(0, common_1.Patch)('restore/:id'),
|
|
222
|
+
...tx,
|
|
218
223
|
(0, common_1.UseGuards)(restoreDisable.mode === 'block'
|
|
219
224
|
? new shared_1.CrudOperationDisabledGuard('restore', restoreDisable.reason)
|
|
220
225
|
: (0, authorization_1.PermissionsGuard)(options.restorePermission)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extra-crud.controller.js","sourceRoot":"","sources":["../../src/controller/extra-crud.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"extra-crud.controller.js","sourceRoot":"","sources":["../../src/controller/extra-crud.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ function RelationCrudController(options) {
|
|
|
24
24
|
var _a;
|
|
25
25
|
const { firstEntityIdName, firstInclude = 'first', secondEntityIdName, secondInclude = 'second', assignFirstDto, assignSecondDto, } = options;
|
|
26
26
|
const operations = (_a = options.operations) !== null && _a !== void 0 ? _a : {};
|
|
27
|
+
const tx = (0, shared_1.crudTransactionDecorators)(options.useTransaction);
|
|
27
28
|
const normalizeDisableConfig = (config) => {
|
|
28
29
|
if (!config)
|
|
29
30
|
return {};
|
|
@@ -110,6 +111,7 @@ function RelationCrudController(options) {
|
|
|
110
111
|
if (bulkSaveFirstDisable.mode !== 'hide') {
|
|
111
112
|
const decorators = [
|
|
112
113
|
(0, common_1.Post)(`assign-${firstInclude}`),
|
|
114
|
+
...tx,
|
|
113
115
|
(0, swagger_1.ApiBody)({ type: assignFirstDto || extra_crud_controller_1.BaseAPIDto }),
|
|
114
116
|
];
|
|
115
117
|
if (bulkSaveFirstDisable.mode === 'block') {
|
|
@@ -121,6 +123,7 @@ function RelationCrudController(options) {
|
|
|
121
123
|
if (bulkSaveSecondDisable.mode !== 'hide') {
|
|
122
124
|
const decorators = [
|
|
123
125
|
(0, common_1.Post)(`assign-${secondInclude}`),
|
|
126
|
+
...tx,
|
|
124
127
|
(0, swagger_1.ApiBody)({ type: assignSecondDto || extra_crud_controller_1.BaseAPIDto }),
|
|
125
128
|
];
|
|
126
129
|
if (bulkSaveSecondDisable.mode === 'block') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-crud.controller.js","sourceRoot":"","sources":["../../src/controller/relation-crud.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"relation-crud.controller.js","sourceRoot":"","sources":["../../src/controller/relation-crud.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Repository, DeepPartial, ObjectLiteral } from
|
|
2
|
-
import { CollectionQuery } from
|
|
3
|
-
import { DataResponseFormat, EntityCrudOptions, CrudRequestContextResolver } from
|
|
4
|
-
import { Request } from
|
|
1
|
+
import { Repository, DeepPartial, ObjectLiteral } from 'typeorm';
|
|
2
|
+
import { CollectionQuery } from '@zola_do/collection-query';
|
|
3
|
+
import { DataResponseFormat, EntityCrudOptions, CrudRequestContextResolver } from '../../shared';
|
|
4
|
+
import { Request } from 'express';
|
|
5
5
|
export declare class EntityCrudRepository<T extends ObjectLiteral> {
|
|
6
6
|
private readonly repository;
|
|
7
7
|
private requestR?;
|