eh-commons 0.0.1-testing.99 → 0.0.2-testing.79
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/clients/rest.client.js +23 -10
- package/dist/clients/rest.client.js.map +1 -1
- package/dist/clients/session.client.d.ts +3 -4
- package/dist/clients/session.client.js +4 -4
- package/dist/clients/session.client.js.map +1 -1
- package/dist/decorators/is-map-of-strings.decorator.js +1 -2
- package/dist/decorators/is-map-of-strings.decorator.js.map +1 -1
- package/dist/decorators/is-route.decorator.js +1 -2
- package/dist/decorators/is-route.decorator.js.map +1 -1
- package/dist/factories/exception.factory.js +1 -2
- package/dist/factories/exception.factory.js.map +1 -1
- package/dist/functions/escape-regex.function.js +1 -2
- package/dist/functions/escape-regex.function.js.map +1 -1
- package/dist/functions/generate-uuid.function.js +1 -2
- package/dist/functions/generate-uuid.function.js.map +1 -1
- package/dist/functions/json-size.function.js +1 -2
- package/dist/functions/json-size.function.js.map +1 -1
- package/dist/functions/random-range.function.js +1 -2
- package/dist/functions/random-range.function.js.map +1 -1
- package/dist/functions/session/keyword.function.js +3 -4
- package/dist/functions/session/keyword.function.js.map +1 -1
- package/dist/functions/sort-object.function.js +1 -2
- package/dist/functions/sort-object.function.js.map +1 -1
- package/dist/functions/transliterate-geo-to-latin.js +1 -2
- package/dist/functions/transliterate-geo-to-latin.js.map +1 -1
- package/dist/index.d.ts +21 -33
- package/dist/index.js +14 -51
- package/dist/index.js.map +1 -1
- package/dist/models/commons/interfaces/base.interface.d.ts +2 -2
- package/dist/models/dictionary/embedded/dictionary-setting.embedded.d.ts +12 -0
- package/dist/models/dictionary/embedded/dictionary-setting.embedded.js +30 -0
- package/dist/models/dictionary/embedded/dictionary-setting.embedded.js.map +1 -0
- package/dist/models/dictionary/embedded/dictionary.embedded.d.ts +13 -31
- package/dist/models/dictionary/embedded/dictionary.embedded.js +20 -18
- package/dist/models/dictionary/embedded/dictionary.embedded.js.map +1 -1
- package/dist/models/dictionary/embedded/origin.embedded.d.ts +13 -0
- package/dist/models/dictionary/embedded/origin.embedded.js +39 -0
- package/dist/models/dictionary/embedded/origin.embedded.js.map +1 -0
- package/dist/models/dictionary/enums/resource-type.enum.d.ts +13 -0
- package/dist/models/dictionary/enums/resource-type.enum.js +18 -0
- package/dist/models/dictionary/enums/resource-type.enum.js.map +1 -0
- package/dist/models/dictionary/interfaces/dictionary-embedded.interface.d.ts +8 -32
- package/dist/models/dictionary/interfaces/origin.interface.d.ts +6 -0
- package/dist/models/dictionary/interfaces/origin.interface.js +3 -0
- package/dist/models/dictionary/interfaces/origin.interface.js.map +1 -0
- package/dist/models/dictionary/schemas/dictionary.schema.d.ts +21 -0
- package/dist/models/dictionary/schemas/dictionary.schema.js +59 -0
- package/dist/models/dictionary/schemas/dictionary.schema.js.map +1 -0
- package/dist/models/dtos/dictionary.dto.js +1 -0
- package/dist/models/dtos/dictionary.dto.js.map +1 -0
- package/dist/models/embedded/address.embedded.js +1 -0
- package/dist/models/embedded/address.embedded.js.map +1 -0
- package/dist/models/embedded/author.embedded.js +2 -4
- package/dist/models/embedded/author.embedded.js.map +1 -0
- package/dist/models/embedded/contact.embedded.js +1 -0
- package/dist/models/embedded/contact.embedded.js.map +1 -0
- package/dist/models/embedded/dictionary.embedded.js +2 -4
- package/dist/models/embedded/dictionary.embedded.js.map +1 -0
- package/dist/models/embedded/geo-location.embedded.js +1 -0
- package/dist/models/embedded/geo-location.embedded.js.map +1 -0
- package/dist/models/embedded/i18n.embedded.js +1 -0
- package/dist/models/embedded/i18n.embedded.js.map +1 -0
- package/dist/models/embedded/person.embedded.js +1 -0
- package/dist/models/embedded/person.embedded.js.map +1 -0
- package/dist/models/embedded/record.embedded.js +1 -0
- package/dist/models/embedded/record.embedded.js.map +1 -0
- package/dist/models/embedded/s3/file-log.embedded.d.ts +40 -0
- package/dist/models/embedded/s3/file-log.embedded.js +35 -0
- package/dist/models/embedded/s3/file-log.embedded.js.map +1 -0
- package/dist/models/embedded/s3/file-meta.embedded.d.ts +39 -0
- package/dist/models/embedded/s3/file-meta.embedded.js +37 -0
- package/dist/models/embedded/s3/file-meta.embedded.js.map +1 -0
- package/dist/models/embedded/s3/file-record.embedded.d.ts +37 -0
- package/dist/models/embedded/s3/file-record.embedded.js +29 -0
- package/dist/models/embedded/s3/file-record.embedded.js.map +1 -0
- package/dist/models/embedded/s3/file-state.embedded.d.ts +39 -0
- package/dist/models/embedded/s3/file-state.embedded.js +31 -0
- package/dist/models/embedded/s3/file-state.embedded.js.map +1 -0
- package/dist/models/embedded/s3/file.embedded.d.ts +45 -0
- package/dist/models/embedded/s3/file.embedded.js +49 -0
- package/dist/models/embedded/s3/file.embedded.js.map +1 -0
- package/dist/models/embedded/s3/initiator.embedded.d.ts +38 -0
- package/dist/models/embedded/s3/initiator.embedded.js +30 -0
- package/dist/models/embedded/s3/initiator.embedded.js.map +1 -0
- package/dist/models/embedded/s3/s3.embedded.d.ts +38 -0
- package/dist/models/embedded/s3/s3.embedded.js +33 -0
- package/dist/models/embedded/s3/s3.embedded.js.map +1 -0
- package/dist/models/embedded/user-client.embedded.js +1 -0
- package/dist/models/embedded/user-client.embedded.js.map +1 -0
- package/dist/models/enums/client-type.enum.js +1 -0
- package/dist/models/enums/client-type.enum.js.map +1 -0
- package/dist/models/enums/contact-type.enum.js +1 -0
- package/dist/models/enums/contact-type.enum.js.map +1 -0
- package/dist/models/enums/env.enum.js +1 -0
- package/dist/models/enums/env.enum.js.map +1 -0
- package/dist/models/enums/fail-keyword.enum.js +1 -1
- package/dist/models/enums/fail-keyword.enum.js.map +1 -0
- package/dist/models/enums/file-log-init-type.enum.d.ts +4 -0
- package/dist/models/enums/file-log-init-type.enum.js +9 -0
- package/dist/models/enums/file-log-init-type.enum.js.map +1 -0
- package/dist/models/enums/http-method.enum.js +1 -0
- package/dist/models/enums/http-method.enum.js.map +1 -0
- package/dist/models/enums/permission-include-strategy.enum.js +1 -0
- package/dist/models/enums/permission-include-strategy.enum.js.map +1 -0
- package/dist/models/enums/record-state.enum.js +1 -0
- package/dist/models/enums/record-state.enum.js.map +1 -0
- package/dist/models/enums/s3-file-state.enum.d.ts +7 -0
- package/dist/models/enums/s3-file-state.enum.js +12 -0
- package/dist/models/enums/s3-file-state.enum.js.map +1 -0
- package/dist/models/interfaces/address.interface.js +1 -0
- package/dist/models/interfaces/address.interface.js.map +1 -0
- package/dist/models/interfaces/author.interface.js +1 -0
- package/dist/models/interfaces/author.interface.js.map +1 -0
- package/dist/models/interfaces/client.interface.js +1 -0
- package/dist/models/interfaces/client.interface.js.map +1 -0
- package/dist/models/interfaces/contact.interface.js +1 -0
- package/dist/models/interfaces/contact.interface.js.map +1 -0
- package/dist/models/interfaces/dictionary.interface.js +1 -0
- package/dist/models/interfaces/dictionary.interface.js.map +1 -0
- package/dist/models/interfaces/geo-location.interface.js +1 -0
- package/dist/models/interfaces/geo-location.interface.js.map +1 -0
- package/dist/models/interfaces/i18n.interface.js +1 -0
- package/dist/models/interfaces/i18n.interface.js.map +1 -0
- package/dist/models/interfaces/permission.interface.js +1 -0
- package/dist/models/interfaces/permission.interface.js.map +1 -0
- package/dist/models/interfaces/person.interface.js +1 -0
- package/dist/models/interfaces/person.interface.js.map +1 -0
- package/dist/models/interfaces/record.interface.js +1 -0
- package/dist/models/interfaces/record.interface.js.map +1 -0
- package/dist/models/interfaces/role.interface.js +1 -0
- package/dist/models/interfaces/role.interface.js.map +1 -0
- package/dist/models/interfaces/s3/file-log.interface.d.ts +7 -0
- package/dist/models/interfaces/s3/file-log.interface.js +3 -0
- package/dist/models/interfaces/s3/file-log.interface.js.map +1 -0
- package/dist/models/interfaces/s3/file-meta.interface.d.ts +6 -0
- package/dist/models/interfaces/s3/file-meta.interface.js +3 -0
- package/dist/models/interfaces/s3/file-meta.interface.js.map +1 -0
- package/dist/models/interfaces/s3/file-record.interface.d.ts +4 -0
- package/dist/models/interfaces/s3/file-record.interface.js +3 -0
- package/dist/models/interfaces/s3/file-record.interface.js.map +1 -0
- package/dist/models/interfaces/s3/file-state.interface.d.ts +6 -0
- package/dist/models/interfaces/s3/file-state.interface.js +3 -0
- package/dist/models/interfaces/s3/file-state.interface.js.map +1 -0
- package/dist/models/interfaces/s3/file.interface.d.ts +12 -0
- package/dist/models/interfaces/s3/file.interface.js +3 -0
- package/dist/models/interfaces/s3/file.interface.js.map +1 -0
- package/dist/models/interfaces/s3/initiator.interface.d.ts +5 -0
- package/dist/models/interfaces/s3/initiator.interface.js +3 -0
- package/dist/models/interfaces/s3/initiator.interface.js.map +1 -0
- package/dist/models/interfaces/s3/s3.interface.d.ts +5 -0
- package/dist/models/interfaces/s3/s3.interface.js +3 -0
- package/dist/models/interfaces/s3/s3.interface.js.map +1 -0
- package/dist/models/interfaces/s3-file.interface.d.ts +33 -0
- package/dist/models/interfaces/s3-file.interface.js +2 -0
- package/dist/models/interfaces/session/session.interface.d.ts +2 -2
- package/dist/models/interfaces/user-client.interface.js +1 -0
- package/dist/models/interfaces/user-client.interface.js.map +1 -0
- package/dist/models/interfaces/user.interface.js +1 -0
- package/dist/models/interfaces/user.interface.js.map +1 -0
- package/dist/models/rewards/embedded/origin.embedded.schema.d.ts +6 -27
- package/dist/models/rewards/embedded/rewards.embedded.d.ts +7 -28
- package/dist/models/s3/embedded/file-log.embedded.d.ts +6 -27
- package/dist/models/s3/embedded/file-meta.embedded.d.ts +6 -27
- package/dist/models/s3/embedded/file-record.embedded.d.ts +6 -27
- package/dist/models/s3/embedded/file-state.embedded.d.ts +6 -27
- package/dist/models/s3/embedded/file.embedded.d.ts +6 -27
- package/dist/models/s3/embedded/initiator.embedded.d.ts +6 -27
- package/dist/models/s3/embedded/s3.embedded.d.ts +6 -27
- package/dist/models/s3/interfaces/file.interface.d.ts +0 -25
- package/dist/models/schemas/client.schema.js +1 -0
- package/dist/models/schemas/client.schema.js.map +1 -0
- package/dist/models/schemas/permission.schema.js +1 -0
- package/dist/models/schemas/permission.schema.js.map +1 -0
- package/dist/models/schemas/role.schema.js +1 -0
- package/dist/models/schemas/role.schema.js.map +1 -0
- package/dist/models/schemas/user.schema.js +1 -0
- package/dist/models/schemas/user.schema.js.map +1 -0
- package/dist/models/session/interfaces/session-client-data.interface.d.ts +2 -2
- package/dist/models/um/embedded/client-dictionary.embedded.d.ts +0 -25
- package/dist/models/um/embedded/credentials.embedded.d.ts +0 -25
- package/dist/models/um/embedded/prof-info.embedded.d.ts +2 -27
- package/dist/models/um/embedded/prof-info.embedded.js +1 -1
- package/dist/models/um/embedded/prof-info.embedded.js.map +1 -1
- package/dist/models/um/embedded/user-client.embedded.d.ts +2 -27
- package/dist/models/um/embedded/user-client.embedded.js +1 -1
- package/dist/models/um/embedded/user-client.embedded.js.map +1 -1
- package/dist/models/um/interfaces/client.dictionary.interface.d.ts +0 -25
- package/dist/models/um/interfaces/client.interface.d.ts +0 -25
- package/dist/models/um/interfaces/permission.interface.d.ts +0 -25
- package/dist/models/um/interfaces/role.interface.d.ts +0 -25
- package/dist/models/um/interfaces/user.interface.d.ts +0 -25
- package/dist/models/um/schemas/client.schema.d.ts +3 -28
- package/dist/models/um/schemas/client.schema.js +4 -5
- package/dist/models/um/schemas/client.schema.js.map +1 -1
- package/dist/models/um/schemas/permission.schema.d.ts +0 -25
- package/dist/models/um/schemas/role.schema.d.ts +0 -25
- package/dist/models/um/schemas/user.schema.d.ts +0 -25
- package/dist/models/util/embedded/address.embedded.d.ts +6 -27
- package/dist/models/util/embedded/author.embedded.d.ts +6 -27
- package/dist/models/util/embedded/contact.embedded.d.ts +6 -27
- package/dist/models/util/embedded/geo-location.embedded.d.ts +6 -27
- package/dist/models/util/embedded/i18n.embedded.d.ts +6 -27
- package/dist/models/util/embedded/person.embedded.d.ts +6 -27
- package/dist/models/util/embedded/record.embedded.d.ts +6 -27
- package/dist/models/util/interfaces/author.interface.d.ts +0 -25
- package/dist/models/util/interfaces/person.interface.d.ts +0 -7
- package/dist/models/util/interfaces/person.interface.js +0 -2
- package/dist/models/wrappers/rest-wrapper.class.js +1 -4
- package/dist/models/wrappers/rest-wrapper.class.js.map +1 -1
- package/dist/modules/core/index.d.ts +6 -0
- package/dist/modules/core/index.js +23 -0
- package/dist/modules/core/index.js.map +1 -0
- package/dist/modules/core/models/enums/feed-type.enum.d.ts +6 -0
- package/dist/modules/core/models/enums/feed-type.enum.js +11 -0
- package/dist/modules/core/models/enums/feed-type.enum.js.map +1 -0
- package/dist/modules/core/models/interfaces/feed-thin.interface.d.ts +9 -0
- package/dist/modules/core/models/interfaces/feed-thin.interface.js +3 -0
- package/dist/modules/core/models/interfaces/feed-thin.interface.js.map +1 -0
- package/dist/modules/core/models/interfaces/index.d.ts +4 -0
- package/dist/modules/core/models/interfaces/index.js +21 -0
- package/dist/modules/core/models/interfaces/index.js.map +1 -0
- package/dist/modules/core/models/interfaces/range.interface.d.ts +4 -0
- package/dist/modules/core/models/interfaces/range.interface.js +3 -0
- package/dist/modules/core/models/interfaces/range.interface.js.map +1 -0
- package/dist/modules/core/models/interfaces/ref.interface.d.ts +6 -0
- package/dist/modules/core/models/interfaces/ref.interface.js +3 -0
- package/dist/modules/core/models/interfaces/ref.interface.js.map +1 -0
- package/dist/modules/core/models/interfaces/scope.interface.d.ts +14 -0
- package/dist/modules/core/models/interfaces/scope.interface.js +3 -0
- package/dist/modules/core/models/interfaces/scope.interface.js.map +1 -0
- package/dist/modules/core/models/schemas/index.d.ts +2 -0
- package/dist/modules/core/models/schemas/index.js +19 -0
- package/dist/modules/core/models/schemas/index.js.map +1 -0
- package/dist/modules/core/models/schemas/range.embedded.d.ts +14 -0
- package/dist/modules/core/models/schemas/range.embedded.js +29 -0
- package/dist/modules/core/models/schemas/range.embedded.js.map +1 -0
- package/dist/modules/core/models/schemas/scope.embedded.d.ts +25 -0
- package/dist/modules/core/models/schemas/scope.embedded.js +63 -0
- package/dist/modules/core/models/schemas/scope.embedded.js.map +1 -0
- package/dist/modules/dictionary/index.d.ts +5 -0
- package/dist/modules/dictionary/index.js +22 -0
- package/dist/modules/dictionary/index.js.map +1 -0
- package/dist/modules/dictionary/models/dtos/dictionary-list.dto.d.ts +10 -0
- package/dist/modules/dictionary/models/dtos/dictionary-list.dto.js +59 -0
- package/dist/modules/dictionary/models/dtos/dictionary-list.dto.js.map +1 -0
- package/dist/modules/dictionary/models/interfaces/index.d.ts +27 -0
- package/dist/modules/dictionary/models/interfaces/index.js +3 -0
- package/dist/modules/dictionary/models/interfaces/index.js.map +1 -0
- package/dist/modules/dictionary/models/schemas/index.d.ts +21 -0
- package/dist/modules/dictionary/models/schemas/index.js +47 -0
- package/dist/modules/dictionary/models/schemas/index.js.map +1 -0
- package/dist/modules/dictionary/services/dictionary.service.d.ts +13 -37
- package/dist/modules/dictionary/services/dictionary.service.js +45 -81
- package/dist/modules/dictionary/services/dictionary.service.js.map +1 -1
- package/dist/modules/dmm/dmm.module.d.ts +2 -0
- package/dist/modules/dmm/dmm.module.js +26 -0
- package/dist/modules/dmm/dmm.module.js.map +1 -0
- package/dist/modules/dmm/index.d.ts +4 -0
- package/dist/modules/dmm/index.js +21 -0
- package/dist/modules/dmm/index.js.map +1 -0
- package/dist/modules/dmm/models/interfaces/index.d.ts +12 -0
- package/dist/modules/dmm/models/interfaces/index.js +3 -0
- package/dist/modules/dmm/models/interfaces/index.js.map +1 -0
- package/dist/modules/dmm/models/schemas/index.d.ts +23 -0
- package/dist/modules/dmm/models/schemas/index.js +58 -0
- package/dist/modules/dmm/models/schemas/index.js.map +1 -0
- package/dist/modules/dmm/services/dmm.service.d.ts +26 -0
- package/dist/modules/dmm/services/dmm.service.js +40 -0
- package/dist/modules/dmm/services/dmm.service.js.map +1 -0
- package/dist/modules/emis/emis.module.d.ts +2 -0
- package/dist/modules/emis/emis.module.js +24 -0
- package/dist/modules/emis/emis.module.js.map +1 -0
- package/dist/modules/emis/index.d.ts +3 -0
- package/dist/modules/emis/index.js +20 -0
- package/dist/modules/emis/index.js.map +1 -0
- package/dist/modules/emis/models/interfaces/emis.interface.d.ts +34 -0
- package/dist/modules/emis/models/interfaces/emis.interface.js +3 -0
- package/dist/modules/emis/models/interfaces/emis.interface.js.map +1 -0
- package/dist/modules/emis/services/emis.service.d.ts +8 -0
- package/dist/modules/emis/services/emis.service.js +37 -0
- package/dist/modules/emis/services/emis.service.js.map +1 -0
- package/dist/modules/iam/iam.module.d.ts +2 -0
- package/dist/modules/iam/iam.module.js +24 -0
- package/dist/modules/iam/iam.module.js.map +1 -0
- package/dist/modules/iam/index.d.ts +5 -0
- package/dist/modules/iam/index.js +22 -0
- package/dist/modules/iam/index.js.map +1 -0
- package/dist/modules/iam/models/enums/index.d.ts +6 -0
- package/dist/modules/iam/models/enums/index.js +11 -0
- package/dist/modules/iam/models/enums/index.js.map +1 -0
- package/dist/modules/iam/models/interfaces/index.d.ts +101 -0
- package/dist/modules/iam/models/interfaces/index.js +3 -0
- package/dist/modules/iam/models/interfaces/index.js.map +1 -0
- package/dist/modules/iam/models/schemas/embedded/person.embedded.d.ts +19 -0
- package/dist/modules/iam/models/schemas/embedded/person.embedded.js +41 -0
- package/dist/modules/iam/models/schemas/embedded/person.embedded.js.map +1 -0
- package/dist/modules/iam/models/schemas/embedded/user-person-info.embedded.d.ts +17 -0
- package/dist/modules/iam/models/schemas/embedded/user-person-info.embedded.js +31 -0
- package/dist/modules/iam/models/schemas/embedded/user-person-info.embedded.js.map +1 -0
- package/dist/modules/iam/models/schemas/index.d.ts +2 -0
- package/dist/modules/iam/models/schemas/index.js +19 -0
- package/dist/modules/iam/models/schemas/index.js.map +1 -0
- package/dist/modules/iam/services/iam.service.d.ts +9 -0
- package/dist/modules/iam/services/iam.service.js +40 -0
- package/dist/modules/iam/services/iam.service.js.map +1 -0
- package/dist/modules/otp/index.d.ts +3 -0
- package/dist/modules/otp/index.js +20 -0
- package/dist/modules/otp/index.js.map +1 -0
- package/dist/modules/otp/models/interfaces/index.d.ts +18 -0
- package/dist/modules/otp/models/interfaces/index.js +3 -0
- package/dist/modules/otp/models/interfaces/index.js.map +1 -0
- package/dist/modules/otp/otp.module.d.ts +2 -0
- package/dist/modules/otp/otp.module.js +24 -0
- package/dist/modules/otp/otp.module.js.map +1 -0
- package/dist/modules/otp/services/otp.service.d.ts +11 -0
- package/dist/modules/otp/services/otp.service.js +48 -0
- package/dist/modules/otp/services/otp.service.js.map +1 -0
- package/dist/modules/session/functions/index.d.ts +5 -0
- package/dist/modules/session/functions/index.js +28 -0
- package/dist/modules/session/functions/index.js.map +1 -0
- package/dist/modules/session/guards/permission.guard.d.ts +15 -0
- package/dist/modules/session/guards/permission.guard.js +118 -0
- package/dist/modules/session/guards/permission.guard.js.map +1 -0
- package/dist/modules/session/guards/user.guard.d.ts +12 -0
- package/dist/modules/session/guards/user.guard.js +88 -0
- package/dist/modules/session/guards/user.guard.js.map +1 -0
- package/dist/modules/session/index.d.ts +9 -0
- package/dist/modules/session/index.js +26 -0
- package/dist/modules/session/index.js.map +1 -0
- package/dist/modules/session/models/classes/index.d.ts +3 -0
- package/dist/modules/session/models/classes/index.js +7 -0
- package/dist/modules/session/models/classes/index.js.map +1 -0
- package/dist/modules/session/models/interfaces/index.d.ts +54 -0
- package/dist/modules/session/models/interfaces/index.js +7 -0
- package/dist/modules/session/models/interfaces/index.js.map +1 -0
- package/dist/modules/session/reflectors/permission.reflector.d.ts +2 -0
- package/dist/modules/session/reflectors/permission.reflector.js +6 -0
- package/dist/modules/session/reflectors/permission.reflector.js.map +1 -0
- package/dist/modules/session/services/redis.service.d.ts +16 -0
- package/dist/modules/session/services/redis.service.js +94 -0
- package/dist/modules/session/services/redis.service.js.map +1 -0
- package/dist/modules/session/services/session-v1.service.d.ts +12 -0
- package/dist/modules/session/services/session-v1.service.js +36 -0
- package/dist/modules/session/services/session-v1.service.js.map +1 -0
- package/dist/modules/session/services/session-v2.service.d.ts +18 -0
- package/dist/modules/session/services/session-v2.service.js +110 -0
- package/dist/modules/session/services/session-v2.service.js.map +1 -0
- package/dist/modules/session/session.module.d.ts +2 -0
- package/dist/modules/session/session.module.js +27 -0
- package/dist/modules/session/session.module.js.map +1 -0
- package/dist/modules/storage/index.d.ts +4 -0
- package/dist/modules/storage/index.js +21 -0
- package/dist/modules/storage/index.js.map +1 -0
- package/dist/modules/storage/models/inerfaces/index.d.ts +7 -0
- package/dist/modules/storage/models/inerfaces/index.js +3 -0
- package/dist/modules/storage/models/inerfaces/index.js.map +1 -0
- package/dist/modules/storage/models/schemas/index.d.ts +36 -0
- package/dist/modules/storage/models/schemas/index.js +62 -0
- package/dist/modules/storage/models/schemas/index.js.map +1 -0
- package/dist/modules/storage/services/storage.service.d.ts +9 -0
- package/dist/modules/storage/services/storage.service.js +35 -0
- package/dist/modules/storage/services/storage.service.js.map +1 -0
- package/dist/modules/storage/storage.module.d.ts +2 -0
- package/dist/modules/storage/storage.module.js +24 -0
- package/dist/modules/storage/storage.module.js.map +1 -0
- package/dist/pipes/index.d.ts +13 -0
- package/dist/pipes/index.js +64 -0
- package/dist/pipes/index.js.map +1 -0
- package/dist/pipes/validate-mongo-id.pipe.js.map +1 -1
- package/dist/services/app-logger.service.js +1 -2
- package/dist/services/app-logger.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +16 -18
- package/src/clients/rest.client.ts +87 -70
- package/src/clients/session.client.ts +10 -20
- package/src/index.ts +36 -163
- package/src/models/commons/interfaces/base.interface.ts +2 -2
- package/src/models/interfaces/session/session.interface.ts +6 -6
- package/src/models/session/interfaces/session-client-data.interface.ts +2 -2
- package/src/models/util/interfaces/person.interface.ts +1 -7
- package/src/models/wrappers/rest-wrapper.class.ts +1 -4
- package/src/modules/core/index.ts +6 -0
- package/src/modules/core/models/enums/feed-type.enum.ts +6 -0
- package/src/modules/core/models/interfaces/feed-thin.interface.ts +10 -0
- package/src/modules/core/models/interfaces/index.ts +4 -0
- package/src/modules/core/models/interfaces/range.interface.ts +4 -0
- package/src/modules/core/models/interfaces/ref.interface.ts +7 -0
- package/src/modules/core/models/interfaces/scope.interface.ts +15 -0
- package/src/modules/core/models/schemas/index.ts +2 -0
- package/src/modules/core/models/schemas/range.embedded.ts +13 -0
- package/src/modules/core/models/schemas/scope.embedded.ts +41 -0
- package/src/modules/dictionary/index.ts +5 -0
- package/src/modules/dictionary/{dtos → models/dtos}/dictionary-list.dto.ts +9 -16
- package/src/modules/dictionary/models/interfaces/index.ts +31 -0
- package/src/{models/dictionary/embedded/dictionary.embedded.ts → modules/dictionary/models/schemas/index.ts} +9 -10
- package/src/modules/dictionary/services/dictionary.service.ts +56 -112
- package/src/modules/dmm/dmm.module.ts +13 -0
- package/src/modules/dmm/index.ts +4 -0
- package/src/modules/dmm/models/interfaces/index.ts +13 -0
- package/src/modules/dmm/models/schemas/index.ts +36 -0
- package/src/modules/dmm/services/dmm.service.ts +33 -0
- package/src/modules/emis/emis.module.ts +11 -0
- package/src/modules/emis/index.ts +3 -0
- package/src/modules/emis/models/interfaces/emis.interface.ts +37 -0
- package/src/modules/emis/services/emis.service.ts +30 -0
- package/src/modules/iam/iam.module.ts +11 -0
- package/src/modules/iam/index.ts +5 -0
- package/src/modules/iam/models/enums/index.ts +6 -0
- package/src/modules/iam/models/interfaces/index.ts +114 -0
- package/src/{models/util → modules/iam/models/schemas}/embedded/person.embedded.ts +5 -1
- package/src/modules/iam/models/schemas/embedded/user-person-info.embedded.ts +16 -0
- package/src/modules/iam/models/schemas/index.ts +2 -0
- package/src/modules/iam/services/iam.service.ts +35 -0
- package/src/modules/otp/index.ts +3 -0
- package/src/modules/otp/models/interfaces/index.ts +20 -0
- package/src/modules/otp/otp.module.ts +11 -0
- package/src/modules/otp/services/otp.service.ts +48 -0
- package/src/modules/session/functions/index.ts +24 -0
- package/src/modules/session/guards/permission.guard.ts +122 -0
- package/src/modules/session/guards/user.guard.ts +88 -0
- package/src/modules/session/index.ts +9 -0
- package/src/modules/session/models/classes/index.ts +3 -0
- package/src/modules/session/models/interfaces/index.ts +57 -0
- package/src/modules/{cache/reflector → session/reflectors}/permission.reflector.ts +1 -1
- package/src/modules/{cache → session}/services/redis.service.ts +23 -20
- package/src/modules/session/services/session-v1.service.ts +30 -0
- package/src/modules/session/services/session-v2.service.ts +122 -0
- package/src/modules/session/session.module.ts +14 -0
- package/src/modules/storage/index.ts +4 -0
- package/src/modules/storage/models/inerfaces/index.ts +8 -0
- package/src/modules/storage/models/schemas/index.ts +42 -0
- package/src/modules/storage/services/storage.service.ts +29 -0
- package/src/modules/storage/storage.module.ts +11 -0
- package/src/pipes/index.ts +49 -0
- package/src/pipes/validate-mongo-id.pipe.ts +1 -3
- package/pack/eh-commons-0.0.1-testing.98.tgz +0 -0
- package/src/functions/session/keyword.function.ts +0 -14
- package/src/models/dictionary/interfaces/dictionary-embedded.interface.ts +0 -11
- package/src/models/dictionary/interfaces/dictionary-event.interface.ts +0 -6
- package/src/models/dictionary/interfaces/dictionary-setting.interface.ts +0 -5
- package/src/models/dictionary/interfaces/dictionary.interface.ts +0 -13
- package/src/models/session/interfaces/session-user-data.interface.ts +0 -16
- package/src/models/um/enums/client-type.enum.ts +0 -6
- package/src/models/um/enums/permission-include-strategy.enum.ts +0 -5
- package/src/models/um/interfaces/client.interface.ts +0 -23
- package/src/models/um/interfaces/credentials.interface.ts +0 -4
- package/src/models/um/interfaces/permission.interface.ts +0 -11
- package/src/models/um/interfaces/prof-info.interface.ts +0 -5
- package/src/models/um/interfaces/role.interface.ts +0 -14
- package/src/models/um/interfaces/user-client.interface.ts +0 -10
- package/src/models/um/interfaces/user.interface.ts +0 -20
- package/src/models/wrappers/permission-guard-config.wrapper.ts +0 -5
- package/src/modules/cache/cache.module.ts +0 -13
- package/src/modules/cache/guards/permission.guard.ts +0 -109
- package/src/modules/cache/services/session.service.ts +0 -23
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { I18n } from '../../../../models/util/embedded/i18n.embedded';
|
|
2
|
+
import { IRef } from './ref.interface';
|
|
3
|
+
import { IScope } from './scope.interface';
|
|
4
|
+
|
|
5
|
+
export interface IFeedThin {
|
|
6
|
+
ref: IRef;
|
|
7
|
+
textNormal?: I18n;
|
|
8
|
+
textStylized?: I18n;
|
|
9
|
+
scope: IScope;
|
|
10
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IDictionaryEmbedded } from "../../../dictionary";
|
|
2
|
+
import { IRangeINT } from "./range.interface";
|
|
3
|
+
|
|
4
|
+
export interface IScope {
|
|
5
|
+
ageRange: IRangeINT;
|
|
6
|
+
genders: number[];
|
|
7
|
+
districts: IDictionaryEmbedded[];
|
|
8
|
+
teacherLevels: IDictionaryEmbedded[];
|
|
9
|
+
schoolTypes: IDictionaryEmbedded[];
|
|
10
|
+
languageSectors: IDictionaryEmbedded[];
|
|
11
|
+
subjects: IDictionaryEmbedded[];
|
|
12
|
+
levels: IDictionaryEmbedded[];
|
|
13
|
+
highland: boolean;
|
|
14
|
+
tags: IDictionaryEmbedded[];
|
|
15
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
|
|
2
|
+
import { IRangeINT } from '../interfaces';
|
|
3
|
+
|
|
4
|
+
@Schema({ _id: false })
|
|
5
|
+
export class RangeINT implements IRangeINT {
|
|
6
|
+
@Prop({ type: Number, required: false })
|
|
7
|
+
min: number;
|
|
8
|
+
|
|
9
|
+
@Prop({ type: Number, required: false })
|
|
10
|
+
max: number;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const RangeINTSchema = SchemaFactory.createForClass(RangeINT);
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
|
|
2
|
+
import { HydratedDocument } from 'mongoose';
|
|
3
|
+
import { RangeINTSchema } from './range.embedded';
|
|
4
|
+
import { IRangeINT, IScope } from '../interfaces';
|
|
5
|
+
import { DictionaryEmbedded, DictionaryEmbeddedSchema } from '../../../dictionary';
|
|
6
|
+
|
|
7
|
+
@Schema({ _id: false })
|
|
8
|
+
export class Scope implements IScope {
|
|
9
|
+
@Prop({ type: RangeINTSchema, required: false, default: null })
|
|
10
|
+
ageRange: IRangeINT;
|
|
11
|
+
|
|
12
|
+
@Prop({ type: [Number], required: false, default: [] })
|
|
13
|
+
genders: number[];
|
|
14
|
+
|
|
15
|
+
@Prop({ type: [DictionaryEmbeddedSchema], required: false, default: [] })
|
|
16
|
+
districts: DictionaryEmbedded[];
|
|
17
|
+
|
|
18
|
+
@Prop({ type: [DictionaryEmbeddedSchema], required: false, default: [] })
|
|
19
|
+
teacherLevels: DictionaryEmbedded[];
|
|
20
|
+
|
|
21
|
+
@Prop({ type: [DictionaryEmbeddedSchema], required: false, default: [] })
|
|
22
|
+
schoolTypes: DictionaryEmbedded[];
|
|
23
|
+
|
|
24
|
+
@Prop({ type: [DictionaryEmbeddedSchema], required: false, default: [] })
|
|
25
|
+
languageSectors: DictionaryEmbedded[];
|
|
26
|
+
|
|
27
|
+
@Prop({ type: [DictionaryEmbeddedSchema], required: false, default: [] })
|
|
28
|
+
subjects: DictionaryEmbedded[];
|
|
29
|
+
|
|
30
|
+
@Prop({ type: [DictionaryEmbeddedSchema], required: false, default: [] })
|
|
31
|
+
levels: DictionaryEmbedded[];
|
|
32
|
+
|
|
33
|
+
@Prop({ type: Boolean, required: false, default: null })
|
|
34
|
+
highland: boolean;
|
|
35
|
+
|
|
36
|
+
@Prop({ type: [DictionaryEmbeddedSchema], required: false, default: [] })
|
|
37
|
+
tags: DictionaryEmbedded[];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export const ScopeSchema = SchemaFactory.createForClass(Scope);
|
|
41
|
+
export type ScopeDocument = HydratedDocument<Scope>;
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
import { Transform } from 'class-transformer';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
IsBoolean,
|
|
5
|
-
IsEnum,
|
|
6
|
-
IsMongoId,
|
|
7
|
-
IsOptional,
|
|
8
|
-
IsString,
|
|
9
|
-
} from 'class-validator';
|
|
10
|
-
import { RecordState } from '../../../models/util/enums/record-state.enum';
|
|
2
|
+
import { ArrayUnique, IsBoolean, IsEnum, IsMongoId, IsOptional, IsString } from 'class-validator';
|
|
3
|
+
import { RecordState } from '../../../../models/util/enums/record-state.enum';
|
|
11
4
|
|
|
12
5
|
const toStringArray = (value: string | string[]) => {
|
|
13
6
|
return typeof value === 'string' ? [value] : value;
|
|
@@ -16,31 +9,31 @@ const toStringArray = (value: string | string[]) => {
|
|
|
16
9
|
export class DictionaryListDTO {
|
|
17
10
|
@IsOptional()
|
|
18
11
|
@IsBoolean()
|
|
19
|
-
rootOnly
|
|
12
|
+
rootOnly?: boolean;
|
|
20
13
|
|
|
21
14
|
@IsOptional()
|
|
22
15
|
@IsString()
|
|
23
|
-
keyword
|
|
16
|
+
keyword?: string;
|
|
24
17
|
|
|
25
18
|
@IsOptional()
|
|
26
19
|
@IsString()
|
|
27
|
-
title
|
|
20
|
+
title?: string;
|
|
28
21
|
|
|
29
22
|
@IsOptional()
|
|
30
23
|
@IsMongoId()
|
|
31
|
-
parentId
|
|
24
|
+
parentId?: string;
|
|
32
25
|
|
|
33
26
|
@IsOptional()
|
|
34
27
|
@IsMongoId()
|
|
35
|
-
originId
|
|
28
|
+
originId?: string;
|
|
36
29
|
|
|
37
30
|
@IsOptional()
|
|
38
31
|
@ArrayUnique()
|
|
39
32
|
@IsEnum(RecordState, { each: true })
|
|
40
33
|
@Transform(({ value }) => toStringArray(value))
|
|
41
|
-
recordStates
|
|
34
|
+
recordStates?: RecordState[];
|
|
42
35
|
|
|
43
36
|
@IsOptional()
|
|
44
37
|
@IsMongoId({ each: true })
|
|
45
|
-
ids
|
|
38
|
+
ids?: string[];
|
|
46
39
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { IBase } from '../../../../models/commons/interfaces/base.interface';
|
|
2
|
+
import { ResourceType } from '../../../../models/emis/enums/resource-type.enum';
|
|
3
|
+
import { II18n } from '../../../../models/util/interfaces/i18n.interface';
|
|
4
|
+
import { Types } from 'mongoose';
|
|
5
|
+
|
|
6
|
+
export interface IDictionaryEvent {
|
|
7
|
+
event: 'create' | 'update' | 'delete';
|
|
8
|
+
data: IDictionary;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface IDictionarySetting {
|
|
12
|
+
allowedTypes: ResourceType[];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface IDictionary extends IBase {
|
|
16
|
+
keyword: string;
|
|
17
|
+
originIds: Types.ObjectId[] | string[];
|
|
18
|
+
parentIds: Types.ObjectId[] | string[] | IDictionary[];
|
|
19
|
+
title: II18n;
|
|
20
|
+
settings: IDictionarySetting;
|
|
21
|
+
metas: Map<string, string>;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface IDictionaryEmbedded {
|
|
25
|
+
id: Types.ObjectId | string;
|
|
26
|
+
keyword: string;
|
|
27
|
+
originIds: Types.ObjectId[] | string[];
|
|
28
|
+
parentIds: Types.ObjectId[] | string[] | IDictionaryEmbedded[];
|
|
29
|
+
title: II18n;
|
|
30
|
+
metas: Map<string, string>;
|
|
31
|
+
}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
|
|
2
|
-
import { HydratedDocument,
|
|
3
|
-
import { I18n, I18nSchema } from '
|
|
4
|
-
import { IDictionaryEmbedded } from '../interfaces
|
|
2
|
+
import { HydratedDocument, SchemaTypes, Types } from 'mongoose';
|
|
3
|
+
import { I18n, I18nSchema } from '../../../../models/util/embedded/i18n.embedded';
|
|
4
|
+
import { IDictionaryEmbedded } from '../interfaces';
|
|
5
5
|
|
|
6
6
|
@Schema({ _id: false })
|
|
7
7
|
export class DictionaryEmbedded implements IDictionaryEmbedded {
|
|
8
|
+
@Prop({ type: SchemaTypes.ObjectId, required: false, default: null })
|
|
9
|
+
id: Types.ObjectId | string;
|
|
10
|
+
|
|
8
11
|
@Prop({ type: [SchemaTypes.ObjectId], required: true, default: [] })
|
|
9
|
-
originIds: ObjectId[];
|
|
12
|
+
originIds: Types.ObjectId[] | string[];
|
|
10
13
|
|
|
11
|
-
@Prop({
|
|
12
|
-
|
|
13
|
-
ref: 'Dictionary',
|
|
14
|
-
default: [],
|
|
15
|
-
})
|
|
16
|
-
parentIds: ObjectId[] | IDictionaryEmbedded[];
|
|
14
|
+
@Prop({ type: [SchemaTypes.ObjectId], required: false, default: [] })
|
|
15
|
+
parentIds: Types.ObjectId[] | string[];
|
|
17
16
|
|
|
18
17
|
@Prop({ type: I18nSchema, required: true })
|
|
19
18
|
title: I18n;
|
|
@@ -1,135 +1,79 @@
|
|
|
1
|
-
import { Injectable
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
2
|
import { ConfigService } from '@nestjs/config';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { ObjectId } from 'mongoose';
|
|
3
|
+
import { IDictionary, IDictionaryEmbedded } from '../models/interfaces';
|
|
4
|
+
import { ObjectId, Types } from 'mongoose';
|
|
6
5
|
import * as qs from 'qs';
|
|
7
|
-
import
|
|
8
|
-
import { DictionaryListDTO } from '../dtos/dictionary-list.dto';
|
|
6
|
+
import { DictionaryListDTO } from '../models/dtos/dictionary-list.dto';
|
|
9
7
|
import { plainToInstance } from 'class-transformer';
|
|
10
8
|
import { validateOrReject } from 'class-validator';
|
|
11
|
-
|
|
12
|
-
const BASE_URL = 'EH_DICTIONARIES__REST__BASE_URL';
|
|
9
|
+
import { RestClient } from '../../../clients';
|
|
13
10
|
|
|
14
11
|
@Injectable()
|
|
15
|
-
export class DictionaryService
|
|
16
|
-
|
|
17
|
-
private
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
export class DictionaryService {
|
|
13
|
+
//#region Private Members
|
|
14
|
+
private readonly _client: RestClient;
|
|
15
|
+
//#endregion
|
|
16
|
+
|
|
17
|
+
//#region Constructor
|
|
18
|
+
constructor(private readonly _configService: ConfigService) {
|
|
19
|
+
this._client = new RestClient({
|
|
20
|
+
name: 'DICTIONARY_SERVICE',
|
|
21
|
+
baseUrl: this._configService.get('EH_DICTIONARIES__REST__BASE_URL', ''),
|
|
22
|
+
timeout: 30000,
|
|
23
|
+
accessToken: this._configService.get('EH_DICTIONARIES__REST__ACCESS_TOKEN', ''),
|
|
23
24
|
});
|
|
24
25
|
}
|
|
26
|
+
//#endregion
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
onModuleInit() {
|
|
33
|
-
this.dctUrl = this._configService.get(BASE_URL);
|
|
28
|
+
//#region Public APIs
|
|
29
|
+
public async fetchActiveById(id: string | ObjectId) {
|
|
30
|
+
return this._client.get<IDictionary>(`/internals/v1/dictionaries/${id}`);
|
|
34
31
|
}
|
|
35
32
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
* @returns The dictionary if found, or throws an error.
|
|
40
|
-
*/
|
|
41
|
-
public async findById(id: string | ObjectId) {
|
|
42
|
-
this.validateRequest();
|
|
43
|
-
|
|
44
|
-
try {
|
|
45
|
-
const response = await this._instance.get<RESTResponseBody<IDictionary>>(`${this.dctUrl}/externals/v1/dictionaries/${id}`);
|
|
46
|
-
if (response.data.errors) {
|
|
47
|
-
if (response.data.errors.length === 0) {
|
|
48
|
-
throw new Error('UNKNOWN_ERROR');
|
|
49
|
-
}
|
|
50
|
-
throw new Error(response.data.errors[0].keyword);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
return response.data.result.data;
|
|
54
|
-
} catch (error) {
|
|
55
|
-
if (error instanceof RESTError) {
|
|
56
|
-
throw new Error(`DICTIONARY__API_ERROR. keyword: ${error.keyword}. statusCode: ${error.statusCode}`);
|
|
57
|
-
}
|
|
58
|
-
throw new Error(`DICTIONARY__API_ERROR: ${error.message}`);
|
|
59
|
-
}
|
|
33
|
+
public async fetchActivesByIds(ids: string[] | ObjectId[]) {
|
|
34
|
+
const requestBody = { data: { ids } };
|
|
35
|
+
return this._client.post<IDictionary[]>(`/internals/v1/dictionaries/by-ids`, requestBody);
|
|
60
36
|
}
|
|
61
37
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
* @param embedded - Whether to return embedded dictionaries.
|
|
66
|
-
* @returns The list of dictionaries if found, or throws an error.
|
|
67
|
-
*/
|
|
68
|
-
public async findByIds(ids: string[] | ObjectId[], embedded: true) {
|
|
69
|
-
this.validateRequest();
|
|
70
|
-
|
|
71
|
-
const query = qs.stringify({
|
|
72
|
-
ids,
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
try {
|
|
76
|
-
const response = await this._instance.get<RESTResponseBody<IDictionary[]>>(`/externals/v1/dictionaries?${query}`);
|
|
38
|
+
public async fetchActiveByKeyword(keyword: string) {
|
|
39
|
+
return this._client.get<IDictionary>(`/internals/v1/dictionaries/by-keyword/${keyword}`);
|
|
40
|
+
}
|
|
77
41
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
throw new Error(response.data.errors[0].keyword);
|
|
83
|
-
}
|
|
42
|
+
public async fetchActiveByOriginId(originId: string) {
|
|
43
|
+
return this._client.get<IDictionary>(`/internals/v1/dictionaries/by-origin/${originId}`);
|
|
44
|
+
}
|
|
84
45
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
} catch (error) {
|
|
90
|
-
if (error instanceof RESTError) {
|
|
91
|
-
throw new Error(`DICTIONARY__API_ERROR. keyword: ${error.keyword}. statusCode: ${error.statusCode}`);
|
|
92
|
-
}
|
|
93
|
-
if (error.data && error.data.errors) {
|
|
94
|
-
throw new Error(`DICTIONARY__API_ERROR. keyword: ${error.data.errors[0].keyword}. statusCode: ${error.statusCode}`);
|
|
95
|
-
}
|
|
96
|
-
throw new Error(`DICTIONARY__API_ERROR: ${error.message}`);
|
|
97
|
-
}
|
|
46
|
+
public async fetchList(filters: DictionaryListDTO) {
|
|
47
|
+
const query = qs.stringify(filters);
|
|
48
|
+
await this._validateListDTO(filters);
|
|
49
|
+
return this._client.get<IDictionary[]>(`/internals/v1/dictionaries?${query}`);
|
|
98
50
|
}
|
|
99
51
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
52
|
+
public toEmbedded(dictionary: IDictionary): IDictionaryEmbedded {
|
|
53
|
+
return {
|
|
54
|
+
id: dictionary._id,
|
|
55
|
+
originIds: dictionary.originIds,
|
|
56
|
+
parentIds: this._extractParentIds(dictionary.parentIds),
|
|
57
|
+
title: dictionary.title,
|
|
58
|
+
metas: dictionary.metas,
|
|
59
|
+
keyword: dictionary.keyword,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//#endregion
|
|
108
63
|
|
|
64
|
+
//#region Private APIs
|
|
65
|
+
private async _validateListDTO(filters: DictionaryListDTO) {
|
|
109
66
|
const filtersInstance = plainToInstance(DictionaryListDTO, filters);
|
|
110
67
|
await validateOrReject(filtersInstance);
|
|
68
|
+
}
|
|
111
69
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
throw new Error('UNKNOWN_ERROR');
|
|
120
|
-
}
|
|
121
|
-
throw new Error(response.data.errors[0].keyword);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
return response.data.result.data;
|
|
125
|
-
} catch (error) {
|
|
126
|
-
if (error instanceof RESTError) {
|
|
127
|
-
throw new Error(`DICTIONARY__API_ERROR. keyword: ${error.keyword}. statusCode: ${error.statusCode}`);
|
|
128
|
-
}
|
|
129
|
-
if (error.data && error.data.errors) {
|
|
130
|
-
throw new Error(`DICTIONARY__API_ERROR. keyword: ${error.data.errors[0].keyword}. statusCode: ${error.statusCode}`);
|
|
131
|
-
}
|
|
132
|
-
throw new Error(`DICTIONARY__API_ERROR: ${error.message}`);
|
|
133
|
-
}
|
|
70
|
+
private _extractParentIds(parentIds: Types.ObjectId[] | string[] | IDictionary[]): string[] {
|
|
71
|
+
if (!parentIds || !parentIds.length) return [];
|
|
72
|
+
return parentIds.map((item: Types.ObjectId | string | IDictionary) => {
|
|
73
|
+
if (typeof item === 'string') return item;
|
|
74
|
+
if (item instanceof Types.ObjectId) return item.toString();
|
|
75
|
+
return (item as IDictionary)._id.toString();
|
|
76
|
+
});
|
|
134
77
|
}
|
|
78
|
+
//#endregion
|
|
135
79
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Module } from '@nestjs/common';
|
|
2
|
+
import { MongooseModule } from '@nestjs/mongoose';
|
|
3
|
+
import { DMMService } from './services/dmm.service';
|
|
4
|
+
import { DeadMessage, DeadMessageSchema } from './models/schemas';
|
|
5
|
+
|
|
6
|
+
@Module({
|
|
7
|
+
imports: [
|
|
8
|
+
MongooseModule.forFeature([{ name: DeadMessage.name, schema: DeadMessageSchema }]),
|
|
9
|
+
],
|
|
10
|
+
providers: [DMMService],
|
|
11
|
+
exports: [DMMService],
|
|
12
|
+
})
|
|
13
|
+
export class DMMModule {}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Types } from 'mongoose';
|
|
2
|
+
|
|
3
|
+
export interface IDeadMessage {
|
|
4
|
+
_id?: Types.ObjectId | string;
|
|
5
|
+
topic: string;
|
|
6
|
+
key?: string;
|
|
7
|
+
headers?: Map<string, string>;
|
|
8
|
+
message?: string;
|
|
9
|
+
ex?: string;
|
|
10
|
+
resolved: boolean;
|
|
11
|
+
createdAt: Date;
|
|
12
|
+
resolvedAt?: Date;
|
|
13
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
|
|
2
|
+
import { HydratedDocument, SchemaTypes, Types } from 'mongoose';
|
|
3
|
+
import { IDeadMessage } from '../interfaces';
|
|
4
|
+
|
|
5
|
+
@Schema({ collection: 'dead-messages' })
|
|
6
|
+
export class DeadMessage implements IDeadMessage {
|
|
7
|
+
@Prop({ type: SchemaTypes.ObjectId, required: false, default: null })
|
|
8
|
+
_id: Types.ObjectId | string;
|
|
9
|
+
|
|
10
|
+
@Prop({ type: String, required: true, default: null })
|
|
11
|
+
topic: string;
|
|
12
|
+
|
|
13
|
+
@Prop({ type: String, required: false, default: null })
|
|
14
|
+
key: string;
|
|
15
|
+
|
|
16
|
+
@Prop({ type: Map, of: String, default: new Map() })
|
|
17
|
+
headers: Map<string, string>;
|
|
18
|
+
|
|
19
|
+
@Prop({ type: String, required: false, default: null })
|
|
20
|
+
message: string;
|
|
21
|
+
|
|
22
|
+
@Prop({ type: String, required: false, default: null })
|
|
23
|
+
ex?: string;
|
|
24
|
+
|
|
25
|
+
@Prop({ type: Boolean, required: false, default: null })
|
|
26
|
+
resolved: boolean;
|
|
27
|
+
|
|
28
|
+
@Prop({ type: Date, required: true, default: null })
|
|
29
|
+
createdAt: Date;
|
|
30
|
+
|
|
31
|
+
@Prop({ type: Date, required: false, default: null })
|
|
32
|
+
resolvedAt: Date;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export const DeadMessageSchema = SchemaFactory.createForClass(DeadMessage);
|
|
36
|
+
export type DeadMessageDocument = HydratedDocument<DeadMessage>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { InjectModel } from '@nestjs/mongoose';
|
|
3
|
+
import { Model, Types } from 'mongoose';
|
|
4
|
+
import { DeadMessage, DeadMessageDocument } from '../models/schemas';
|
|
5
|
+
import { IDeadMessage } from '../models/interfaces';
|
|
6
|
+
|
|
7
|
+
@Injectable()
|
|
8
|
+
export class DMMService {
|
|
9
|
+
//#region Constructor
|
|
10
|
+
constructor(
|
|
11
|
+
@InjectModel(DeadMessage.name)
|
|
12
|
+
private readonly _deadMessageModel: Model<DeadMessageDocument>,
|
|
13
|
+
) {}
|
|
14
|
+
//#endregion
|
|
15
|
+
|
|
16
|
+
//#region Public APIs
|
|
17
|
+
public async create(message: IDeadMessage) {
|
|
18
|
+
return new this._deadMessageModel({
|
|
19
|
+
...message,
|
|
20
|
+
resolved: false,
|
|
21
|
+
createdAt: new Date(),
|
|
22
|
+
}).save();
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public async resolve(id: string | Types.ObjectId) {
|
|
26
|
+
return this._deadMessageModel.findByIdAndUpdate(id, { $set: { resolved: true, resolvedAt: new Date() } }, { new: true });
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public async deleteResolveds() {
|
|
30
|
+
return this._deadMessageModel.deleteMany({ resolved: true });
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Module } from '@nestjs/common';
|
|
2
|
+
import { ConfigModule } from '@nestjs/config';
|
|
3
|
+
import { EMISService } from './services/emis.service';
|
|
4
|
+
|
|
5
|
+
@Module({
|
|
6
|
+
imports: [ConfigModule],
|
|
7
|
+
controllers: [],
|
|
8
|
+
providers: [EMISService],
|
|
9
|
+
exports: [EMISService],
|
|
10
|
+
})
|
|
11
|
+
export class EMISModule {}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Types } from 'mongoose';
|
|
2
|
+
|
|
3
|
+
export interface IResourceItem {
|
|
4
|
+
_id: string | Types.ObjectId;
|
|
5
|
+
name: string;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface ISchoolProjection {
|
|
9
|
+
_id: string | Types.ObjectId;
|
|
10
|
+
code: number;
|
|
11
|
+
name: {
|
|
12
|
+
ge: string;
|
|
13
|
+
en: string;
|
|
14
|
+
};
|
|
15
|
+
region: IResourceItem;
|
|
16
|
+
district: IResourceItem;
|
|
17
|
+
type: IResourceItem;
|
|
18
|
+
languageSectors: IResourceItem[];
|
|
19
|
+
levels: IResourceItem[];
|
|
20
|
+
subjects: IResourceItem[];
|
|
21
|
+
phone?: string;
|
|
22
|
+
email?: string;
|
|
23
|
+
highland: boolean;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface ITeacherProjection {
|
|
27
|
+
pid: string;
|
|
28
|
+
firstName: string;
|
|
29
|
+
lastName: string;
|
|
30
|
+
level: IResourceItem;
|
|
31
|
+
birthDate?: Date;
|
|
32
|
+
gender?: number;
|
|
33
|
+
phone?: string;
|
|
34
|
+
email?: string;
|
|
35
|
+
address?: string;
|
|
36
|
+
schools: ISchoolProjection[];
|
|
37
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { ConfigService } from '@nestjs/config';
|
|
3
|
+
import { RestClient } from '../../../clients';
|
|
4
|
+
import { ITeacherProjection } from '../models/interfaces/emis.interface';
|
|
5
|
+
import * as qs from 'qs';
|
|
6
|
+
|
|
7
|
+
@Injectable()
|
|
8
|
+
export class EMISService {
|
|
9
|
+
//#region Private Members
|
|
10
|
+
private readonly _client: RestClient;
|
|
11
|
+
//#endregion
|
|
12
|
+
|
|
13
|
+
//#region Constructor
|
|
14
|
+
constructor(private _configService: ConfigService) {
|
|
15
|
+
this._client = new RestClient({
|
|
16
|
+
name: 'EMIS_SERVICE',
|
|
17
|
+
baseUrl: this._configService.get('EH_EMIS__REST__BASE_URL', ''),
|
|
18
|
+
timeout: 30000,
|
|
19
|
+
accessToken: this._configService.get('EH_EMIS__REST__ACCESS_TOKEN', ''),
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
|
|
24
|
+
//#region Public APIs
|
|
25
|
+
public async fetchTeacher(email: string, pid: string) {
|
|
26
|
+
const query = qs.stringify({ email, pid });
|
|
27
|
+
return await this._client.get<ITeacherProjection>(`/internals/v1/resources/emis/fetch-teachers?${query}`);
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Module } from '@nestjs/common';
|
|
2
|
+
import { ConfigModule } from '@nestjs/config';
|
|
3
|
+
import { IAMService } from './services/iam.service';
|
|
4
|
+
|
|
5
|
+
@Module({
|
|
6
|
+
imports: [ConfigModule],
|
|
7
|
+
controllers: [],
|
|
8
|
+
providers: [IAMService],
|
|
9
|
+
exports: [IAMService],
|
|
10
|
+
})
|
|
11
|
+
export class IAMModule {}
|