@drax/crud-back 0.37.4 → 0.38.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.
- package/dist/controllers/AbstractFastifyController.js +85 -4
- package/dist/events/CrudEventEmitter.js +18 -0
- package/dist/index.js +3 -0
- package/package.json +6 -6
- package/src/controllers/AbstractFastifyController.ts +116 -8
- package/src/events/CrudEventEmitter.ts +26 -0
- package/src/index.ts +4 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/types/controllers/AbstractFastifyController.d.ts +32 -8
- package/types/controllers/AbstractFastifyController.d.ts.map +1 -1
- package/types/events/CrudEventEmitter.d.ts +11 -0
- package/types/events/CrudEventEmitter.d.ts.map +1 -0
- package/types/index.d.ts +2 -1
- package/types/index.d.ts.map +1 -1
|
@@ -2,7 +2,8 @@ import AbstractService from "../services/AbstractService";
|
|
|
2
2
|
import { CommonController } from "@drax/common-back";
|
|
3
3
|
import { IRbac } from "@drax/identity-share";
|
|
4
4
|
import type { FastifyReply, FastifyRequest } from "fastify";
|
|
5
|
-
import { IDraxPermission, IDraxFieldFilter } from "@drax/crud-share";
|
|
5
|
+
import { IDraxPermission, IDraxFieldFilter, IDraxExportResponse } from "@drax/crud-share";
|
|
6
|
+
import CrudEventEmitter from "../events/CrudEventEmitter.js";
|
|
6
7
|
declare module 'fastify' {
|
|
7
8
|
interface FastifyRequest {
|
|
8
9
|
rbac?: IRbac;
|
|
@@ -37,6 +38,7 @@ declare class AbstractFastifyController<T, C, U> extends CommonController {
|
|
|
37
38
|
protected permission: IDraxPermission;
|
|
38
39
|
protected baseFileDir: any;
|
|
39
40
|
protected baseURL: any;
|
|
41
|
+
protected entityName: string;
|
|
40
42
|
protected tenantField: string;
|
|
41
43
|
protected userField: string;
|
|
42
44
|
protected tenantFilter: boolean;
|
|
@@ -56,7 +58,8 @@ declare class AbstractFastifyController<T, C, U> extends CommonController {
|
|
|
56
58
|
protected userAssert: boolean;
|
|
57
59
|
protected defaultLimit: number;
|
|
58
60
|
protected maximumLimit: number;
|
|
59
|
-
|
|
61
|
+
protected eventEmitter: CrudEventEmitter;
|
|
62
|
+
constructor(service: AbstractService<T, C, U>, permission: IDraxPermission, entityName?: string);
|
|
60
63
|
protected parseFilters(stringFilters: string): IDraxFieldFilter[];
|
|
61
64
|
protected applyUserAndTenantFilters(filters: IDraxFieldFilter[], rbac: IRbac): void;
|
|
62
65
|
protected applyUserFilter(filters: IDraxFieldFilter[], rbac: IRbac): void;
|
|
@@ -65,6 +68,32 @@ declare class AbstractFastifyController<T, C, U> extends CommonController {
|
|
|
65
68
|
protected assertUser(item: T, rbac: IRbac): void;
|
|
66
69
|
protected assertUserAndTenant(item: T, rbac: IRbac): void;
|
|
67
70
|
protected applyUserAndTenantSetters(payload: any, rbac: any): void;
|
|
71
|
+
protected extractRequestData(request: CustomRequest): {
|
|
72
|
+
user: {
|
|
73
|
+
id: string;
|
|
74
|
+
username: string;
|
|
75
|
+
role: {
|
|
76
|
+
id: string;
|
|
77
|
+
name: string;
|
|
78
|
+
};
|
|
79
|
+
tenant: {
|
|
80
|
+
id: string;
|
|
81
|
+
name: string;
|
|
82
|
+
};
|
|
83
|
+
apiKey: {
|
|
84
|
+
id: string;
|
|
85
|
+
name: string;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
ip: string;
|
|
89
|
+
userAgent: string;
|
|
90
|
+
sessionId: string;
|
|
91
|
+
requestId: string;
|
|
92
|
+
};
|
|
93
|
+
onCreated(request: CustomRequest, item: T): Promise<void>;
|
|
94
|
+
onUpdated(request: CustomRequest, preItem: T, postItem: T): Promise<void>;
|
|
95
|
+
onDeleted(request: CustomRequest, item: T): Promise<void>;
|
|
96
|
+
onExported(request: CustomRequest, response: IDraxExportResponse): Promise<void>;
|
|
68
97
|
create(request: CustomRequest, reply: FastifyReply): Promise<T>;
|
|
69
98
|
update(request: CustomRequest, reply: FastifyReply): Promise<T>;
|
|
70
99
|
updatePartial(request: CustomRequest, reply: FastifyReply): Promise<T>;
|
|
@@ -77,12 +106,7 @@ declare class AbstractFastifyController<T, C, U> extends CommonController {
|
|
|
77
106
|
findOneBy(request: CustomRequest, reply: FastifyReply): Promise<T>;
|
|
78
107
|
search(request: CustomRequest, reply: FastifyReply): Promise<T[]>;
|
|
79
108
|
paginate(request: CustomRequest, reply: FastifyReply): Promise<import("@drax/crud-share").IDraxPaginateResult<T>>;
|
|
80
|
-
export(request: CustomRequest, reply: FastifyReply): Promise<
|
|
81
|
-
url: string;
|
|
82
|
-
rowCount: number;
|
|
83
|
-
time: number;
|
|
84
|
-
fileName: string;
|
|
85
|
-
}>;
|
|
109
|
+
export(request: CustomRequest, reply: FastifyReply): Promise<IDraxExportResponse>;
|
|
86
110
|
groupBy(request: CustomRequest, reply: FastifyReply): Promise<any[]>;
|
|
87
111
|
}
|
|
88
112
|
export default AbstractFastifyController;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractFastifyController.d.ts","sourceRoot":"","sources":["../../src/controllers/AbstractFastifyController.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAMH,gBAAgB,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,KAAK,EAAC,MAAM,sBAAsB,CAAC;AAC3C,OAAO,KAAK,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,SAAS,CAAC;AAC1D,OAAO,
|
|
1
|
+
{"version":3,"file":"AbstractFastifyController.d.ts","sourceRoot":"","sources":["../../src/controllers/AbstractFastifyController.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import { IDraxCrudEvent } from "@drax/crud-share";
|
|
3
|
+
declare class CrudEventEmitter extends EventEmitter {
|
|
4
|
+
private static instance;
|
|
5
|
+
private constructor();
|
|
6
|
+
static getInstance(): CrudEventEmitter;
|
|
7
|
+
emitCrudEvent<T>(eventData: IDraxCrudEvent<T>): void;
|
|
8
|
+
}
|
|
9
|
+
export default CrudEventEmitter;
|
|
10
|
+
export { CrudEventEmitter };
|
|
11
|
+
//# sourceMappingURL=CrudEventEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrudEventEmitter.d.ts","sourceRoot":"","sources":["../../src/events/CrudEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAGhD,cAAM,gBAAiB,SAAQ,YAAY;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAE1C,OAAO;IAKP,MAAM,CAAC,WAAW,IAAI,gBAAgB;IAOtC,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI;CAGvD;AAED,eAAe,gBAAgB,CAAC;AAChC,OAAO,EAAC,gBAAgB,EAAC,CAAC"}
|
package/types/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import AbstractSqliteRepository from "./repository/AbstractSqliteRepository.js";
|
|
|
3
3
|
import AbstractService from "./services/AbstractService.js";
|
|
4
4
|
import AbstractFastifyController from "./controllers/AbstractFastifyController.js";
|
|
5
5
|
import type { CustomRequest } from "./controllers/AbstractFastifyController.js";
|
|
6
|
+
import { CrudEventEmitter } from "./events/CrudEventEmitter.js";
|
|
6
7
|
import { IdParamSchema } from "./schemas/IdParamSchema.js";
|
|
7
8
|
import { DeleteBodyResponseSchema } from "./schemas/DeleteBodyResponseSchema.js";
|
|
8
9
|
import { PaginateBodyResponseSchema, PaginateQuerySchema } from "./schemas/PaginateSchema.js";
|
|
@@ -14,5 +15,5 @@ import { ExportBodyResponseSchema } from "./schemas/ExportBodyResponseSchema.js"
|
|
|
14
15
|
import { ErrorBodyResponseSchema, ValidationErrorBodyResponseSchema } from "./schemas/ErrorBodyResponseSchema.js";
|
|
15
16
|
import { CrudSchemaBuilder } from "./builders/CrudSchemaBuilder.js";
|
|
16
17
|
export type { CustomRequest };
|
|
17
|
-
export { AbstractMongoRepository, AbstractSqliteRepository, AbstractService, AbstractFastifyController, IdParamSchema, DeleteBodyResponseSchema, PaginateBodyResponseSchema, PaginateQuerySchema, FindQuerySchema, GroupByQuerySchema, SearchQuerySchema, FindByParamSchema, ErrorBodyResponseSchema, ValidationErrorBodyResponseSchema, ExportBodyResponseSchema, CrudSchemaBuilder, };
|
|
18
|
+
export { AbstractMongoRepository, AbstractSqliteRepository, AbstractService, AbstractFastifyController, CrudEventEmitter, IdParamSchema, DeleteBodyResponseSchema, PaginateBodyResponseSchema, PaginateQuerySchema, FindQuerySchema, GroupByQuerySchema, SearchQuerySchema, FindByParamSchema, ErrorBodyResponseSchema, ValidationErrorBodyResponseSchema, ExportBodyResponseSchema, CrudSchemaBuilder, };
|
|
18
19
|
//# sourceMappingURL=index.d.ts.map
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,uBAAuB,MAAM,yCAAyC,CAAC;AAC9E,OAAO,wBAAwB,MAAM,0CAA0C,CAAC;AAChF,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,yBAAyB,MAAM,4CAA4C,CAAC;AACnF,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,uBAAuB,MAAM,yCAAyC,CAAC;AAC9E,OAAO,wBAAwB,MAAM,0CAA0C,CAAC;AAChF,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,yBAAyB,MAAM,4CAA4C,CAAC;AACnF,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAG9D,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAC,wBAAwB,EAAC,MAAM,uCAAuC,CAAA;AAC9E,OAAO,EAAC,0BAA0B,EAAE,mBAAmB,EAAC,MAAM,6BAA6B,CAAA;AAC3F,OAAO,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAC,wBAAwB,EAAC,MAAM,uCAAuC,CAAA;AAC9E,OAAO,EAAC,uBAAuB,EAAE,iCAAiC,EAAC,MAAM,sCAAsC,CAAA;AAC/G,OAAO,EAAC,iBAAiB,EAAC,MAAM,iCAAiC,CAAC;AAElE,YAAY,EACR,aAAa,EAChB,CAAA;AAED,OAAO,EAGH,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,yBAAyB,EAGzB,gBAAgB,EAIhB,aAAa,EACb,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,iCAAiC,EACjC,wBAAwB,EAGxB,iBAAiB,GAGpB,CAAA"}
|