@monorise/core 0.0.1-dev.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/configs/service.config.d.ts +5 -0
- package/dist/configs/service.config.d.ts.map +1 -0
- package/dist/configs/service.config.js +5 -0
- package/dist/configs/service.config.js.map +1 -0
- package/dist/constants/table.d.ts +4 -0
- package/dist/constants/table.d.ts.map +1 -0
- package/dist/constants/table.js +4 -0
- package/dist/constants/table.js.map +1 -0
- package/dist/controllers/entity/create-entity.controller.d.ts +8 -0
- package/dist/controllers/entity/create-entity.controller.d.ts.map +1 -0
- package/dist/controllers/entity/create-entity.controller.js +44 -0
- package/dist/controllers/entity/create-entity.controller.js.map +1 -0
- package/dist/controllers/entity/delete-entity.controller.d.ts +8 -0
- package/dist/controllers/entity/delete-entity.controller.d.ts.map +1 -0
- package/dist/controllers/entity/delete-entity.controller.js +29 -0
- package/dist/controllers/entity/delete-entity.controller.js.map +1 -0
- package/dist/controllers/entity/get-entity.controller.d.ts +8 -0
- package/dist/controllers/entity/get-entity.controller.d.ts.map +1 -0
- package/dist/controllers/entity/get-entity.controller.js +24 -0
- package/dist/controllers/entity/get-entity.controller.js.map +1 -0
- package/dist/controllers/entity/list-entities.controller.d.ts +8 -0
- package/dist/controllers/entity/list-entities.controller.d.ts.map +1 -0
- package/dist/controllers/entity/list-entities.controller.js +56 -0
- package/dist/controllers/entity/list-entities.controller.js.map +1 -0
- package/dist/controllers/entity/update-entity.controller.d.ts +8 -0
- package/dist/controllers/entity/update-entity.controller.d.ts.map +1 -0
- package/dist/controllers/entity/update-entity.controller.js +45 -0
- package/dist/controllers/entity/update-entity.controller.js.map +1 -0
- package/dist/controllers/entity/upsert-entity.controller.d.ts +12 -0
- package/dist/controllers/entity/upsert-entity.controller.d.ts.map +1 -0
- package/dist/controllers/entity/upsert-entity.controller.js +74 -0
- package/dist/controllers/entity/upsert-entity.controller.js.map +1 -0
- package/dist/controllers/mutual/create-mutual.controller.d.ts +8 -0
- package/dist/controllers/mutual/create-mutual.controller.d.ts.map +1 -0
- package/dist/controllers/mutual/create-mutual.controller.js +49 -0
- package/dist/controllers/mutual/create-mutual.controller.js.map +1 -0
- package/dist/controllers/mutual/delete-mutual.controller.d.ts +8 -0
- package/dist/controllers/mutual/delete-mutual.controller.d.ts.map +1 -0
- package/dist/controllers/mutual/delete-mutual.controller.js +31 -0
- package/dist/controllers/mutual/delete-mutual.controller.js.map +1 -0
- package/dist/controllers/mutual/get-mutual.controller.d.ts +8 -0
- package/dist/controllers/mutual/get-mutual.controller.d.ts.map +1 -0
- package/dist/controllers/mutual/get-mutual.controller.js +24 -0
- package/dist/controllers/mutual/get-mutual.controller.js.map +1 -0
- package/dist/controllers/mutual/list-entities-by-entity.controller.d.ts +8 -0
- package/dist/controllers/mutual/list-entities-by-entity.controller.d.ts.map +1 -0
- package/dist/controllers/mutual/list-entities-by-entity.controller.js +56 -0
- package/dist/controllers/mutual/list-entities-by-entity.controller.js.map +1 -0
- package/dist/controllers/mutual/update-mutual.controller.d.ts +8 -0
- package/dist/controllers/mutual/update-mutual.controller.d.ts.map +1 -0
- package/dist/controllers/mutual/update-mutual.controller.js +40 -0
- package/dist/controllers/mutual/update-mutual.controller.js.map +1 -0
- package/dist/controllers/setupRoutes.d.ts +5 -0
- package/dist/controllers/setupRoutes.d.ts.map +1 -0
- package/dist/controllers/setupRoutes.js +30 -0
- package/dist/controllers/setupRoutes.js.map +1 -0
- package/dist/controllers/tag/list-tags.controller.d.ts +8 -0
- package/dist/controllers/tag/list-tags.controller.d.ts.map +1 -0
- package/dist/controllers/tag/list-tags.controller.js +48 -0
- package/dist/controllers/tag/list-tags.controller.js.map +1 -0
- package/dist/data/DbUtils.d.ts +7 -0
- package/dist/data/DbUtils.d.ts.map +1 -0
- package/dist/data/DbUtils.js +23 -0
- package/dist/data/DbUtils.js.map +1 -0
- package/dist/data/Entity.d.ts +73 -0
- package/dist/data/Entity.d.ts.map +1 -0
- package/dist/data/Entity.js +361 -0
- package/dist/data/Entity.js.map +1 -0
- package/dist/data/EventUtils.d.ts +15 -0
- package/dist/data/EventUtils.d.ts.map +1 -0
- package/dist/data/EventUtils.js +35 -0
- package/dist/data/EventUtils.js.map +1 -0
- package/dist/data/FileObject.d.ts +62 -0
- package/dist/data/FileObject.d.ts.map +1 -0
- package/dist/data/FileObject.js +13 -0
- package/dist/data/FileObject.js.map +1 -0
- package/dist/data/Mutual.d.ts +94 -0
- package/dist/data/Mutual.d.ts.map +1 -0
- package/dist/data/Mutual.js +492 -0
- package/dist/data/Mutual.js.map +1 -0
- package/dist/data/ProjectionExpression.d.ts +6 -0
- package/dist/data/ProjectionExpression.d.ts.map +1 -0
- package/dist/data/ProjectionExpression.js +5 -0
- package/dist/data/ProjectionExpression.js.map +1 -0
- package/dist/data/Tag.d.ts +77 -0
- package/dist/data/Tag.d.ts.map +1 -0
- package/dist/data/Tag.js +330 -0
- package/dist/data/Tag.js.map +1 -0
- package/dist/data/abstract/Item.base.d.ts +11 -0
- package/dist/data/abstract/Item.base.d.ts.map +1 -0
- package/dist/data/abstract/Item.base.js +9 -0
- package/dist/data/abstract/Item.base.js.map +1 -0
- package/dist/data/abstract/Repository.base.d.ts +11 -0
- package/dist/data/abstract/Repository.base.d.ts.map +1 -0
- package/dist/data/abstract/Repository.base.js +54 -0
- package/dist/data/abstract/Repository.base.js.map +1 -0
- package/dist/errors/api-error.d.ts +23 -0
- package/dist/errors/api-error.d.ts.map +1 -0
- package/dist/errors/api-error.js +26 -0
- package/dist/errors/api-error.js.map +1 -0
- package/dist/errors/extendable-error.d.ts +18 -0
- package/dist/errors/extendable-error.d.ts.map +1 -0
- package/dist/errors/extendable-error.js +22 -0
- package/dist/errors/extendable-error.js.map +1 -0
- package/dist/errors/standard-error.d.ts +11 -0
- package/dist/errors/standard-error.d.ts.map +1 -0
- package/dist/errors/standard-error.js +21 -0
- package/dist/errors/standard-error.js.map +1 -0
- package/dist/helpers/dependencies.d.ts +8 -0
- package/dist/helpers/dependencies.d.ts.map +1 -0
- package/dist/helpers/dependencies.js +10 -0
- package/dist/helpers/dependencies.js.map +1 -0
- package/dist/helpers/event.d.ts +22 -0
- package/dist/helpers/event.d.ts.map +1 -0
- package/dist/helpers/event.js +47 -0
- package/dist/helpers/event.js.map +1 -0
- package/dist/helpers/fromLastKeyQuery.d.ts +3 -0
- package/dist/helpers/fromLastKeyQuery.d.ts.map +1 -0
- package/dist/helpers/fromLastKeyQuery.js +7 -0
- package/dist/helpers/fromLastKeyQuery.js.map +1 -0
- package/dist/helpers/sleep.d.ts +2 -0
- package/dist/helpers/sleep.d.ts.map +1 -0
- package/dist/helpers/sleep.js +2 -0
- package/dist/helpers/sleep.js.map +1 -0
- package/dist/helpers/toLastKeyResponse.d.ts +3 -0
- package/dist/helpers/toLastKeyResponse.d.ts.map +1 -0
- package/dist/helpers/toLastKeyResponse.js +7 -0
- package/dist/helpers/toLastKeyResponse.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/middlewares/entity-type-check.d.ts +4 -0
- package/dist/middlewares/entity-type-check.d.ts.map +1 -0
- package/dist/middlewares/entity-type-check.js +12 -0
- package/dist/middlewares/entity-type-check.js.map +1 -0
- package/dist/middlewares/mutual-type-check.d.ts +4 -0
- package/dist/middlewares/mutual-type-check.d.ts.map +1 -0
- package/dist/middlewares/mutual-type-check.js +13 -0
- package/dist/middlewares/mutual-type-check.js.map +1 -0
- package/dist/mock/entity.d.ts +5 -0
- package/dist/mock/entity.d.ts.map +1 -0
- package/dist/mock/entity.js +6 -0
- package/dist/mock/entity.js.map +1 -0
- package/dist/mock/monorise/admin.d.ts +127 -0
- package/dist/mock/monorise/admin.d.ts.map +1 -0
- package/dist/mock/monorise/admin.js +26 -0
- package/dist/mock/monorise/admin.js.map +1 -0
- package/dist/mock/monorise/course.d.ts +118 -0
- package/dist/mock/monorise/course.d.ts.map +1 -0
- package/dist/mock/monorise/course.js +53 -0
- package/dist/mock/monorise/course.js.map +1 -0
- package/dist/mock/monorise/index.d.ts +330 -0
- package/dist/mock/monorise/index.d.ts.map +1 -0
- package/dist/mock/monorise/index.js +19 -0
- package/dist/mock/monorise/index.js.map +1 -0
- package/dist/processors/create-entity-processor.d.ts +6 -0
- package/dist/processors/create-entity-processor.d.ts.map +1 -0
- package/dist/processors/create-entity-processor.js +32 -0
- package/dist/processors/create-entity-processor.js.map +1 -0
- package/dist/processors/mutual-processor.d.ts +16 -0
- package/dist/processors/mutual-processor.d.ts.map +1 -0
- package/dist/processors/mutual-processor.js +131 -0
- package/dist/processors/mutual-processor.js.map +1 -0
- package/dist/processors/prejoin-processor.d.ts +13 -0
- package/dist/processors/prejoin-processor.d.ts.map +1 -0
- package/dist/processors/prejoin-processor.js +149 -0
- package/dist/processors/prejoin-processor.js.map +1 -0
- package/dist/processors/replication-processor.d.ts +9 -0
- package/dist/processors/replication-processor.d.ts.map +1 -0
- package/dist/processors/replication-processor.js +179 -0
- package/dist/processors/replication-processor.js.map +1 -0
- package/dist/processors/tag-processor.d.ts +12 -0
- package/dist/processors/tag-processor.d.ts.map +1 -0
- package/dist/processors/tag-processor.js +105 -0
- package/dist/processors/tag-processor.js.map +1 -0
- package/dist/services/DependencyContainer.d.ts +63 -0
- package/dist/services/DependencyContainer.d.ts.map +1 -0
- package/dist/services/DependencyContainer.js +121 -0
- package/dist/services/DependencyContainer.js.map +1 -0
- package/dist/services/entity-service-lifecycle.d.ts +12 -0
- package/dist/services/entity-service-lifecycle.d.ts.map +1 -0
- package/dist/services/entity-service-lifecycle.js +32 -0
- package/dist/services/entity-service-lifecycle.js.map +1 -0
- package/dist/services/entity.service.d.ts +34 -0
- package/dist/services/entity.service.d.ts.map +1 -0
- package/dist/services/entity.service.js +117 -0
- package/dist/services/entity.service.js.map +1 -0
- package/dist/services/mutual.service.d.ts +64 -0
- package/dist/services/mutual.service.d.ts.map +1 -0
- package/dist/services/mutual.service.js +137 -0
- package/dist/services/mutual.service.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/entity.type.d.ts +20 -0
- package/dist/types/entity.type.d.ts.map +1 -0
- package/dist/types/entity.type.js +2 -0
- package/dist/types/entity.type.js.map +1 -0
- package/dist/types/event.d.ts +72 -0
- package/dist/types/event.d.ts.map +1 -0
- package/dist/types/event.js +74 -0
- package/dist/types/event.js.map +1 -0
- package/package.json +34 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ENTITY_REPLICATION_INDEX, MUTUAL_REPLICATION_INDEX } from '../constants/table';
|
|
2
|
+
declare const CORE_TABLE: string;
|
|
3
|
+
declare const CORE_EVENT_BUS: string;
|
|
4
|
+
export { CORE_TABLE, CORE_EVENT_BUS, ENTITY_REPLICATION_INDEX, MUTUAL_REPLICATION_INDEX, };
|
|
5
|
+
//# sourceMappingURL=service.config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.config.d.ts","sourceRoot":"","sources":["../../configs/service.config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,oBAAoB,CAAC;AAE5B,QAAA,MAAM,UAAU,QAA+B,CAAC;AAChD,QAAA,MAAM,cAAc,QAAmC,CAAC;AAExD,OAAO,EACL,UAAU,EACV,cAAc,EACd,wBAAwB,EACxB,wBAAwB,GACzB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ENTITY_REPLICATION_INDEX, MUTUAL_REPLICATION_INDEX, } from '../constants/table';
|
|
2
|
+
const CORE_TABLE = process.env.CORE_TABLE || '';
|
|
3
|
+
const CORE_EVENT_BUS = process.env.CORE_EVENT_BUS || '';
|
|
4
|
+
export { CORE_TABLE, CORE_EVENT_BUS, ENTITY_REPLICATION_INDEX, MUTUAL_REPLICATION_INDEX, };
|
|
5
|
+
//# sourceMappingURL=service.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.config.js","sourceRoot":"","sources":["../../configs/service.config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;AAChD,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;AAExD,OAAO,EACL,UAAU,EACV,cAAc,EACd,wBAAwB,EACxB,wBAAwB,GACzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../constants/table.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AACnE,eAAO,MAAM,wBAAwB,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../constants/table.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AACrD,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AACnE,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Request, Response } from 'express';
|
|
2
|
+
import type { EntityService } from '../../services/entity.service';
|
|
3
|
+
export declare class CreateEntityController {
|
|
4
|
+
private entityService;
|
|
5
|
+
constructor(entityService: EntityService);
|
|
6
|
+
controller: (req: Request, res: Response) => void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=create-entity.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-entity.controller.d.ts","sourceRoot":"","sources":["../../../controllers/entity/create-entity.controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,qBAAa,sBAAsB;IACrB,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CAuC/C;CACH"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import httpStatus from 'http-status';
|
|
2
|
+
import { ZodError } from 'zod';
|
|
3
|
+
import { StandardError } from '../../errors/standard-error';
|
|
4
|
+
export class CreateEntityController {
|
|
5
|
+
entityService;
|
|
6
|
+
constructor(entityService) {
|
|
7
|
+
this.entityService = entityService;
|
|
8
|
+
}
|
|
9
|
+
controller = async (req, res) => {
|
|
10
|
+
const accountId = req.headers['account-id'];
|
|
11
|
+
const { entityType } = req.params;
|
|
12
|
+
try {
|
|
13
|
+
const entity = await this.entityService.createEntity({
|
|
14
|
+
entityType,
|
|
15
|
+
entityPayload: req.body,
|
|
16
|
+
accountId,
|
|
17
|
+
options: {
|
|
18
|
+
createAndUpdateDatetime: req.body.createdAt,
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
return res.status(httpStatus.OK).json(entity);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
if (err instanceof ZodError) {
|
|
25
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
26
|
+
code: 'API_VALIDATION_ERROR',
|
|
27
|
+
message: 'API validation failed',
|
|
28
|
+
details: err.flatten(),
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
if (err instanceof StandardError && err.code === 'EMAIL_EXISTS') {
|
|
32
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
33
|
+
...err.toJSON(),
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
console.log('===create-entity error:', {
|
|
37
|
+
err,
|
|
38
|
+
errorContext: JSON.stringify({ body: req.body, headers: req.headers }),
|
|
39
|
+
});
|
|
40
|
+
throw err;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=create-entity.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-entity.controller.js","sourceRoot":"","sources":["../../../controllers/entity/create-entity.controller.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,OAAO,sBAAsB;IACb;IAApB,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEpD,UAAU,GAA0C,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrE,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAE1B,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;gBACnD,UAAU;gBACV,aAAa,EAAE,GAAG,CAAC,IAAI;gBACvB,SAAS;gBACT,OAAO,EAAE;oBACP,uBAAuB,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS;iBAC5C;aACF,CAAC,CAAC;YAEH,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;gBAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;oBAC7C,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,uBAAuB;oBAChC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;iBACvB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAChE,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;oBAC7C,GAAG,GAAG,CAAC,MAAM,EAAE;iBAChB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE;gBACrC,GAAG;gBACH,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;aACvE,CAAC,CAAC;YAEH,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;CACH"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Request, Response } from 'express';
|
|
2
|
+
import type { EntityService } from '../../services/entity.service';
|
|
3
|
+
export declare class DeleteEntityController {
|
|
4
|
+
private readonly entityService;
|
|
5
|
+
constructor(entityService: EntityService);
|
|
6
|
+
controller: (req: Request, res: Response) => void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=delete-entity.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-entity.controller.d.ts","sourceRoot":"","sources":["../../../controllers/entity/delete-entity.controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEzD,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CAwB/C;CACH"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import httpStatus from 'http-status';
|
|
2
|
+
import { StandardError } from '../../errors/standard-error';
|
|
3
|
+
export class DeleteEntityController {
|
|
4
|
+
entityService;
|
|
5
|
+
constructor(entityService) {
|
|
6
|
+
this.entityService = entityService;
|
|
7
|
+
}
|
|
8
|
+
controller = async (req, res) => {
|
|
9
|
+
const accountId = req.headers['account-id'];
|
|
10
|
+
const { entityType, entityId } = req.params;
|
|
11
|
+
try {
|
|
12
|
+
await this.entityService.deleteEntity({
|
|
13
|
+
entityType,
|
|
14
|
+
entityId,
|
|
15
|
+
accountId,
|
|
16
|
+
});
|
|
17
|
+
return res.json({ message: 'entity deleted' });
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
if (err instanceof StandardError && err.code === 'ENTITY_NOT_FOUND') {
|
|
21
|
+
return res.status(httpStatus.NOT_FOUND).json({
|
|
22
|
+
...err.toJSON(),
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
throw err;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=delete-entity.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-entity.controller.js","sourceRoot":"","sources":["../../../controllers/entity/delete-entity.controller.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,OAAO,sBAAsB;IACJ;IAA7B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,UAAU,GAA0C,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrE,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,MAGpC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;gBACpC,UAAU;gBACV,QAAQ;gBACR,SAAS;aACV,CAAC,CAAC;YAEH,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACpE,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;oBAC3C,GAAG,GAAG,CAAC,MAAM,EAAE;iBAChB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;CACH"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Request, Response } from 'express';
|
|
2
|
+
import type { EntityRepository } from '../../data/Entity';
|
|
3
|
+
export declare class GetEntityController {
|
|
4
|
+
private entityRepository;
|
|
5
|
+
constructor(entityRepository: EntityRepository);
|
|
6
|
+
controller: (req: Request, res: Response) => void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=get-entity.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-entity.controller.d.ts","sourceRoot":"","sources":["../../../controllers/entity/get-entity.controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,qBAAa,mBAAmB;IAClB,OAAO,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,gBAAgB;IAEtD,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CAuB/C;CACH"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import httpStatus from 'http-status';
|
|
2
|
+
export class GetEntityController {
|
|
3
|
+
entityRepository;
|
|
4
|
+
constructor(entityRepository) {
|
|
5
|
+
this.entityRepository = entityRepository;
|
|
6
|
+
}
|
|
7
|
+
controller = async (req, res) => {
|
|
8
|
+
const { entityType, entityId } = req.params;
|
|
9
|
+
try {
|
|
10
|
+
const entity = await this.entityRepository.getEntity(entityType, entityId);
|
|
11
|
+
return res.status(httpStatus.OK).json(entity);
|
|
12
|
+
}
|
|
13
|
+
catch (err) {
|
|
14
|
+
if (err.code === 'ENTITY_IS_UNDEFINED') {
|
|
15
|
+
return res.status(httpStatus.NOT_FOUND).json({
|
|
16
|
+
code: 'ENTITY_NOT_FOUND',
|
|
17
|
+
message: 'Entity not found',
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
throw err;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=get-entity.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-entity.controller.js","sourceRoot":"","sources":["../../../controllers/entity/get-entity.controller.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,aAAa,CAAC;AAGrC,MAAM,OAAO,mBAAmB;IACV;IAApB,YAAoB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAE1D,UAAU,GAA0C,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,MAGpC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAClD,UAAU,EACV,QAAQ,CACT,CAAC;YAEF,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAAW,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBAChD,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;oBAC3C,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,kBAAkB;iBAC5B,CAAC,CAAC;YACL,CAAC;YAED,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;CACH"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Request, Response } from 'express';
|
|
2
|
+
import type { EntityRepository } from '../../data/Entity';
|
|
3
|
+
export declare class ListEntitiesController {
|
|
4
|
+
private entityRepository;
|
|
5
|
+
constructor(entityRepository: EntityRepository);
|
|
6
|
+
controller: (req: Request, res: Response) => void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=list-entities.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-entities.controller.d.ts","sourceRoot":"","sources":["../../../controllers/entity/list-entities.controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAY1D,qBAAa,sBAAsB;IACrB,OAAO,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,gBAAgB;IAEtD,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CAiD/C;CACH"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { fromLastKeyQuery } from '../../helpers/fromLastKeyQuery';
|
|
3
|
+
import { toLastKeyResponse } from '../../helpers/toLastKeyResponse';
|
|
4
|
+
const querySchema = z.object({
|
|
5
|
+
limit: z.string().optional(),
|
|
6
|
+
lastKey: z.string().optional(),
|
|
7
|
+
query: z.string().trim().optional(),
|
|
8
|
+
start: z.string().optional(),
|
|
9
|
+
end: z.string().optional(),
|
|
10
|
+
});
|
|
11
|
+
export class ListEntitiesController {
|
|
12
|
+
entityRepository;
|
|
13
|
+
constructor(entityRepository) {
|
|
14
|
+
this.entityRepository = entityRepository;
|
|
15
|
+
}
|
|
16
|
+
controller = async (req, res) => {
|
|
17
|
+
const errorContext = {};
|
|
18
|
+
try {
|
|
19
|
+
const accountId = req.headers['account-id'] || '';
|
|
20
|
+
if (Array.isArray(accountId)) {
|
|
21
|
+
throw new Error('multiple account-id detected');
|
|
22
|
+
}
|
|
23
|
+
errorContext.accountId = accountId;
|
|
24
|
+
errorContext.params = req.params;
|
|
25
|
+
errorContext.query = req.query;
|
|
26
|
+
const { entityType } = req.params;
|
|
27
|
+
const { lastKey, query, limit, start, end } = querySchema.parse(req.query);
|
|
28
|
+
if (query) {
|
|
29
|
+
const results = await this.entityRepository.queryEntities(entityType, query);
|
|
30
|
+
return res.json({
|
|
31
|
+
data: results.items.map((item) => item.toJSON()),
|
|
32
|
+
totalCount: results.totalCount,
|
|
33
|
+
filteredCount: results.filteredCount,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
const results = await this.entityRepository.listEntities({
|
|
37
|
+
entityType,
|
|
38
|
+
limit: Number(limit),
|
|
39
|
+
options: {
|
|
40
|
+
lastKey: fromLastKeyQuery(lastKey),
|
|
41
|
+
},
|
|
42
|
+
...(start && end ? { between: { start, end } } : {}),
|
|
43
|
+
});
|
|
44
|
+
return res.json({
|
|
45
|
+
data: results.items.map((item) => item.toJSON()),
|
|
46
|
+
totalCount: results.totalCount,
|
|
47
|
+
lastKey: toLastKeyResponse(results.lastKey),
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
console.log({ error, errorContext });
|
|
52
|
+
return res.status(500).json({ message: error });
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=list-entities.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-entities.controller.js","sourceRoot":"","sources":["../../../controllers/entity/list-entities.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC3B,CAAC,CAAC;AAEH,MAAM,OAAO,sBAAsB;IACb;IAApB,YAAoB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAE1D,UAAU,GAA0C,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrE,MAAM,YAAY,GAA2B,EAAE,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAClD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YAED,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC;YACnC,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YACjC,YAAY,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YAE/B,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAE1B,CAAC;YAEF,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC,KAAK,CAC7D,GAAG,CAAC,KAAK,CACV,CAAC;YACF,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CACvD,UAAU,EACV,KAAK,CACN,CAAC;gBAEF,OAAO,GAAG,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChD,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;iBACrC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;gBACvD,UAAU;gBACV,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;gBACpB,OAAO,EAAE;oBACP,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC;iBACnC;gBACD,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrD,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChD,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;YACrC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC;CACH"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Request, Response } from 'express';
|
|
2
|
+
import type { EntityService } from '../../services/entity.service';
|
|
3
|
+
export declare class UpdateEntityController {
|
|
4
|
+
private entityService;
|
|
5
|
+
constructor(entityService: EntityService);
|
|
6
|
+
controller: (req: Request, res: Response) => void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=update-entity.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-entity.controller.d.ts","sourceRoot":"","sources":["../../../controllers/entity/update-entity.controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,qBAAa,sBAAsB;IACrB,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CA4C/C;CACH"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import httpStatus from 'http-status';
|
|
2
|
+
import { ZodError } from 'zod';
|
|
3
|
+
import { StandardError } from '../../errors/standard-error';
|
|
4
|
+
export class UpdateEntityController {
|
|
5
|
+
entityService;
|
|
6
|
+
constructor(entityService) {
|
|
7
|
+
this.entityService = entityService;
|
|
8
|
+
}
|
|
9
|
+
controller = async (req, res) => {
|
|
10
|
+
const accountId = req.headers['account-id'];
|
|
11
|
+
const { entityType, entityId } = req.params;
|
|
12
|
+
const errorContext = {
|
|
13
|
+
accountId,
|
|
14
|
+
'req.params': req.params,
|
|
15
|
+
'req.body': req.body,
|
|
16
|
+
};
|
|
17
|
+
try {
|
|
18
|
+
const entity = await this.entityService.updateEntity({
|
|
19
|
+
entityType,
|
|
20
|
+
entityId,
|
|
21
|
+
entityPayload: req.body,
|
|
22
|
+
accountId,
|
|
23
|
+
});
|
|
24
|
+
errorContext.entity = entity;
|
|
25
|
+
return res.status(httpStatus.OK).json(entity);
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
if (err instanceof ZodError) {
|
|
29
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
30
|
+
code: 'API_VALIDATION_ERROR',
|
|
31
|
+
message: 'API validation failed',
|
|
32
|
+
details: err.flatten(),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
if (err instanceof StandardError && err.code === 'ENTITY_NOT_FOUND') {
|
|
36
|
+
return res.status(httpStatus.NOT_FOUND).json({
|
|
37
|
+
...err.toJSON(),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
console.log('====UPDATE_ENTITY_CONTROLLER_ERROR', err, JSON.stringify({ errorContext }, null, 2));
|
|
41
|
+
throw err;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=update-entity.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-entity.controller.js","sourceRoot":"","sources":["../../../controllers/entity/update-entity.controller.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,OAAO,sBAAsB;IACb;IAApB,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEpD,UAAU,GAA0C,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrE,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,MAGpC,CAAC;QACF,MAAM,YAAY,GAAQ;YACxB,SAAS;YACT,YAAY,EAAE,GAAG,CAAC,MAAM;YACxB,UAAU,EAAE,GAAG,CAAC,IAAI;SACrB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;gBACnD,UAAU;gBACV,QAAQ;gBACR,aAAa,EAAE,GAAG,CAAC,IAAI;gBACvB,SAAS;aACV,CAAC,CAAC;YACH,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC;YAE7B,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;gBAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;oBAC7C,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,uBAAuB;oBAChC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;iBACvB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACpE,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;oBAC3C,GAAG,GAAG,CAAC,MAAM,EAAE;iBAChB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,CAAC,GAAG,CACT,oCAAoC,EACpC,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC1C,CAAC;YACF,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;CACH"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Entity, createEntityConfig } from '@monorise/base';
|
|
2
|
+
import type { Request, Response } from 'express';
|
|
3
|
+
import type { EntityRepository } from '../../data/Entity';
|
|
4
|
+
import type { publishEvent as publishEventType } from '../../helpers/event';
|
|
5
|
+
export declare class UpsertEntityController {
|
|
6
|
+
private EntityConfig;
|
|
7
|
+
private entityRepository;
|
|
8
|
+
private publishEvent;
|
|
9
|
+
constructor(EntityConfig: Record<Entity, ReturnType<typeof createEntityConfig>>, entityRepository: EntityRepository, publishEvent: typeof publishEventType);
|
|
10
|
+
controller: (req: Request, res: Response) => void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=upsert-entity.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upsert-entity.controller.d.ts","sourceRoot":"","sources":["../../../controllers/entity/upsert-entity.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5E,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,YAAY;gBAFZ,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,EACnE,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,OAAO,gBAAgB;IAG/C,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CA+E/C;CACH"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import httpStatus from 'http-status';
|
|
2
|
+
import { ZodError } from 'zod';
|
|
3
|
+
import { StandardError } from '../../errors/standard-error';
|
|
4
|
+
import { EVENT } from '../../types/event';
|
|
5
|
+
export class UpsertEntityController {
|
|
6
|
+
EntityConfig;
|
|
7
|
+
entityRepository;
|
|
8
|
+
publishEvent;
|
|
9
|
+
constructor(EntityConfig, entityRepository, publishEvent) {
|
|
10
|
+
this.EntityConfig = EntityConfig;
|
|
11
|
+
this.entityRepository = entityRepository;
|
|
12
|
+
this.publishEvent = publishEvent;
|
|
13
|
+
}
|
|
14
|
+
controller = async (req, res) => {
|
|
15
|
+
const accountId = req.headers['account-id'];
|
|
16
|
+
const { entityType, entityId } = req.params;
|
|
17
|
+
try {
|
|
18
|
+
const entitySchema = this.EntityConfig[entityType].createSchema ||
|
|
19
|
+
this.EntityConfig[entityType].baseSchema;
|
|
20
|
+
const mutualSchema = this.EntityConfig[entityType].mutual?.mutualSchema;
|
|
21
|
+
if (!entitySchema || !mutualSchema) {
|
|
22
|
+
throw new StandardError('Invalid entity type', 'INVALID_ENTITY_TYPE');
|
|
23
|
+
}
|
|
24
|
+
const parsedEntityPayload = entitySchema.parse(req.body);
|
|
25
|
+
const parsedMutualPayload = mutualSchema.parse(req.body);
|
|
26
|
+
const entity = await this.entityRepository.upsertEntity(entityType, entityId, parsedEntityPayload);
|
|
27
|
+
if (parsedMutualPayload) {
|
|
28
|
+
const byEntityType = entityType;
|
|
29
|
+
const byEntityId = entity.entityId;
|
|
30
|
+
const publishEventPromises = [];
|
|
31
|
+
for (const [fieldKey, config] of Object.entries(this.EntityConfig[entityType].mutual?.mutualFields || {})) {
|
|
32
|
+
publishEventPromises.push(this.publishEvent({
|
|
33
|
+
event: EVENT.CORE.ENTITY_MUTUAL_TO_UPDATE,
|
|
34
|
+
payload: {
|
|
35
|
+
byEntityType,
|
|
36
|
+
byEntityId,
|
|
37
|
+
entityType: config.entityType,
|
|
38
|
+
field: fieldKey,
|
|
39
|
+
mutualIds: parsedMutualPayload[fieldKey],
|
|
40
|
+
publishedAt: entity.updatedAt || new Date().toISOString(),
|
|
41
|
+
},
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
await Promise.allSettled(publishEventPromises);
|
|
45
|
+
}
|
|
46
|
+
await this.publishEvent({
|
|
47
|
+
event: EVENT.CORE.ENTITY_UPSERTED,
|
|
48
|
+
payload: {
|
|
49
|
+
entityType,
|
|
50
|
+
entityId: entity.entityId,
|
|
51
|
+
payload: req.body,
|
|
52
|
+
createdByAccountId: accountId,
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
return res.status(httpStatus.OK).json(entity);
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
if (err instanceof ZodError) {
|
|
59
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
60
|
+
code: 'API_VALIDATION_ERROR',
|
|
61
|
+
message: 'API validation failed',
|
|
62
|
+
details: err.flatten(),
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
if (err instanceof StandardError && err.code === 'EMAIL_EXISTS') {
|
|
66
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
67
|
+
...err.toJSON(),
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
throw err;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=upsert-entity.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upsert-entity.controller.js","sourceRoot":"","sources":["../../../controllers/entity/upsert-entity.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Request, Response } from 'express';
|
|
2
|
+
import type { MutualService } from '../../services/mutual.service';
|
|
3
|
+
export declare class CreateMutualController {
|
|
4
|
+
private mutualService;
|
|
5
|
+
constructor(mutualService: MutualService);
|
|
6
|
+
controller: (req: Request, res: Response) => void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=create-mutual.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-mutual.controller.d.ts","sourceRoot":"","sources":["../../../controllers/mutual/create-mutual.controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,qBAAa,sBAAsB;IACrB,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CAiD/C;CACH"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import httpStatus from 'http-status';
|
|
2
|
+
import { ZodError } from 'zod';
|
|
3
|
+
import { StandardError } from '../../errors/standard-error';
|
|
4
|
+
export class CreateMutualController {
|
|
5
|
+
mutualService;
|
|
6
|
+
constructor(mutualService) {
|
|
7
|
+
this.mutualService = mutualService;
|
|
8
|
+
}
|
|
9
|
+
controller = async (req, res) => {
|
|
10
|
+
const accountId = req.headers['account-id'];
|
|
11
|
+
const { byEntityType, byEntityId, entityType, entityId } = req.params;
|
|
12
|
+
const { asEntity } = req.query;
|
|
13
|
+
try {
|
|
14
|
+
const { mutual, eventPayload } = await this.mutualService.createMutual({
|
|
15
|
+
byEntityType,
|
|
16
|
+
byEntityId,
|
|
17
|
+
entityType,
|
|
18
|
+
entityId,
|
|
19
|
+
mutualPayload: req.body,
|
|
20
|
+
accountId,
|
|
21
|
+
options: {
|
|
22
|
+
asEntity: asEntity,
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
return res.status(httpStatus.OK).json(mutual);
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
if (err instanceof ZodError) {
|
|
29
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
30
|
+
code: 'API_VALIDATION_ERROR',
|
|
31
|
+
message: 'API validation failed',
|
|
32
|
+
details: err.flatten(),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
if (err instanceof StandardError && err.code === 'MUTUAL_EXISTS') {
|
|
36
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
37
|
+
...err.toJSON(),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
if (err instanceof StandardError && err.code === 'ENTITY_IS_UNDEFINED') {
|
|
41
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
42
|
+
...err.toJSON(),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
throw err;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=create-mutual.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-mutual.controller.js","sourceRoot":"","sources":["../../../controllers/mutual/create-mutual.controller.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,OAAO,sBAAsB;IACb;IAApB,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEpD,UAAU,GAA0C,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrE,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,GACtD,GAAG,CAAC,MAKH,CAAC;QAEJ,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;gBACrE,YAAY;gBACZ,UAAU;gBACV,UAAU;gBACV,QAAQ;gBACR,aAAa,EAAE,GAAG,CAAC,IAAI;gBACvB,SAAS;gBACT,OAAO,EAAE;oBACP,QAAQ,EAAE,QAAiC;iBAC5C;aACF,CAAC,CAAC;YAEH,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;gBAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;oBAC7C,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,uBAAuB;oBAChC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;iBACvB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACjE,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;oBAC7C,GAAG,GAAG,CAAC,MAAM,EAAE;iBAChB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBACvE,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;oBAC7C,GAAG,GAAG,CAAC,MAAM,EAAE;iBAChB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;CACH"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Request, Response } from 'express';
|
|
2
|
+
import type { MutualService } from '../../services/mutual.service';
|
|
3
|
+
export declare class DeleteMutualController {
|
|
4
|
+
private mutualService;
|
|
5
|
+
constructor(mutualService: MutualService);
|
|
6
|
+
controller: (req: Request, res: Response) => void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=delete-mutual.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-mutual.controller.d.ts","sourceRoot":"","sources":["../../../controllers/mutual/delete-mutual.controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,qBAAa,sBAAsB;IACrB,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CA6B/C;CACH"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import httpStatus from 'http-status';
|
|
2
|
+
import { StandardError } from '../../errors/standard-error';
|
|
3
|
+
export class DeleteMutualController {
|
|
4
|
+
mutualService;
|
|
5
|
+
constructor(mutualService) {
|
|
6
|
+
this.mutualService = mutualService;
|
|
7
|
+
}
|
|
8
|
+
controller = async (req, res) => {
|
|
9
|
+
const accountId = req.headers['account-id'];
|
|
10
|
+
const { byEntityType, byEntityId, entityType, entityId } = req.params;
|
|
11
|
+
try {
|
|
12
|
+
const mutual = await this.mutualService.deleteMutual({
|
|
13
|
+
byEntityType,
|
|
14
|
+
byEntityId,
|
|
15
|
+
entityType,
|
|
16
|
+
entityId,
|
|
17
|
+
accountId,
|
|
18
|
+
});
|
|
19
|
+
return res.json(mutual);
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
if (err instanceof StandardError && err.code === 'MUTUAL_NOT_FOUND') {
|
|
23
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
24
|
+
...err.toJSON(),
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
throw err;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=delete-mutual.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-mutual.controller.js","sourceRoot":"","sources":["../../../controllers/mutual/delete-mutual.controller.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,OAAO,sBAAsB;IACb;IAApB,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEpD,UAAU,GAA0C,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrE,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,GACtD,GAAG,CAAC,MAKH,CAAC;QAEJ,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;gBACnD,YAAY;gBACZ,UAAU;gBACV,UAAU;gBACV,QAAQ;gBACR,SAAS;aACV,CAAC,CAAC;YAEH,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACpE,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;oBAC7C,GAAG,GAAG,CAAC,MAAM,EAAE;iBAChB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;CACH"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Request, Response } from 'express';
|
|
2
|
+
import type { MutualRepository } from '../../data/Mutual';
|
|
3
|
+
export declare class GetMutualController {
|
|
4
|
+
private associateRepository;
|
|
5
|
+
constructor(associateRepository: MutualRepository);
|
|
6
|
+
controller: (req: Request, res: Response) => void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=get-mutual.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-mutual.controller.d.ts","sourceRoot":"","sources":["../../../controllers/mutual/get-mutual.controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,qBAAa,mBAAmB;IAClB,OAAO,CAAC,mBAAmB;gBAAnB,mBAAmB,EAAE,gBAAgB;IAEzD,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CA4B/C;CACH"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import httpStatus from 'http-status';
|
|
2
|
+
export class GetMutualController {
|
|
3
|
+
associateRepository;
|
|
4
|
+
constructor(associateRepository) {
|
|
5
|
+
this.associateRepository = associateRepository;
|
|
6
|
+
}
|
|
7
|
+
controller = async (req, res) => {
|
|
8
|
+
const { byEntityType, byEntityId, entityType, entityId } = req.params;
|
|
9
|
+
try {
|
|
10
|
+
const associate = await this.associateRepository.getMutual(byEntityType, byEntityId, entityType, entityId);
|
|
11
|
+
return res.status(httpStatus.OK).json(associate);
|
|
12
|
+
}
|
|
13
|
+
catch (err) {
|
|
14
|
+
if (err.code === 'MUTUAL_IS_UNDEFINED') {
|
|
15
|
+
return res.status(httpStatus.NOT_FOUND).json({
|
|
16
|
+
code: 'MUTUAL_NOT_FOUND',
|
|
17
|
+
message: 'Mutual not found',
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
throw err;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=get-mutual.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-mutual.controller.js","sourceRoot":"","sources":["../../../controllers/mutual/get-mutual.controller.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,aAAa,CAAC;AAGrC,MAAM,OAAO,mBAAmB;IACV;IAApB,YAAoB,mBAAqC;QAArC,wBAAmB,GAAnB,mBAAmB,CAAkB;IAAG,CAAC;IAE7D,UAAU,GAA0C,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,GACtD,GAAG,CAAC,MAKH,CAAC;QAEJ,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CACxD,YAAY,EACZ,UAAU,EACV,UAAU,EACV,QAAQ,CACT,CAAC;YAEF,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAAW,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBAChD,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;oBAC3C,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,kBAAkB;iBAC5B,CAAC,CAAC;YACL,CAAC;YAED,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;CACH"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Request, Response } from 'express';
|
|
2
|
+
import type { MutualRepository } from '../../data/Mutual';
|
|
3
|
+
export declare class ListEntitiesByEntityController {
|
|
4
|
+
private associateRepository;
|
|
5
|
+
constructor(associateRepository: MutualRepository);
|
|
6
|
+
controller: (req: Request, res: Response) => void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=list-entities-by-entity.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-entities-by-entity.controller.d.ts","sourceRoot":"","sources":["../../../controllers/mutual/list-entities-by-entity.controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGjD,OAAO,KAAK,EAAU,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAElE,qBAAa,8BAA8B;IAC7B,OAAO,CAAC,mBAAmB;gBAAnB,mBAAmB,EAAE,gBAAgB;IAEzD,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CAiE/C;CACH"}
|