@monorise/core 1.0.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/configs/service.config.ts +14 -0
- package/constants/table.ts +3 -0
- package/controllers/entity/create-entity.controller.ts +51 -0
- package/controllers/entity/delete-entity.controller.ts +35 -0
- package/controllers/entity/entity.http +62 -0
- package/controllers/entity/get-entity.controller.ts +33 -0
- package/controllers/entity/list-entities.controller.ts +69 -0
- package/controllers/entity/update-entity.controller.ts +56 -0
- package/controllers/entity/upsert-entity.controller.ts +97 -0
- package/controllers/mutual/create-mutual.controller.ts +89 -0
- package/controllers/mutual/delete-mutual.controller.ts +40 -0
- package/controllers/mutual/get-mutual.controller.ts +38 -0
- package/controllers/mutual/list-entities-by-entity.controller.ts +76 -0
- package/controllers/mutual/mutual.http +88 -0
- package/controllers/mutual/update-mutual.controller.ts +50 -0
- package/controllers/setupRoutes.ts +73 -0
- package/controllers/tag/list-tags.controller.ts +57 -0
- package/data/DbUtils.ts +40 -0
- package/data/Entity.ts +499 -0
- package/data/EventUtils.ts +47 -0
- package/data/FileObject.ts +16 -0
- package/data/Mutual.ts +779 -0
- package/data/ProjectionExpression.ts +8 -0
- package/data/Tag.ts +470 -0
- package/data/abstract/Item.base.ts +19 -0
- package/data/abstract/Repository.base.ts +92 -0
- 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 +10 -0
- package/dist/controllers/entity/upsert-entity.controller.d.ts.map +1 -0
- package/dist/controllers/entity/upsert-entity.controller.js +73 -0
- package/dist/controllers/entity/upsert-entity.controller.js.map +1 -0
- package/dist/controllers/mutual/create-mutual.controller.d.ts +10 -0
- package/dist/controllers/mutual/create-mutual.controller.d.ts.map +1 -0
- package/dist/controllers/mutual/create-mutual.controller.js +70 -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 +4 -0
- package/dist/controllers/setupRoutes.d.ts.map +1 -0
- package/dist/controllers/setupRoutes.js +31 -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 +71 -0
- package/dist/data/Entity.d.ts.map +1 -0
- package/dist/data/Entity.js +358 -0
- package/dist/data/Entity.js.map +1 -0
- package/dist/data/EventUtils.d.ts +14 -0
- package/dist/data/EventUtils.d.ts.map +1 -0
- package/dist/data/EventUtils.js +34 -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 +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/middlewares/entity-type-check.d.ts +3 -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 +3 -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/container.d.ts +3 -0
- package/dist/mock/container.d.ts.map +1 -0
- package/dist/mock/container.js +3 -0
- package/dist/mock/container.js.map +1 -0
- package/dist/mock/entity.d.ts +13 -0
- package/dist/mock/entity.d.ts.map +1 -0
- package/dist/mock/entity.js +14 -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 +29 -0
- package/dist/mock/monorise/admin.js.map +1 -0
- package/dist/mock/monorise/chapter.d.ts +457 -0
- package/dist/mock/monorise/chapter.d.ts.map +1 -0
- package/dist/mock/monorise/chapter.js +81 -0
- package/dist/mock/monorise/chapter.js.map +1 -0
- package/dist/mock/monorise/course.d.ts +311 -0
- package/dist/mock/monorise/course.d.ts.map +1 -0
- package/dist/mock/monorise/course.js +128 -0
- package/dist/mock/monorise/course.js.map +1 -0
- package/dist/mock/monorise/index.d.ts +3599 -0
- package/dist/mock/monorise/index.d.ts.map +1 -0
- package/dist/mock/monorise/index.js +62 -0
- package/dist/mock/monorise/index.js.map +1 -0
- package/dist/mock/monorise/learner.d.ts +390 -0
- package/dist/mock/monorise/learner.d.ts.map +1 -0
- package/dist/mock/monorise/learner.js +59 -0
- package/dist/mock/monorise/learner.js.map +1 -0
- package/dist/mock/monorise/learning-activity.d.ts +266 -0
- package/dist/mock/monorise/learning-activity.d.ts.map +1 -0
- package/dist/mock/monorise/learning-activity.js +50 -0
- package/dist/mock/monorise/learning-activity.js.map +1 -0
- package/dist/mock/monorise/learning-journey-config.d.ts +84 -0
- package/dist/mock/monorise/learning-journey-config.d.ts.map +1 -0
- package/dist/mock/monorise/learning-journey-config.js +27 -0
- package/dist/mock/monorise/learning-journey-config.js.map +1 -0
- package/dist/mock/monorise/module.d.ts +211 -0
- package/dist/mock/monorise/module.d.ts.map +1 -0
- package/dist/mock/monorise/module.js +91 -0
- package/dist/mock/monorise/module.js.map +1 -0
- package/dist/mock/monorise/organization.d.ts +346 -0
- package/dist/mock/monorise/organization.d.ts.map +1 -0
- package/dist/mock/monorise/organization.js +54 -0
- package/dist/mock/monorise/organization.js.map +1 -0
- package/dist/mock/monorise/reference.d.ts +171 -0
- package/dist/mock/monorise/reference.d.ts.map +1 -0
- package/dist/mock/monorise/reference.js +25 -0
- package/dist/mock/monorise/reference.js.map +1 -0
- package/dist/mock/monorise/video.d.ts +346 -0
- package/dist/mock/monorise/video.d.ts.map +1 -0
- package/dist/mock/monorise/video.js +33 -0
- package/dist/mock/monorise/video.js.map +1 -0
- package/dist/packages/core/configs/service.config.d.ts +5 -0
- package/dist/packages/core/configs/service.config.d.ts.map +1 -0
- package/dist/packages/core/configs/service.config.js +5 -0
- package/dist/packages/core/configs/service.config.js.map +1 -0
- package/dist/packages/core/constants/table.d.ts +4 -0
- package/dist/packages/core/constants/table.d.ts.map +1 -0
- package/dist/packages/core/constants/table.js +4 -0
- package/dist/packages/core/constants/table.js.map +1 -0
- package/dist/packages/core/controllers/entity/create-entity.controller.d.ts +8 -0
- package/dist/packages/core/controllers/entity/create-entity.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/entity/create-entity.controller.js +44 -0
- package/dist/packages/core/controllers/entity/create-entity.controller.js.map +1 -0
- package/dist/packages/core/controllers/entity/delete-entity.controller.d.ts +8 -0
- package/dist/packages/core/controllers/entity/delete-entity.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/entity/delete-entity.controller.js +29 -0
- package/dist/packages/core/controllers/entity/delete-entity.controller.js.map +1 -0
- package/dist/packages/core/controllers/entity/get-entity.controller.d.ts +8 -0
- package/dist/packages/core/controllers/entity/get-entity.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/entity/get-entity.controller.js +24 -0
- package/dist/packages/core/controllers/entity/get-entity.controller.js.map +1 -0
- package/dist/packages/core/controllers/entity/list-entities.controller.d.ts +8 -0
- package/dist/packages/core/controllers/entity/list-entities.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/entity/list-entities.controller.js +56 -0
- package/dist/packages/core/controllers/entity/list-entities.controller.js.map +1 -0
- package/dist/packages/core/controllers/entity/update-entity.controller.d.ts +8 -0
- package/dist/packages/core/controllers/entity/update-entity.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/entity/update-entity.controller.js +45 -0
- package/dist/packages/core/controllers/entity/update-entity.controller.js.map +1 -0
- package/dist/packages/core/controllers/entity/upsert-entity.controller.d.ts +10 -0
- package/dist/packages/core/controllers/entity/upsert-entity.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/entity/upsert-entity.controller.js +73 -0
- package/dist/packages/core/controllers/entity/upsert-entity.controller.js.map +1 -0
- package/dist/packages/core/controllers/mutual/create-mutual.controller.d.ts +10 -0
- package/dist/packages/core/controllers/mutual/create-mutual.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/mutual/create-mutual.controller.js +70 -0
- package/dist/packages/core/controllers/mutual/create-mutual.controller.js.map +1 -0
- package/dist/packages/core/controllers/mutual/delete-mutual.controller.d.ts +8 -0
- package/dist/packages/core/controllers/mutual/delete-mutual.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/mutual/delete-mutual.controller.js +31 -0
- package/dist/packages/core/controllers/mutual/delete-mutual.controller.js.map +1 -0
- package/dist/packages/core/controllers/mutual/get-mutual.controller.d.ts +8 -0
- package/dist/packages/core/controllers/mutual/get-mutual.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/mutual/get-mutual.controller.js +24 -0
- package/dist/packages/core/controllers/mutual/get-mutual.controller.js.map +1 -0
- package/dist/packages/core/controllers/mutual/list-entities-by-entity.controller.d.ts +8 -0
- package/dist/packages/core/controllers/mutual/list-entities-by-entity.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/mutual/list-entities-by-entity.controller.js +56 -0
- package/dist/packages/core/controllers/mutual/list-entities-by-entity.controller.js.map +1 -0
- package/dist/packages/core/controllers/mutual/update-mutual.controller.d.ts +8 -0
- package/dist/packages/core/controllers/mutual/update-mutual.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/mutual/update-mutual.controller.js +40 -0
- package/dist/packages/core/controllers/mutual/update-mutual.controller.js.map +1 -0
- package/dist/packages/core/controllers/setupRoutes.d.ts +3 -0
- package/dist/packages/core/controllers/setupRoutes.d.ts.map +1 -0
- package/dist/packages/core/controllers/setupRoutes.js +33 -0
- package/dist/packages/core/controllers/setupRoutes.js.map +1 -0
- package/dist/packages/core/controllers/tag/list-tags.controller.d.ts +8 -0
- package/dist/packages/core/controllers/tag/list-tags.controller.d.ts.map +1 -0
- package/dist/packages/core/controllers/tag/list-tags.controller.js +48 -0
- package/dist/packages/core/controllers/tag/list-tags.controller.js.map +1 -0
- package/dist/packages/core/data/DbUtils.d.ts +7 -0
- package/dist/packages/core/data/DbUtils.d.ts.map +1 -0
- package/dist/packages/core/data/DbUtils.js +23 -0
- package/dist/packages/core/data/DbUtils.js.map +1 -0
- package/dist/packages/core/data/Entity.d.ts +71 -0
- package/dist/packages/core/data/Entity.d.ts.map +1 -0
- package/dist/packages/core/data/Entity.js +358 -0
- package/dist/packages/core/data/Entity.js.map +1 -0
- package/dist/packages/core/data/EventUtils.d.ts +14 -0
- package/dist/packages/core/data/EventUtils.d.ts.map +1 -0
- package/dist/packages/core/data/EventUtils.js +34 -0
- package/dist/packages/core/data/EventUtils.js.map +1 -0
- package/dist/packages/core/data/FileObject.d.ts +62 -0
- package/dist/packages/core/data/FileObject.d.ts.map +1 -0
- package/dist/packages/core/data/FileObject.js +13 -0
- package/dist/packages/core/data/FileObject.js.map +1 -0
- package/dist/packages/core/data/Mutual.d.ts +94 -0
- package/dist/packages/core/data/Mutual.d.ts.map +1 -0
- package/dist/packages/core/data/Mutual.js +492 -0
- package/dist/packages/core/data/Mutual.js.map +1 -0
- package/dist/packages/core/data/ProjectionExpression.d.ts +6 -0
- package/dist/packages/core/data/ProjectionExpression.d.ts.map +1 -0
- package/dist/packages/core/data/ProjectionExpression.js +5 -0
- package/dist/packages/core/data/ProjectionExpression.js.map +1 -0
- package/dist/packages/core/data/Tag.d.ts +77 -0
- package/dist/packages/core/data/Tag.d.ts.map +1 -0
- package/dist/packages/core/data/Tag.js +330 -0
- package/dist/packages/core/data/Tag.js.map +1 -0
- package/dist/packages/core/data/abstract/Item.base.d.ts +11 -0
- package/dist/packages/core/data/abstract/Item.base.d.ts.map +1 -0
- package/dist/packages/core/data/abstract/Item.base.js +9 -0
- package/dist/packages/core/data/abstract/Item.base.js.map +1 -0
- package/dist/packages/core/data/abstract/Repository.base.d.ts +11 -0
- package/dist/packages/core/data/abstract/Repository.base.d.ts.map +1 -0
- package/dist/packages/core/data/abstract/Repository.base.js +54 -0
- package/dist/packages/core/data/abstract/Repository.base.js.map +1 -0
- package/dist/packages/core/errors/api-error.d.ts +23 -0
- package/dist/packages/core/errors/api-error.d.ts.map +1 -0
- package/dist/packages/core/errors/api-error.js +26 -0
- package/dist/packages/core/errors/api-error.js.map +1 -0
- package/dist/packages/core/errors/extendable-error.d.ts +18 -0
- package/dist/packages/core/errors/extendable-error.d.ts.map +1 -0
- package/dist/packages/core/errors/extendable-error.js +22 -0
- package/dist/packages/core/errors/extendable-error.js.map +1 -0
- package/dist/packages/core/errors/standard-error.d.ts +11 -0
- package/dist/packages/core/errors/standard-error.d.ts.map +1 -0
- package/dist/packages/core/errors/standard-error.js +21 -0
- package/dist/packages/core/errors/standard-error.js.map +1 -0
- package/dist/packages/core/helpers/dependencies.d.ts +8 -0
- package/dist/packages/core/helpers/dependencies.d.ts.map +1 -0
- package/dist/packages/core/helpers/dependencies.js +10 -0
- package/dist/packages/core/helpers/dependencies.js.map +1 -0
- package/dist/packages/core/helpers/event.d.ts +22 -0
- package/dist/packages/core/helpers/event.d.ts.map +1 -0
- package/dist/packages/core/helpers/event.js +47 -0
- package/dist/packages/core/helpers/event.js.map +1 -0
- package/dist/packages/core/helpers/fromLastKeyQuery.d.ts +3 -0
- package/dist/packages/core/helpers/fromLastKeyQuery.d.ts.map +1 -0
- package/dist/packages/core/helpers/fromLastKeyQuery.js +7 -0
- package/dist/packages/core/helpers/fromLastKeyQuery.js.map +1 -0
- package/dist/packages/core/helpers/sleep.d.ts +2 -0
- package/dist/packages/core/helpers/sleep.d.ts.map +1 -0
- package/dist/packages/core/helpers/sleep.js +2 -0
- package/dist/packages/core/helpers/sleep.js.map +1 -0
- package/dist/packages/core/helpers/toLastKeyResponse.d.ts +3 -0
- package/dist/packages/core/helpers/toLastKeyResponse.d.ts.map +1 -0
- package/dist/packages/core/helpers/toLastKeyResponse.js +7 -0
- package/dist/packages/core/helpers/toLastKeyResponse.js.map +1 -0
- package/dist/packages/core/index.d.ts +12 -0
- package/dist/packages/core/index.d.ts.map +1 -0
- package/dist/packages/core/index.js +12 -0
- package/dist/packages/core/index.js.map +1 -0
- package/dist/packages/core/middlewares/entity-type-check.d.ts +3 -0
- package/dist/packages/core/middlewares/entity-type-check.d.ts.map +1 -0
- package/dist/packages/core/middlewares/entity-type-check.js +12 -0
- package/dist/packages/core/middlewares/entity-type-check.js.map +1 -0
- package/dist/packages/core/middlewares/mutual-type-check.d.ts +3 -0
- package/dist/packages/core/middlewares/mutual-type-check.d.ts.map +1 -0
- package/dist/packages/core/middlewares/mutual-type-check.js +13 -0
- package/dist/packages/core/middlewares/mutual-type-check.js.map +1 -0
- package/dist/packages/core/mock/container.d.ts +3 -0
- package/dist/packages/core/mock/container.d.ts.map +1 -0
- package/dist/packages/core/mock/container.js +3 -0
- package/dist/packages/core/mock/container.js.map +1 -0
- package/dist/packages/core/mock/entity.d.ts +13 -0
- package/dist/packages/core/mock/entity.d.ts.map +1 -0
- package/dist/packages/core/mock/entity.js +14 -0
- package/dist/packages/core/mock/entity.js.map +1 -0
- package/dist/packages/core/mock/monorise/admin.d.ts +127 -0
- package/dist/packages/core/mock/monorise/admin.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/admin.js +29 -0
- package/dist/packages/core/mock/monorise/admin.js.map +1 -0
- package/dist/packages/core/mock/monorise/audio.d.ts +324 -0
- package/dist/packages/core/mock/monorise/audio.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/audio.js +32 -0
- package/dist/packages/core/mock/monorise/audio.js.map +1 -0
- package/dist/packages/core/mock/monorise/chapter.d.ts +457 -0
- package/dist/packages/core/mock/monorise/chapter.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/chapter.js +81 -0
- package/dist/packages/core/mock/monorise/chapter.js.map +1 -0
- package/dist/packages/core/mock/monorise/cohort-track.d.ts +118 -0
- package/dist/packages/core/mock/monorise/cohort-track.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/cohort-track.js +38 -0
- package/dist/packages/core/mock/monorise/cohort-track.js.map +1 -0
- package/dist/packages/core/mock/monorise/course-banner.d.ts +149 -0
- package/dist/packages/core/mock/monorise/course-banner.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/course-banner.js +24 -0
- package/dist/packages/core/mock/monorise/course-banner.js.map +1 -0
- package/dist/packages/core/mock/monorise/course.d.ts +311 -0
- package/dist/packages/core/mock/monorise/course.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/course.js +128 -0
- package/dist/packages/core/mock/monorise/course.js.map +1 -0
- package/dist/packages/core/mock/monorise/expert.d.ts +380 -0
- package/dist/packages/core/mock/monorise/expert.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/expert.js +32 -0
- package/dist/packages/core/mock/monorise/expert.js.map +1 -0
- package/dist/packages/core/mock/monorise/index.d.ts +3599 -0
- package/dist/packages/core/mock/monorise/index.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/index.js +62 -0
- package/dist/packages/core/mock/monorise/index.js.map +1 -0
- package/dist/packages/core/mock/monorise/learner-video-progress.d.ts +198 -0
- package/dist/packages/core/mock/monorise/learner-video-progress.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/learner-video-progress.js +21 -0
- package/dist/packages/core/mock/monorise/learner-video-progress.js.map +1 -0
- package/dist/packages/core/mock/monorise/learner.d.ts +390 -0
- package/dist/packages/core/mock/monorise/learner.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/learner.js +59 -0
- package/dist/packages/core/mock/monorise/learner.js.map +1 -0
- package/dist/packages/core/mock/monorise/learning-activity-submission.d.ts +160 -0
- package/dist/packages/core/mock/monorise/learning-activity-submission.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/learning-activity-submission.js +17 -0
- package/dist/packages/core/mock/monorise/learning-activity-submission.js.map +1 -0
- package/dist/packages/core/mock/monorise/learning-activity.d.ts +266 -0
- package/dist/packages/core/mock/monorise/learning-activity.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/learning-activity.js +50 -0
- package/dist/packages/core/mock/monorise/learning-activity.js.map +1 -0
- package/dist/packages/core/mock/monorise/learning-journey-config.d.ts +84 -0
- package/dist/packages/core/mock/monorise/learning-journey-config.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/learning-journey-config.js +27 -0
- package/dist/packages/core/mock/monorise/learning-journey-config.js.map +1 -0
- package/dist/packages/core/mock/monorise/learning-journey-progress.d.ts +290 -0
- package/dist/packages/core/mock/monorise/learning-journey-progress.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/learning-journey-progress.js +46 -0
- package/dist/packages/core/mock/monorise/learning-journey-progress.js.map +1 -0
- package/dist/packages/core/mock/monorise/module.d.ts +211 -0
- package/dist/packages/core/mock/monorise/module.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/module.js +91 -0
- package/dist/packages/core/mock/monorise/module.js.map +1 -0
- package/dist/packages/core/mock/monorise/organization.d.ts +346 -0
- package/dist/packages/core/mock/monorise/organization.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/organization.js +54 -0
- package/dist/packages/core/mock/monorise/organization.js.map +1 -0
- package/dist/packages/core/mock/monorise/pathway.d.ts +267 -0
- package/dist/packages/core/mock/monorise/pathway.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/pathway.js +221 -0
- package/dist/packages/core/mock/monorise/pathway.js.map +1 -0
- package/dist/packages/core/mock/monorise/phase.d.ts +580 -0
- package/dist/packages/core/mock/monorise/phase.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/phase.js +166 -0
- package/dist/packages/core/mock/monorise/phase.js.map +1 -0
- package/dist/packages/core/mock/monorise/reference.d.ts +171 -0
- package/dist/packages/core/mock/monorise/reference.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/reference.js +25 -0
- package/dist/packages/core/mock/monorise/reference.js.map +1 -0
- package/dist/packages/core/mock/monorise/track.d.ts +617 -0
- package/dist/packages/core/mock/monorise/track.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/track.js +270 -0
- package/dist/packages/core/mock/monorise/track.js.map +1 -0
- package/dist/packages/core/mock/monorise/video.d.ts +346 -0
- package/dist/packages/core/mock/monorise/video.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise/video.js +33 -0
- package/dist/packages/core/mock/monorise/video.js.map +1 -0
- package/dist/packages/core/mock/monorise.d.ts +6 -0
- package/dist/packages/core/mock/monorise.d.ts.map +1 -0
- package/dist/packages/core/mock/monorise.js +5 -0
- package/dist/packages/core/mock/monorise.js.map +1 -0
- package/dist/packages/core/processors/create-entity-processor.d.ts +5 -0
- package/dist/packages/core/processors/create-entity-processor.d.ts.map +1 -0
- package/dist/packages/core/processors/create-entity-processor.js +32 -0
- package/dist/packages/core/processors/create-entity-processor.js.map +1 -0
- package/dist/packages/core/processors/mutual-processor.d.ts +15 -0
- package/dist/packages/core/processors/mutual-processor.d.ts.map +1 -0
- package/dist/packages/core/processors/mutual-processor.js +128 -0
- package/dist/packages/core/processors/mutual-processor.js.map +1 -0
- package/dist/packages/core/processors/prejoin-processor.d.ts +12 -0
- package/dist/packages/core/processors/prejoin-processor.d.ts.map +1 -0
- package/dist/packages/core/processors/prejoin-processor.js +150 -0
- package/dist/packages/core/processors/prejoin-processor.js.map +1 -0
- package/dist/packages/core/processors/replication-processor.d.ts +8 -0
- package/dist/packages/core/processors/replication-processor.d.ts.map +1 -0
- package/dist/packages/core/processors/replication-processor.js +180 -0
- package/dist/packages/core/processors/replication-processor.js.map +1 -0
- package/dist/packages/core/processors/tag-processor.d.ts +11 -0
- package/dist/packages/core/processors/tag-processor.d.ts.map +1 -0
- package/dist/packages/core/processors/tag-processor.js +106 -0
- package/dist/packages/core/processors/tag-processor.js.map +1 -0
- package/dist/packages/core/services/DependencyContainer.d.ts +51 -0
- package/dist/packages/core/services/DependencyContainer.d.ts.map +1 -0
- package/dist/packages/core/services/DependencyContainer.js +115 -0
- package/dist/packages/core/services/DependencyContainer.js.map +1 -0
- package/dist/packages/core/services/entity-service-lifecycle.d.ts +12 -0
- package/dist/packages/core/services/entity-service-lifecycle.d.ts.map +1 -0
- package/dist/packages/core/services/entity-service-lifecycle.js +23 -0
- package/dist/packages/core/services/entity-service-lifecycle.js.map +1 -0
- package/dist/packages/core/services/entity.service.d.ts +32 -0
- package/dist/packages/core/services/entity.service.d.ts.map +1 -0
- package/dist/packages/core/services/entity.service.js +121 -0
- package/dist/packages/core/services/entity.service.js.map +1 -0
- package/dist/packages/core/services/mutual.service.d.ts +64 -0
- package/dist/packages/core/services/mutual.service.d.ts.map +1 -0
- package/dist/packages/core/services/mutual.service.js +144 -0
- package/dist/packages/core/services/mutual.service.js.map +1 -0
- package/dist/packages/core/types/entity.type.d.ts +20 -0
- package/dist/packages/core/types/entity.type.d.ts.map +1 -0
- package/dist/packages/core/types/entity.type.js +2 -0
- package/dist/packages/core/types/entity.type.js.map +1 -0
- package/dist/processors/create-entity-processor.d.ts +5 -0
- package/dist/processors/create-entity-processor.d.ts.map +1 -0
- package/dist/processors/create-entity-processor.js +33 -0
- package/dist/processors/create-entity-processor.js.map +1 -0
- package/dist/processors/mutual-processor.d.ts +15 -0
- package/dist/processors/mutual-processor.d.ts.map +1 -0
- package/dist/processors/mutual-processor.js +129 -0
- package/dist/processors/mutual-processor.js.map +1 -0
- package/dist/processors/prejoin-processor.d.ts +12 -0
- package/dist/processors/prejoin-processor.d.ts.map +1 -0
- package/dist/processors/prejoin-processor.js +151 -0
- package/dist/processors/prejoin-processor.js.map +1 -0
- package/dist/processors/replication-processor.d.ts +8 -0
- package/dist/processors/replication-processor.d.ts.map +1 -0
- package/dist/processors/replication-processor.js +181 -0
- package/dist/processors/replication-processor.js.map +1 -0
- package/dist/processors/tag-processor.d.ts +11 -0
- package/dist/processors/tag-processor.d.ts.map +1 -0
- package/dist/processors/tag-processor.js +107 -0
- package/dist/processors/tag-processor.js.map +1 -0
- package/dist/services/DependencyContainer.d.ts +51 -0
- package/dist/services/DependencyContainer.d.ts.map +1 -0
- package/dist/services/DependencyContainer.js +115 -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 +23 -0
- package/dist/services/entity-service-lifecycle.js.map +1 -0
- package/dist/services/entity.service.d.ts +32 -0
- package/dist/services/entity.service.d.ts.map +1 -0
- package/dist/services/entity.service.js +121 -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 +144 -0
- package/dist/services/mutual.service.js.map +1 -0
- package/dist/shared/types/event.d.ts +72 -0
- package/dist/shared/types/event.d.ts.map +1 -0
- package/dist/shared/types/event.js +74 -0
- package/dist/shared/types/event.js.map +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/errors/api-error.ts +39 -0
- package/errors/extendable-error.ts +35 -0
- package/errors/standard-error.ts +29 -0
- package/helpers/dependencies.ts +10 -0
- package/helpers/event.ts +85 -0
- package/helpers/fromLastKeyQuery.ts +11 -0
- package/helpers/sleep.ts +1 -0
- package/helpers/toLastKeyResponse.ts +11 -0
- package/index.ts +23 -0
- package/middlewares/entity-type-check.ts +20 -0
- package/middlewares/mutual-type-check.ts +26 -0
- package/mock/entity.ts +12 -0
- package/mock/monorise/admin.ts +35 -0
- package/mock/monorise/chapter.ts +94 -0
- package/mock/monorise/course.ts +149 -0
- package/mock/monorise/index.ts +143 -0
- package/mock/monorise/learner.ts +66 -0
- package/mock/monorise/learning-activity.ts +62 -0
- package/mock/monorise/learning-journey-config.ts +34 -0
- package/mock/monorise/module.ts +108 -0
- package/mock/monorise/organization.ts +63 -0
- package/mock/monorise/reference.ts +28 -0
- package/mock/monorise/video.ts +36 -0
- package/package.json +31 -0
- package/processors/create-entity-processor.ts +55 -0
- package/processors/mutual-processor.ts +262 -0
- package/processors/prejoin-processor.ts +264 -0
- package/processors/replication-processor.ts +261 -0
- package/processors/tag-processor.ts +174 -0
- package/services/DependencyContainer.ts +208 -0
- package/services/entity-service-lifecycle.ts +41 -0
- package/services/entity.service.ts +201 -0
- package/services/mutual.service.ts +285 -0
- package/tsconfig.json +118 -0
- package/types/entity.type.ts +62 -0
- package/types/event.ts +84 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ENTITY_REPLICATION_INDEX,
|
|
3
|
+
MUTUAL_REPLICATION_INDEX,
|
|
4
|
+
} from '../constants/table';
|
|
5
|
+
|
|
6
|
+
const CORE_TABLE = process.env.CORE_TABLE || '';
|
|
7
|
+
const CORE_EVENT_BUS = process.env.CORE_EVENT_BUS || '';
|
|
8
|
+
|
|
9
|
+
export {
|
|
10
|
+
CORE_TABLE,
|
|
11
|
+
CORE_EVENT_BUS,
|
|
12
|
+
ENTITY_REPLICATION_INDEX,
|
|
13
|
+
MUTUAL_REPLICATION_INDEX,
|
|
14
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { Entity } from '@monorise/base';
|
|
2
|
+
import type { Request, Response } from 'express';
|
|
3
|
+
import httpStatus from 'http-status';
|
|
4
|
+
import { ZodError } from 'zod';
|
|
5
|
+
import { StandardError } from '#/errors/standard-error';
|
|
6
|
+
import type { EntityService } from '#/services/entity.service';
|
|
7
|
+
|
|
8
|
+
export class CreateEntityController {
|
|
9
|
+
constructor(private entityService: EntityService) {}
|
|
10
|
+
|
|
11
|
+
controller: (req: Request, res: Response) => void = async (req, res) => {
|
|
12
|
+
const accountId = req.headers['account-id'];
|
|
13
|
+
const { entityType } = req.params as unknown as {
|
|
14
|
+
entityType: Entity;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
try {
|
|
18
|
+
const entity = await this.entityService.createEntity({
|
|
19
|
+
entityType,
|
|
20
|
+
entityPayload: req.body,
|
|
21
|
+
accountId,
|
|
22
|
+
options: {
|
|
23
|
+
createAndUpdateDatetime: req.body.createdAt,
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
return res.status(httpStatus.OK).json(entity);
|
|
28
|
+
} catch (err) {
|
|
29
|
+
if (err instanceof ZodError) {
|
|
30
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
31
|
+
code: 'API_VALIDATION_ERROR',
|
|
32
|
+
message: 'API validation failed',
|
|
33
|
+
details: err.flatten(),
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (err instanceof StandardError && err.code === 'EMAIL_EXISTS') {
|
|
38
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
39
|
+
...err.toJSON(),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
console.log('===create-entity error:', {
|
|
44
|
+
err,
|
|
45
|
+
errorContext: JSON.stringify({ body: req.body, headers: req.headers }),
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
throw err;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Entity } from '@monorise/base';
|
|
2
|
+
import type { Request, Response } from 'express';
|
|
3
|
+
import httpStatus from 'http-status';
|
|
4
|
+
import { StandardError } from '#/errors/standard-error';
|
|
5
|
+
import type { EntityService } from '#/services/entity.service';
|
|
6
|
+
|
|
7
|
+
export class DeleteEntityController {
|
|
8
|
+
constructor(private readonly entityService: EntityService) {}
|
|
9
|
+
|
|
10
|
+
controller: (req: Request, res: Response) => void = async (req, res) => {
|
|
11
|
+
const accountId = req.headers['account-id'];
|
|
12
|
+
const { entityType, entityId } = req.params as unknown as {
|
|
13
|
+
entityType: Entity;
|
|
14
|
+
entityId: string;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
try {
|
|
18
|
+
await this.entityService.deleteEntity({
|
|
19
|
+
entityType,
|
|
20
|
+
entityId,
|
|
21
|
+
accountId,
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
return res.json({ message: 'entity deleted' });
|
|
25
|
+
} catch (err) {
|
|
26
|
+
if (err instanceof StandardError && err.code === 'ENTITY_NOT_FOUND') {
|
|
27
|
+
return res.status(httpStatus.NOT_FOUND).json({
|
|
28
|
+
...err.toJSON(),
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
throw err;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
### Entity
|
|
2
|
+
|
|
3
|
+
@entityType=active-course
|
|
4
|
+
|
|
5
|
+
### List all entities
|
|
6
|
+
|
|
7
|
+
GET {{BASE_URL}}/core/entity/{{entityType}}
|
|
8
|
+
content-type: application/json
|
|
9
|
+
x-api-key: {{X_API_KEY}}
|
|
10
|
+
|
|
11
|
+
### Search for entity with query
|
|
12
|
+
|
|
13
|
+
GET {{BASE_URL}}/core/entity/{{entityType}}
|
|
14
|
+
?query=edit
|
|
15
|
+
content-type: application/json
|
|
16
|
+
x-api-key: {{X_API_KEY}}
|
|
17
|
+
|
|
18
|
+
### Create entity
|
|
19
|
+
|
|
20
|
+
POST {{BASE_URL}}/core/entity/{{entityType}}
|
|
21
|
+
content-type: application/json
|
|
22
|
+
x-api-key: {{X_API_KEY}}
|
|
23
|
+
|
|
24
|
+
{
|
|
25
|
+
"email": "test@mail.com",
|
|
26
|
+
"displayName": "chapter 3"
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
### Get entity by entityId
|
|
30
|
+
|
|
31
|
+
@entityId=config
|
|
32
|
+
|
|
33
|
+
GET {{BASE_URL}}/core/entity/{{entityType}}/{{entityId}}
|
|
34
|
+
content-type: application/json
|
|
35
|
+
x-api-key: {{X_API_KEY}}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
### Upsert entity
|
|
39
|
+
|
|
40
|
+
PUT {{BASE_URL}}/core/entity/{{entityType}}/{{entityId}}
|
|
41
|
+
content-type: application/json
|
|
42
|
+
x-api-key: {{X_API_KEY}}
|
|
43
|
+
|
|
44
|
+
{
|
|
45
|
+
"name": "test test edit again"
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
### Update entity
|
|
49
|
+
|
|
50
|
+
PATCH {{BASE_URL}}/core/entity/{{entityType}}/{{entityId}}
|
|
51
|
+
content-type: application/json
|
|
52
|
+
x-api-key: {{X_API_KEY}}
|
|
53
|
+
|
|
54
|
+
{
|
|
55
|
+
"name": "test test edit again"
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
### Delete entity
|
|
59
|
+
|
|
60
|
+
DELETE {{BASE_URL}}/core/entity/{{entityType}}/{{entityId}}
|
|
61
|
+
content-type: application/json
|
|
62
|
+
x-api-key: {{X_API_KEY}}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Entity } from '@monorise/base';
|
|
2
|
+
import type { Request, Response } from 'express';
|
|
3
|
+
import httpStatus from 'http-status';
|
|
4
|
+
import type { EntityRepository } from '#/data/Entity';
|
|
5
|
+
|
|
6
|
+
export class GetEntityController {
|
|
7
|
+
constructor(private entityRepository: EntityRepository) {}
|
|
8
|
+
|
|
9
|
+
controller: (req: Request, res: Response) => void = async (req, res) => {
|
|
10
|
+
const { entityType, entityId } = req.params as unknown as {
|
|
11
|
+
entityType: Entity;
|
|
12
|
+
entityId: string;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
try {
|
|
16
|
+
const entity = await this.entityRepository.getEntity(
|
|
17
|
+
entityType,
|
|
18
|
+
entityId,
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
return res.status(httpStatus.OK).json(entity);
|
|
22
|
+
} catch (err) {
|
|
23
|
+
if ((err as any).code === 'ENTITY_IS_UNDEFINED') {
|
|
24
|
+
return res.status(httpStatus.NOT_FOUND).json({
|
|
25
|
+
code: 'ENTITY_NOT_FOUND',
|
|
26
|
+
message: 'Entity not found',
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
throw err;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { Entity } from '@monorise/base';
|
|
2
|
+
import type { Request, Response } from 'express';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import type { EntityRepository } from '#/data/Entity';
|
|
5
|
+
import { fromLastKeyQuery } from '#/helpers/fromLastKeyQuery';
|
|
6
|
+
import { toLastKeyResponse } from '#/helpers/toLastKeyResponse';
|
|
7
|
+
|
|
8
|
+
const querySchema = z.object({
|
|
9
|
+
limit: z.string().optional(),
|
|
10
|
+
lastKey: z.string().optional(),
|
|
11
|
+
query: z.string().trim().optional(),
|
|
12
|
+
start: z.string().optional(),
|
|
13
|
+
end: z.string().optional(),
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export class ListEntitiesController {
|
|
17
|
+
constructor(private entityRepository: EntityRepository) {}
|
|
18
|
+
|
|
19
|
+
controller: (req: Request, res: Response) => void = async (req, res) => {
|
|
20
|
+
const errorContext: { [key: string]: any } = {};
|
|
21
|
+
try {
|
|
22
|
+
const accountId = req.headers['account-id'] || '';
|
|
23
|
+
if (Array.isArray(accountId)) {
|
|
24
|
+
throw new Error('multiple account-id detected');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
errorContext.accountId = accountId;
|
|
28
|
+
errorContext.params = req.params;
|
|
29
|
+
errorContext.query = req.query;
|
|
30
|
+
|
|
31
|
+
const { entityType } = req.params as unknown as {
|
|
32
|
+
entityType: Entity;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const { lastKey, query, limit, start, end } = querySchema.parse(
|
|
36
|
+
req.query,
|
|
37
|
+
);
|
|
38
|
+
if (query) {
|
|
39
|
+
const results = await this.entityRepository.queryEntities(
|
|
40
|
+
entityType,
|
|
41
|
+
query,
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
return res.json({
|
|
45
|
+
data: results.items.map((item) => item.toJSON()),
|
|
46
|
+
totalCount: results.totalCount,
|
|
47
|
+
filteredCount: results.filteredCount,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const results = await this.entityRepository.listEntities({
|
|
52
|
+
entityType,
|
|
53
|
+
limit: Number(limit),
|
|
54
|
+
options: {
|
|
55
|
+
lastKey: fromLastKeyQuery(lastKey),
|
|
56
|
+
},
|
|
57
|
+
...(start && end ? { between: { start, end } } : {}),
|
|
58
|
+
});
|
|
59
|
+
return res.json({
|
|
60
|
+
data: results.items.map((item) => item.toJSON()),
|
|
61
|
+
totalCount: results.totalCount,
|
|
62
|
+
lastKey: toLastKeyResponse(results.lastKey),
|
|
63
|
+
});
|
|
64
|
+
} catch (error) {
|
|
65
|
+
console.log({ error, errorContext });
|
|
66
|
+
return res.status(500).json({ message: error });
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { Entity } from '@monorise/base';
|
|
2
|
+
import type { Request, Response } from 'express';
|
|
3
|
+
import httpStatus from 'http-status';
|
|
4
|
+
import { ZodError } from 'zod';
|
|
5
|
+
import { StandardError } from '#/errors/standard-error';
|
|
6
|
+
import type { EntityService } from '#/services/entity.service';
|
|
7
|
+
|
|
8
|
+
export class UpdateEntityController {
|
|
9
|
+
constructor(private entityService: EntityService) {}
|
|
10
|
+
|
|
11
|
+
controller: (req: Request, res: Response) => void = async (req, res) => {
|
|
12
|
+
const accountId = req.headers['account-id'];
|
|
13
|
+
const { entityType, entityId } = req.params as unknown as {
|
|
14
|
+
entityType: Entity;
|
|
15
|
+
entityId: string;
|
|
16
|
+
};
|
|
17
|
+
const errorContext: any = {
|
|
18
|
+
accountId,
|
|
19
|
+
'req.params': req.params,
|
|
20
|
+
'req.body': req.body,
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
const entity = await this.entityService.updateEntity({
|
|
25
|
+
entityType,
|
|
26
|
+
entityId,
|
|
27
|
+
entityPayload: req.body,
|
|
28
|
+
accountId,
|
|
29
|
+
});
|
|
30
|
+
errorContext.entity = entity;
|
|
31
|
+
|
|
32
|
+
return res.status(httpStatus.OK).json(entity);
|
|
33
|
+
} catch (err) {
|
|
34
|
+
if (err instanceof ZodError) {
|
|
35
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
36
|
+
code: 'API_VALIDATION_ERROR',
|
|
37
|
+
message: 'API validation failed',
|
|
38
|
+
details: err.flatten(),
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (err instanceof StandardError && err.code === 'ENTITY_NOT_FOUND') {
|
|
43
|
+
return res.status(httpStatus.NOT_FOUND).json({
|
|
44
|
+
...err.toJSON(),
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
console.log(
|
|
49
|
+
'====UPDATE_ENTITY_CONTROLLER_ERROR',
|
|
50
|
+
err,
|
|
51
|
+
JSON.stringify({ errorContext }, null, 2),
|
|
52
|
+
);
|
|
53
|
+
throw err;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { Entity } from '@monorise/base';
|
|
2
|
+
import type { Request, Response } from 'express';
|
|
3
|
+
import httpStatus from 'http-status';
|
|
4
|
+
import { ZodError } from 'zod';
|
|
5
|
+
import type { EntityRepository } from '#/data/Entity';
|
|
6
|
+
import { StandardError } from '#/errors/standard-error';
|
|
7
|
+
import type { publishEvent as publishEventType } from '#/helpers/event';
|
|
8
|
+
import { EntityConfig } from '#/lambda-layer/monorise';
|
|
9
|
+
import { EVENT } from '#/types/event';
|
|
10
|
+
|
|
11
|
+
export class UpsertEntityController {
|
|
12
|
+
constructor(
|
|
13
|
+
private entityRepository: EntityRepository,
|
|
14
|
+
private publishEvent: typeof publishEventType,
|
|
15
|
+
) {}
|
|
16
|
+
|
|
17
|
+
controller: (req: Request, res: Response) => void = async (req, res) => {
|
|
18
|
+
const accountId = req.headers['account-id'];
|
|
19
|
+
const { entityType, entityId } = req.params as unknown as {
|
|
20
|
+
entityType: Entity;
|
|
21
|
+
entityId: string;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
try {
|
|
25
|
+
const entitySchema =
|
|
26
|
+
EntityConfig[entityType].createSchema ||
|
|
27
|
+
EntityConfig[entityType].baseSchema;
|
|
28
|
+
const mutualSchema = EntityConfig[entityType].mutual?.mutualSchema;
|
|
29
|
+
|
|
30
|
+
if (!entitySchema || !mutualSchema) {
|
|
31
|
+
throw new StandardError('Invalid entity type', 'INVALID_ENTITY_TYPE');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const parsedEntityPayload = entitySchema.parse(req.body);
|
|
35
|
+
const parsedMutualPayload = mutualSchema.parse(req.body);
|
|
36
|
+
|
|
37
|
+
const entity = await this.entityRepository.upsertEntity(
|
|
38
|
+
entityType,
|
|
39
|
+
entityId,
|
|
40
|
+
parsedEntityPayload,
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
if (parsedMutualPayload) {
|
|
44
|
+
const byEntityType = entityType;
|
|
45
|
+
const byEntityId = entity.entityId;
|
|
46
|
+
const publishEventPromises = [];
|
|
47
|
+
|
|
48
|
+
for (const [fieldKey, config] of Object.entries(
|
|
49
|
+
EntityConfig[entityType].mutual?.mutualFields || {},
|
|
50
|
+
)) {
|
|
51
|
+
publishEventPromises.push(
|
|
52
|
+
this.publishEvent({
|
|
53
|
+
event: EVENT.CORE.ENTITY_MUTUAL_TO_UPDATE,
|
|
54
|
+
payload: {
|
|
55
|
+
byEntityType,
|
|
56
|
+
byEntityId,
|
|
57
|
+
entityType: config.entityType,
|
|
58
|
+
field: fieldKey,
|
|
59
|
+
mutualIds: (parsedMutualPayload as any)[fieldKey],
|
|
60
|
+
publishedAt: entity.updatedAt || new Date().toISOString(),
|
|
61
|
+
},
|
|
62
|
+
}),
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
await Promise.allSettled(publishEventPromises);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
await this.publishEvent({
|
|
69
|
+
event: EVENT.CORE.ENTITY_UPSERTED,
|
|
70
|
+
payload: {
|
|
71
|
+
entityType,
|
|
72
|
+
entityId: entity.entityId,
|
|
73
|
+
payload: req.body,
|
|
74
|
+
createdByAccountId: accountId,
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
return res.status(httpStatus.OK).json(entity);
|
|
79
|
+
} catch (err) {
|
|
80
|
+
if (err instanceof ZodError) {
|
|
81
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
82
|
+
code: 'API_VALIDATION_ERROR',
|
|
83
|
+
message: 'API validation failed',
|
|
84
|
+
details: err.flatten(),
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (err instanceof StandardError && err.code === 'EMAIL_EXISTS') {
|
|
89
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
90
|
+
...err.toJSON(),
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
throw err;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { Entity as EntityType } from '@monorise/base';
|
|
2
|
+
import type { Request, Response } from 'express';
|
|
3
|
+
import httpStatus from 'http-status';
|
|
4
|
+
import { ZodError } from 'zod';
|
|
5
|
+
import { StandardError } from '#/errors/standard-error';
|
|
6
|
+
import type { publishEvent as publishEventType } from '#/helpers/event';
|
|
7
|
+
import type { MutualService } from '#/services/mutual.service';
|
|
8
|
+
// import { EVENT, type EventDetail } from '#/types/event';
|
|
9
|
+
// import { Entity } from '#/lambda-layer/monorise';
|
|
10
|
+
|
|
11
|
+
export class CreateMutualController {
|
|
12
|
+
constructor(
|
|
13
|
+
private mutualService: MutualService,
|
|
14
|
+
private publishEvent: typeof publishEventType,
|
|
15
|
+
) {}
|
|
16
|
+
|
|
17
|
+
controller: (req: Request, res: Response) => void = async (req, res) => {
|
|
18
|
+
const accountId = req.headers['account-id'];
|
|
19
|
+
const { byEntityType, byEntityId, entityType, entityId } =
|
|
20
|
+
req.params as unknown as {
|
|
21
|
+
byEntityType: EntityType;
|
|
22
|
+
byEntityId: string;
|
|
23
|
+
entityType: EntityType;
|
|
24
|
+
entityId: string;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const { asEntity } = req.query;
|
|
28
|
+
|
|
29
|
+
try {
|
|
30
|
+
const { mutual, eventPayload } = await this.mutualService.createMutual({
|
|
31
|
+
byEntityType,
|
|
32
|
+
byEntityId,
|
|
33
|
+
entityType,
|
|
34
|
+
entityId,
|
|
35
|
+
mutualPayload: req.body,
|
|
36
|
+
accountId,
|
|
37
|
+
options: {
|
|
38
|
+
asEntity: asEntity as unknown as EntityType,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
/*
|
|
43
|
+
* Add more custom event based on byEntityType and entityType
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
// const eventPromises = [];
|
|
47
|
+
|
|
48
|
+
// const eventMaps: Record<string, EventDetail> = {
|
|
49
|
+
// [`${Entity.LEARNER}_${Entity.LEARNING_ACTIVITY}`]:
|
|
50
|
+
// EVENT.CORE_SERVICE.LEARNER_LEARNING_ACTIVITY_SUBMITTED,
|
|
51
|
+
// };
|
|
52
|
+
|
|
53
|
+
// if (eventMaps[`${byEntityType}_${entityType}`]) {
|
|
54
|
+
// eventPromises.push(
|
|
55
|
+
// this.publishEvent({
|
|
56
|
+
// event: eventMaps[`${byEntityType}_${entityType}`],
|
|
57
|
+
// payload: eventPayload,
|
|
58
|
+
// }),
|
|
59
|
+
// );
|
|
60
|
+
// }
|
|
61
|
+
|
|
62
|
+
// await Promise.all(eventPromises);
|
|
63
|
+
|
|
64
|
+
return res.status(httpStatus.OK).json(mutual);
|
|
65
|
+
} catch (err) {
|
|
66
|
+
if (err instanceof ZodError) {
|
|
67
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
68
|
+
code: 'API_VALIDATION_ERROR',
|
|
69
|
+
message: 'API validation failed',
|
|
70
|
+
details: err.flatten(),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (err instanceof StandardError && err.code === 'MUTUAL_EXISTS') {
|
|
75
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
76
|
+
...err.toJSON(),
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (err instanceof StandardError && err.code === 'ENTITY_IS_UNDEFINED') {
|
|
81
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
82
|
+
...err.toJSON(),
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
throw err;
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Entity } from '@monorise/base';
|
|
2
|
+
import type { Request, Response } from 'express';
|
|
3
|
+
import httpStatus from 'http-status';
|
|
4
|
+
import { StandardError } from '#/errors/standard-error';
|
|
5
|
+
import type { MutualService } from '#/services/mutual.service';
|
|
6
|
+
|
|
7
|
+
export class DeleteMutualController {
|
|
8
|
+
constructor(private mutualService: MutualService) {}
|
|
9
|
+
|
|
10
|
+
controller: (req: Request, res: Response) => void = async (req, res) => {
|
|
11
|
+
const accountId = req.headers['account-id'];
|
|
12
|
+
const { byEntityType, byEntityId, entityType, entityId } =
|
|
13
|
+
req.params as unknown as {
|
|
14
|
+
byEntityType: Entity;
|
|
15
|
+
byEntityId: string;
|
|
16
|
+
entityType: Entity;
|
|
17
|
+
entityId: string;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
try {
|
|
21
|
+
const mutual = await this.mutualService.deleteMutual({
|
|
22
|
+
byEntityType,
|
|
23
|
+
byEntityId,
|
|
24
|
+
entityType,
|
|
25
|
+
entityId,
|
|
26
|
+
accountId,
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
return res.json(mutual);
|
|
30
|
+
} catch (err) {
|
|
31
|
+
if (err instanceof StandardError && err.code === 'MUTUAL_NOT_FOUND') {
|
|
32
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
33
|
+
...err.toJSON(),
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
throw err;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Entity } from '@monorise/base';
|
|
2
|
+
import type { Request, Response } from 'express';
|
|
3
|
+
import httpStatus from 'http-status';
|
|
4
|
+
import type { MutualRepository } from '#/data/Mutual';
|
|
5
|
+
|
|
6
|
+
export class GetMutualController {
|
|
7
|
+
constructor(private associateRepository: MutualRepository) {}
|
|
8
|
+
|
|
9
|
+
controller: (req: Request, res: Response) => void = async (req, res) => {
|
|
10
|
+
const { byEntityType, byEntityId, entityType, entityId } =
|
|
11
|
+
req.params as unknown as {
|
|
12
|
+
byEntityType: Entity;
|
|
13
|
+
byEntityId: string;
|
|
14
|
+
entityType: Entity;
|
|
15
|
+
entityId: string;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
try {
|
|
19
|
+
const associate = await this.associateRepository.getMutual(
|
|
20
|
+
byEntityType,
|
|
21
|
+
byEntityId,
|
|
22
|
+
entityType,
|
|
23
|
+
entityId,
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
return res.status(httpStatus.OK).json(associate);
|
|
27
|
+
} catch (err) {
|
|
28
|
+
if ((err as any).code === 'MUTUAL_IS_UNDEFINED') {
|
|
29
|
+
return res.status(httpStatus.NOT_FOUND).json({
|
|
30
|
+
code: 'MUTUAL_NOT_FOUND',
|
|
31
|
+
message: 'Mutual not found',
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
throw err;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { Entity } from '@monorise/base';
|
|
2
|
+
import type { Request, Response } from 'express';
|
|
3
|
+
import httpStatus from 'http-status';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import type { Mutual, MutualRepository } from '#/data/Mutual';
|
|
6
|
+
|
|
7
|
+
export class ListEntitiesByEntityController {
|
|
8
|
+
constructor(private associateRepository: MutualRepository) {}
|
|
9
|
+
|
|
10
|
+
controller: (req: Request, res: Response) => void = async (req, res) => {
|
|
11
|
+
const { byEntityType, byEntityId, entityType } = req.params as unknown as {
|
|
12
|
+
byEntityType: Entity;
|
|
13
|
+
byEntityId: string;
|
|
14
|
+
entityType: Entity;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Chain query is a query that allows to query entities by a chain of mutual types.
|
|
19
|
+
* if /core/mutual/learner/:learnerId/pathways?chainEntityQuery=type1,type2
|
|
20
|
+
* then the query will look for list of type1 in learner based on learnerId,
|
|
21
|
+
* then look for list of type2 in type1 by list of entityId of type1,
|
|
22
|
+
* then finally look for list of pathways in type2 by list of entityId of type2.
|
|
23
|
+
*/
|
|
24
|
+
const querySchema = z.object({
|
|
25
|
+
chainEntityQuery: z.string().optional(),
|
|
26
|
+
});
|
|
27
|
+
const queryParam = querySchema.parse(req.query);
|
|
28
|
+
if (queryParam?.chainEntityQuery) {
|
|
29
|
+
try {
|
|
30
|
+
const mutualTypes = queryParam.chainEntityQuery.split(
|
|
31
|
+
',',
|
|
32
|
+
) as unknown as Entity[];
|
|
33
|
+
|
|
34
|
+
const chainMutualTypes = [byEntityType, ...mutualTypes, entityType];
|
|
35
|
+
let byIds = [byEntityId];
|
|
36
|
+
let items: Mutual<Entity, Entity, Record<string, unknown>>[] = [];
|
|
37
|
+
|
|
38
|
+
for (let i = 1; i < chainMutualTypes.length; i++) {
|
|
39
|
+
const byType = chainMutualTypes[i - 1];
|
|
40
|
+
const type = chainMutualTypes[i];
|
|
41
|
+
items = [];
|
|
42
|
+
|
|
43
|
+
for (const byId of byIds) {
|
|
44
|
+
const resp = await this.associateRepository.listEntitiesByEntity(
|
|
45
|
+
byType,
|
|
46
|
+
byId,
|
|
47
|
+
type,
|
|
48
|
+
);
|
|
49
|
+
items = items.concat(resp.items);
|
|
50
|
+
}
|
|
51
|
+
byIds = items.map((item) => item.entityId);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return res.json({
|
|
55
|
+
entities: items,
|
|
56
|
+
});
|
|
57
|
+
} catch (err) {
|
|
58
|
+
return res.status(httpStatus.BAD_REQUEST).json({
|
|
59
|
+
code: 'INVALID_CHAIN_QUERY',
|
|
60
|
+
message:
|
|
61
|
+
'Chain query is invalid. Please double check the chainEntityQuery param',
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
} else {
|
|
65
|
+
const resp = await this.associateRepository.listEntitiesByEntity(
|
|
66
|
+
byEntityType,
|
|
67
|
+
byEntityId,
|
|
68
|
+
entityType,
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
return res.json({
|
|
72
|
+
entities: resp.items,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
}
|