storemw-core-api 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/dist/app.d.ts +2 -0
- package/dist/app.js +46 -0
- package/dist/configs/config.d.ts +7 -0
- package/dist/configs/config.js +30 -0
- package/dist/configs/index.d.ts +1 -0
- package/dist/configs/index.js +5 -0
- package/dist/configs/production.env +6 -0
- package/dist/controllers/auth/authController.d.ts +3 -0
- package/dist/controllers/auth/authController.js +53 -0
- package/dist/controllers/index.d.ts +6 -0
- package/dist/controllers/index.js +39 -0
- package/dist/controllers/injection_field/injectionFieldController.d.ts +11 -0
- package/dist/controllers/injection_field/injectionFieldController.js +183 -0
- package/dist/controllers/item/itemController.d.ts +13 -0
- package/dist/controllers/item/itemController.js +344 -0
- package/dist/controllers/location/locationController.d.ts +13 -0
- package/dist/controllers/location/locationController.js +383 -0
- package/dist/controllers/region/regionController.d.ts +13 -0
- package/dist/controllers/region/regionController.js +328 -0
- package/dist/controllers/user/userController.d.ts +13 -0
- package/dist/controllers/user/userController.js +474 -0
- package/dist/generated/generated/prisma/client.d.ts +1 -0
- package/dist/generated/generated/prisma/client.js +4 -0
- package/dist/generated/generated/prisma/default.d.ts +1 -0
- package/dist/generated/generated/prisma/default.js +4 -0
- package/dist/generated/generated/prisma/edge.d.ts +1 -0
- package/dist/generated/generated/prisma/edge.js +2470 -0
- package/dist/generated/generated/prisma/index-browser.js +2456 -0
- package/dist/generated/generated/prisma/index.d.ts +198861 -0
- package/dist/generated/generated/prisma/index.js +2491 -0
- package/dist/generated/generated/prisma/libquery_engine-darwin-arm64.dylib.node +0 -0
- package/dist/generated/generated/prisma/package.json +183 -0
- package/dist/generated/generated/prisma/query_engine_bg.js +2 -0
- package/dist/generated/generated/prisma/query_engine_bg.wasm +0 -0
- package/dist/generated/generated/prisma/runtime/edge-esm.js +34 -0
- package/dist/generated/generated/prisma/runtime/edge.js +34 -0
- package/dist/generated/generated/prisma/runtime/index-browser.d.ts +370 -0
- package/dist/generated/generated/prisma/runtime/index-browser.js +16 -0
- package/dist/generated/generated/prisma/runtime/library.d.ts +3976 -0
- package/dist/generated/generated/prisma/runtime/library.js +146 -0
- package/dist/generated/generated/prisma/runtime/react-native.js +83 -0
- package/dist/generated/generated/prisma/runtime/wasm-compiler-edge.js +84 -0
- package/dist/generated/generated/prisma/runtime/wasm-engine-edge.js +36 -0
- package/dist/generated/generated/prisma/schema.prisma +2663 -0
- package/dist/generated/generated/prisma/wasm-edge-light-loader.mjs +4 -0
- package/dist/generated/generated/prisma/wasm-worker-loader.mjs +4 -0
- package/dist/generated/generated/prisma/wasm.d.ts +1 -0
- package/dist/generated/generated/prisma/wasm.js +2477 -0
- package/dist/generated/prisma/client.d.ts +1 -0
- package/dist/generated/prisma/client.js +4 -0
- package/dist/generated/prisma/default.d.ts +1 -0
- package/dist/generated/prisma/default.js +4 -0
- package/dist/generated/prisma/edge.d.ts +1 -0
- package/dist/generated/prisma/edge.js +2467 -0
- package/dist/generated/prisma/index-browser.js +2453 -0
- package/dist/generated/prisma/index.d.ts +185588 -0
- package/dist/generated/prisma/index.js +2488 -0
- package/dist/generated/prisma/libquery_engine-darwin-arm64.dylib.node +0 -0
- package/dist/generated/prisma/package.json +183 -0
- package/dist/generated/prisma/query_engine_bg.js +2 -0
- package/dist/generated/prisma/query_engine_bg.wasm +0 -0
- package/dist/generated/prisma/runtime/edge-esm.js +34 -0
- package/dist/generated/prisma/runtime/edge.js +34 -0
- package/dist/generated/prisma/runtime/index-browser.d.ts +370 -0
- package/dist/generated/prisma/runtime/index-browser.js +16 -0
- package/dist/generated/prisma/runtime/library.d.ts +3976 -0
- package/dist/generated/prisma/runtime/library.js +146 -0
- package/dist/generated/prisma/runtime/react-native.js +83 -0
- package/dist/generated/prisma/runtime/wasm-compiler-edge.js +84 -0
- package/dist/generated/prisma/runtime/wasm-engine-edge.js +36 -0
- package/dist/generated/prisma/schema.prisma +2597 -0
- package/dist/generated/prisma/wasm-edge-light-loader.mjs +4 -0
- package/dist/generated/prisma/wasm-worker-loader.mjs +4 -0
- package/dist/generated/prisma/wasm.d.ts +1 -0
- package/dist/generated/prisma/wasm.js +2474 -0
- package/dist/helpers/index.d.ts +1 -0
- package/dist/helpers/index.js +5 -0
- package/dist/helpers/prismaHelper.d.ts +2 -0
- package/dist/helpers/prismaHelper.js +75 -0
- package/dist/helpers/unuse/queryHelper.d.ts +19 -0
- package/dist/helpers/unuse/queryHelper.js +60 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +13 -0
- package/dist/lib/prisma.d.ts +13 -0
- package/dist/lib/prisma.js +32 -0
- package/dist/middlewares/request/index.d.ts +3 -0
- package/dist/middlewares/request/index.js +12 -0
- package/dist/middlewares/request/initialPrisma.d.ts +2 -0
- package/dist/middlewares/request/initialPrisma.js +10 -0
- package/dist/middlewares/request/validateAuthorization.d.ts +2 -0
- package/dist/middlewares/request/validateAuthorization.js +40 -0
- package/dist/middlewares/request/validateCors.d.ts +6 -0
- package/dist/middlewares/request/validateCors.js +20 -0
- package/dist/middlewares/request/validateHeader.d.ts +2 -0
- package/dist/middlewares/request/validateHeader.js +49 -0
- package/dist/middlewares/request/validateSignature.d.ts +10 -0
- package/dist/middlewares/request/validateSignature.js +48 -0
- package/dist/middlewares/route/index.d.ts +6 -0
- package/dist/middlewares/route/index.js +33 -0
- package/dist/middlewares/route/validateAuth.d.ts +2 -0
- package/dist/middlewares/route/validateAuth.js +8 -0
- package/dist/middlewares/route/validateDocument.d.ts +2 -0
- package/dist/middlewares/route/validateDocument.js +33 -0
- package/dist/middlewares/route/validateInjectionField.d.ts +3 -0
- package/dist/middlewares/route/validateInjectionField.js +38 -0
- package/dist/middlewares/route/validateItem.d.ts +6 -0
- package/dist/middlewares/route/validateItem.js +23 -0
- package/dist/middlewares/route/validateLocation.d.ts +6 -0
- package/dist/middlewares/route/validateLocation.js +22 -0
- package/dist/middlewares/route/validateRegion.d.ts +5 -0
- package/dist/middlewares/route/validateRegion.js +39 -0
- package/dist/middlewares/route/validateRepository.d.ts +2 -0
- package/dist/middlewares/route/validateRepository.js +33 -0
- package/dist/middlewares/route/validateUser.d.ts +6 -0
- package/dist/middlewares/route/validateUser.js +23 -0
- package/dist/middlewares/unuse/errorHandler.d.ts +2 -0
- package/dist/middlewares/unuse/errorHandler.js +9 -0
- package/dist/models/ModelFactory.d.ts +38 -0
- package/dist/models/ModelFactory.js +137 -0
- package/dist/models/account/AccountModel.d.ts +144 -0
- package/dist/models/account/AccountModel.js +15 -0
- package/dist/models/branch/BranchModel.d.ts +259 -0
- package/dist/models/branch/BranchModel.js +15 -0
- package/dist/models/branch_user/BranchUserModel.d.ts +140 -0
- package/dist/models/branch_user/BranchUserModel.js +15 -0
- package/dist/models/business/BusinessModel.d.ts +214 -0
- package/dist/models/business/BusinessModel.js +15 -0
- package/dist/models/default.d.ts +41 -0
- package/dist/models/default.js +54 -0
- package/dist/models/group/GroupModel.d.ts +158 -0
- package/dist/models/group/GroupModel.js +15 -0
- package/dist/models/group/GroupOwnerModel.d.ts +151 -0
- package/dist/models/group/GroupOwnerModel.js +15 -0
- package/dist/models/index.d.ts +58 -0
- package/dist/models/index.js +91 -0
- package/dist/models/injection_field/DocumentInjectionFieldModel.d.ts +431 -0
- package/dist/models/injection_field/DocumentInjectionFieldModel.js +15 -0
- package/dist/models/injection_field/InjectionFieldModel.d.ts +193 -0
- package/dist/models/injection_field/InjectionFieldModel.js +46 -0
- package/dist/models/injection_field/ItemInjectionFieldModel.d.ts +347 -0
- package/dist/models/injection_field/ItemInjectionFieldModel.js +15 -0
- package/dist/models/injection_field/LogisticInjectionFieldModel.d.ts +158 -0
- package/dist/models/injection_field/LogisticInjectionFieldModel.js +15 -0
- package/dist/models/injection_field/RepositoryInjectionFieldModel.d.ts +193 -0
- package/dist/models/injection_field/RepositoryInjectionFieldModel.js +15 -0
- package/dist/models/injection_field/UserInjectionFieldModel.d.ts +263 -0
- package/dist/models/injection_field/UserInjectionFieldModel.js +15 -0
- package/dist/models/item/BrandModel.d.ts +147 -0
- package/dist/models/item/BrandModel.js +15 -0
- package/dist/models/item/CategoryModel.d.ts +154 -0
- package/dist/models/item/CategoryModel.js +15 -0
- package/dist/models/item/ItemModel.d.ts +294 -0
- package/dist/models/item/ItemModel.js +15 -0
- package/dist/models/item/ProductModel.d.ts +182 -0
- package/dist/models/item/ProductModel.js +15 -0
- package/dist/models/item/UomModel.d.ts +168 -0
- package/dist/models/item/UomModel.js +15 -0
- package/dist/models/location/LocationModel.d.ts +235 -0
- package/dist/models/location/LocationModel.js +15 -0
- package/dist/models/location/LocationRackModel.d.ts +172 -0
- package/dist/models/location/LocationRackModel.js +15 -0
- package/dist/models/location/LocationSlotModel.d.ts +165 -0
- package/dist/models/location/LocationSlotModel.js +15 -0
- package/dist/models/region/AreaModel.d.ts +154 -0
- package/dist/models/region/AreaModel.js +15 -0
- package/dist/models/region/CountryModel.d.ts +154 -0
- package/dist/models/region/CountryModel.js +15 -0
- package/dist/models/region/StateModel.d.ts +147 -0
- package/dist/models/region/StateModel.js +15 -0
- package/dist/models/user/AdministratorModel.d.ts +133 -0
- package/dist/models/user/AdministratorModel.js +15 -0
- package/dist/models/user/CustomerModel.d.ts +196 -0
- package/dist/models/user/CustomerModel.js +15 -0
- package/dist/models/user/UserModel.d.ts +189 -0
- package/dist/models/user/UserModel.js +15 -0
- package/dist/models/user/UserPropModel.d.ts +175 -0
- package/dist/models/user/UserPropModel.js +15 -0
- package/dist/models/user/UserStatusModel.d.ts +154 -0
- package/dist/models/user/UserStatusModel.js +15 -0
- package/dist/models/user/WorkerModel.d.ts +140 -0
- package/dist/models/user/WorkerModel.js +15 -0
- package/dist/models/user/bk_UserModel.d.ts +43 -0
- package/dist/models/user/bk_UserModel.js +79 -0
- package/dist/routes/auth/authRoutes.d.ts +1 -0
- package/dist/routes/auth/authRoutes.js +13 -0
- package/dist/routes/index.d.ts +11 -0
- package/dist/routes/index.js +25 -0
- package/dist/routes/injection_field/injectionFieldRoutes.d.ts +1 -0
- package/dist/routes/injection_field/injectionFieldRoutes.js +22 -0
- package/dist/routes/injection_field/injectionFieldsRoutes.d.ts +1 -0
- package/dist/routes/injection_field/injectionFieldsRoutes.js +15 -0
- package/dist/routes/item/itemRoutes.d.ts +1 -0
- package/dist/routes/item/itemRoutes.js +20 -0
- package/dist/routes/item/itemsRoutes.d.ts +1 -0
- package/dist/routes/item/itemsRoutes.js +15 -0
- package/dist/routes/location/locationRoutes.d.ts +1 -0
- package/dist/routes/location/locationRoutes.js +20 -0
- package/dist/routes/location/locationsRoutes.d.ts +1 -0
- package/dist/routes/location/locationsRoutes.js +25 -0
- package/dist/routes/region/regionRoutes.d.ts +1 -0
- package/dist/routes/region/regionRoutes.js +25 -0
- package/dist/routes/region/regionsRoutes.d.ts +1 -0
- package/dist/routes/region/regionsRoutes.js +33 -0
- package/dist/routes/user/userRoutes.d.ts +1 -0
- package/dist/routes/user/userRoutes.js +19 -0
- package/dist/routes/user/usersRoutes.d.ts +1 -0
- package/dist/routes/user/usersRoutes.js +15 -0
- package/dist/schema/common/index.d.ts +2 -0
- package/dist/schema/common/index.js +9 -0
- package/dist/schema/common/unuse/response.d.ts +54 -0
- package/dist/schema/common/unuse/response.js +22 -0
- package/dist/schema/middleware/request/index.d.ts +2 -0
- package/dist/schema/middleware/request/index.js +6 -0
- package/dist/schema/middleware/request/schemaAuthorization.d.ts +1 -0
- package/dist/schema/middleware/request/schemaAuthorization.js +8 -0
- package/dist/schema/middleware/request/schemaHeader.d.ts +9 -0
- package/dist/schema/middleware/request/schemaHeader.js +10 -0
- package/dist/schema/middleware/request/validateQuery_bk250827.d.ts +27 -0
- package/dist/schema/middleware/request/validateQuery_bk250827.js +62 -0
- package/dist/schema/middleware/route/index.d.ts +13 -0
- package/dist/schema/middleware/route/index.js +17 -0
- package/dist/schema/middleware/route/schemaDocument.d.ts +10 -0
- package/dist/schema/middleware/route/schemaDocument.js +9 -0
- package/dist/schema/middleware/route/schemaItem.d.ts +10 -0
- package/dist/schema/middleware/route/schemaItem.js +9 -0
- package/dist/schema/middleware/route/schemaLocation.d.ts +10 -0
- package/dist/schema/middleware/route/schemaLocation.js +9 -0
- package/dist/schema/middleware/route/schemaQueryList.d.ts +88 -0
- package/dist/schema/middleware/route/schemaQueryList.js +139 -0
- package/dist/schema/middleware/route/schemaRegion.d.ts +10 -0
- package/dist/schema/middleware/route/schemaRegion.js +9 -0
- package/dist/schema/middleware/route/schemaRepository.d.ts +10 -0
- package/dist/schema/middleware/route/schemaRepository.js +9 -0
- package/dist/schema/middleware/route/schemaUser.d.ts +10 -0
- package/dist/schema/middleware/route/schemaUser.js +9 -0
- package/dist/schema/payload/auth/schemaAuthToken.d.ts +43 -0
- package/dist/schema/payload/auth/schemaAuthToken.js +16 -0
- package/dist/schema/payload/index.d.ts +28 -0
- package/dist/schema/payload/index.js +48 -0
- package/dist/schema/payload/injection_field/schemaInjectionField.d.ts +548 -0
- package/dist/schema/payload/injection_field/schemaInjectionField.js +141 -0
- package/dist/schema/payload/item/schemaItem.d.ts +33 -0
- package/dist/schema/payload/item/schemaItem.js +13 -0
- package/dist/schema/payload/item/schemaItemBrand.d.ts +131 -0
- package/dist/schema/payload/item/schemaItemBrand.js +32 -0
- package/dist/schema/payload/item/schemaItemCategory.d.ts +145 -0
- package/dist/schema/payload/item/schemaItemCategory.js +34 -0
- package/dist/schema/payload/item/schemaItemItem.d.ts +244 -0
- package/dist/schema/payload/item/schemaItemItem.js +70 -0
- package/dist/schema/payload/item/schemaItemUom.d.ts +173 -0
- package/dist/schema/payload/item/schemaItemUom.js +38 -0
- package/dist/schema/payload/location/schemaLocationLocation.d.ts +297 -0
- package/dist/schema/payload/location/schemaLocationLocation.js +61 -0
- package/dist/schema/payload/region/schemaRegionArea.d.ts +91 -0
- package/dist/schema/payload/region/schemaRegionArea.js +32 -0
- package/dist/schema/payload/region/schemaRegionCountry.d.ts +62 -0
- package/dist/schema/payload/region/schemaRegionCountry.js +28 -0
- package/dist/schema/payload/region/schemaRegionState.d.ts +127 -0
- package/dist/schema/payload/region/schemaRegionState.js +44 -0
- package/dist/schema/payload/schemaUser.d.ts +101 -0
- package/dist/schema/payload/schemaUser.js +78 -0
- package/dist/schema/payload/user/schemaUser.d.ts +33 -0
- package/dist/schema/payload/user/schemaUser.js +13 -0
- package/dist/schema/payload/user/schemaUserAdministrator.d.ts +244 -0
- package/dist/schema/payload/user/schemaUserAdministrator.js +70 -0
- package/dist/schema/payload/user/schemaUserCustomer.d.ts +389 -0
- package/dist/schema/payload/user/schemaUserCustomer.js +70 -0
- package/dist/schema/payload/user/schemaUserWorker.d.ts +277 -0
- package/dist/schema/payload/user/schemaUserWorker.js +71 -0
- package/dist/services/account/AccountService.d.ts +28 -0
- package/dist/services/account/AccountService.js +152 -0
- package/dist/services/auth/AuthService.d.ts +39 -0
- package/dist/services/auth/AuthService.js +123 -0
- package/dist/services/branch/BranchService.d.ts +32 -0
- package/dist/services/branch/BranchService.js +120 -0
- package/dist/services/branch_user/BranchUserService.d.ts +12 -0
- package/dist/services/branch_user/BranchUserService.js +148 -0
- package/dist/services/index.d.ts +14 -0
- package/dist/services/index.js +21 -0
- package/dist/services/injection_field/DocumentInjectionFieldService.d.ts +135 -0
- package/dist/services/injection_field/DocumentInjectionFieldService.js +79 -0
- package/dist/services/injection_field/InjectionFieldService.d.ts +137 -0
- package/dist/services/injection_field/InjectionFieldService.js +266 -0
- package/dist/services/injection_field/ItemInjectionFieldService.d.ts +92 -0
- package/dist/services/injection_field/ItemInjectionFieldService.js +68 -0
- package/dist/services/injection_field/LogisticInjectionFieldService.d.ts +45 -0
- package/dist/services/injection_field/LogisticInjectionFieldService.js +72 -0
- package/dist/services/injection_field/RepositoryInjectionFieldService.d.ts +61 -0
- package/dist/services/injection_field/RepositoryInjectionFieldService.js +66 -0
- package/dist/services/injection_field/UserInjectionFieldService.d.ts +98 -0
- package/dist/services/injection_field/UserInjectionFieldService.js +79 -0
- package/dist/services/item/ItemBrandService.d.ts +84 -0
- package/dist/services/item/ItemBrandService.js +151 -0
- package/dist/services/item/ItemCategoryService.d.ts +89 -0
- package/dist/services/item/ItemCategoryService.js +234 -0
- package/dist/services/item/ItemItemService.d.ts +141 -0
- package/dist/services/item/ItemItemService.js +263 -0
- package/dist/services/item/ItemProductService.d.ts +146 -0
- package/dist/services/item/ItemProductService.js +284 -0
- package/dist/services/item/ItemService.d.ts +65 -0
- package/dist/services/item/ItemService.js +226 -0
- package/dist/services/item/ItemUomService.d.ts +101 -0
- package/dist/services/item/ItemUomService.js +159 -0
- package/dist/services/location/LocationLocationService.d.ts +144 -0
- package/dist/services/location/LocationLocationService.js +270 -0
- package/dist/services/location/LocationRackService.d.ts +98 -0
- package/dist/services/location/LocationRackService.js +275 -0
- package/dist/services/location/LocationService.d.ts +52 -0
- package/dist/services/location/LocationService.js +152 -0
- package/dist/services/location/LocationSlotService.d.ts +91 -0
- package/dist/services/location/LocationSlotService.js +142 -0
- package/dist/services/region/AreaService.d.ts +87 -0
- package/dist/services/region/AreaService.js +142 -0
- package/dist/services/region/CountryService.d.ts +103 -0
- package/dist/services/region/CountryService.js +155 -0
- package/dist/services/region/RegionService.d.ts +45 -0
- package/dist/services/region/RegionService.js +152 -0
- package/dist/services/region/StateService.d.ts +85 -0
- package/dist/services/region/StateService.js +189 -0
- package/dist/services/supabase/supabaseClient.d.ts +1 -0
- package/dist/services/supabase/supabaseClient.js +8 -0
- package/dist/services/user/AdministratorService.d.ts +73 -0
- package/dist/services/user/AdministratorService.js +263 -0
- package/dist/services/user/CustomerService.d.ts +123 -0
- package/dist/services/user/CustomerService.js +268 -0
- package/dist/services/user/UserPropService.d.ts +40 -0
- package/dist/services/user/UserPropService.js +139 -0
- package/dist/services/user/UserService.d.ts +92 -0
- package/dist/services/user/UserService.js +260 -0
- package/dist/services/user/WorkerService.d.ts +83 -0
- package/dist/services/user/WorkerService.js +227 -0
- package/dist/utils/dateUtils.d.ts +4 -0
- package/dist/utils/dateUtils.js +23 -0
- package/dist/utils/exceptionUtils.d.ts +8 -0
- package/dist/utils/exceptionUtils.js +25 -0
- package/dist/utils/index.d.ts +15 -0
- package/dist/utils/index.js +52 -0
- package/dist/utils/injectionFieldUtils.d.ts +1 -0
- package/dist/utils/injectionFieldUtils.js +22 -0
- package/dist/utils/jwtUtils.d.ts +3 -0
- package/dist/utils/jwtUtils.js +22 -0
- package/dist/utils/logUtils.d.ts +3 -0
- package/dist/utils/logUtils.js +60 -0
- package/dist/utils/queryBuilder.d.ts +74 -0
- package/dist/utils/queryBuilder.js +163 -0
- package/dist/utils/requestUtils.d.ts +3 -0
- package/dist/utils/requestUtils.js +11 -0
- package/dist/utils/responseUtils.d.ts +14 -0
- package/dist/utils/responseUtils.js +42 -0
- package/dist/utils/schemaUtils.d.ts +21 -0
- package/dist/utils/schemaUtils.js +95 -0
- package/dist/utils/serviceUtils.d.ts +12 -0
- package/dist/utils/serviceUtils.js +11 -0
- package/dist/utils/services/storage.d.ts +22 -0
- package/dist/utils/services/storage.js +64 -0
- package/dist/utils/shapeUtils.d.ts +1 -0
- package/dist/utils/shapeUtils.js +36 -0
- package/dist/utils/smwUtils.d.ts +1 -0
- package/dist/utils/smwUtils.js +9 -0
- package/dist/utils/zodUtils.d.ts +6 -0
- package/dist/utils/zodUtils.js +17 -0
- package/package.json +94 -0
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserService = exports.userTypes = void 0;
|
|
4
|
+
const models_1 = require("../../models");
|
|
5
|
+
const UserPropService_1 = require("./UserPropService");
|
|
6
|
+
const CustomerService_1 = require("./CustomerService");
|
|
7
|
+
const AdministratorService_1 = require("./AdministratorService");
|
|
8
|
+
const WorkerService_1 = require("./WorkerService");
|
|
9
|
+
const utils_1 = require("../../utils");
|
|
10
|
+
exports.userTypes = {
|
|
11
|
+
administrator: "administrator",
|
|
12
|
+
worker: "worker",
|
|
13
|
+
supplier: "supplier",
|
|
14
|
+
customer: "customer",
|
|
15
|
+
driver: "driver",
|
|
16
|
+
retailer: "retailer",
|
|
17
|
+
member: "member",
|
|
18
|
+
};
|
|
19
|
+
const getCreatePayload = (userType, data) => {
|
|
20
|
+
if ("user" in data) {
|
|
21
|
+
return {
|
|
22
|
+
[`${models_1.ModelUserFields.login_username}`]: data.user.loginUsername,
|
|
23
|
+
[`${models_1.ModelUserFields.login_password}`]: data.user.loginPassword,
|
|
24
|
+
[`${models_1.ModelUserFields.address}`]: data.user.address,
|
|
25
|
+
[`${models_1.ModelUserFields.contact}`]: data.user.contact,
|
|
26
|
+
[`${models_1.ModelUserFields.email}`]: data.user.email,
|
|
27
|
+
[`${models_1.ModelUserFields.firstname}`]: data.user.firstname,
|
|
28
|
+
[`${models_1.ModelUserFields.lastname}`]: data.user.lastname,
|
|
29
|
+
[`${models_1.ModelUserFields.status}`]: data.user.status ? 1 : 0,
|
|
30
|
+
[`${models_1.ModelUserFields.user_type}`]: `${userType}`
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
return false;
|
|
34
|
+
};
|
|
35
|
+
const getUpdatePayload = (userType, data) => {
|
|
36
|
+
if ("user" in data) {
|
|
37
|
+
return {
|
|
38
|
+
[`${models_1.ModelUserFields.login_username}`]: data.user.loginUsername,
|
|
39
|
+
...(data?.user?.loginPassword ? { [`${models_1.ModelUserFields.login_password}`]: data.user.loginPassword } : {}),
|
|
40
|
+
[`${models_1.ModelUserFields.address}`]: data.user.address,
|
|
41
|
+
[`${models_1.ModelUserFields.contact}`]: data.user.contact,
|
|
42
|
+
[`${models_1.ModelUserFields.email}`]: data.user.email,
|
|
43
|
+
[`${models_1.ModelUserFields.firstname}`]: data.user.firstname,
|
|
44
|
+
[`${models_1.ModelUserFields.lastname}`]: data.user.lastname,
|
|
45
|
+
[`${models_1.ModelUserFields.status}`]: data.user.status ? 1 : 0,
|
|
46
|
+
[`${models_1.ModelUserFields.user_type}`]: `${userType}`
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return false;
|
|
50
|
+
};
|
|
51
|
+
const UserService = (props) => {
|
|
52
|
+
const { prisma, userType = "administrator", accountId = 0, actionUserId = 0, } = props;
|
|
53
|
+
const userModel = (0, models_1.UserModel)({ prisma, accountId, actionUserId });
|
|
54
|
+
const userPropService = (0, UserPropService_1.UserPropService)({ prisma, accountId, actionUserId, userPropType: "LOCATION_ID" });
|
|
55
|
+
const customerService = (0, CustomerService_1.CustomerService)({ prisma, accountId, actionUserId });
|
|
56
|
+
const administratorService = (0, AdministratorService_1.AdministratorService)({ prisma, accountId, actionUserId });
|
|
57
|
+
const workerService = (0, WorkerService_1.WorkerService)({ prisma, accountId, actionUserId });
|
|
58
|
+
const createUser = async ({ data, userType: overrideUserType }) => {
|
|
59
|
+
const _userType = overrideUserType || userType;
|
|
60
|
+
const _data = getCreatePayload(_userType, data);
|
|
61
|
+
if (!_data) {
|
|
62
|
+
throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);
|
|
63
|
+
}
|
|
64
|
+
// create user
|
|
65
|
+
let responseUser = await userModel.create({ data: _data });
|
|
66
|
+
let newUserId = responseUser.user_id;
|
|
67
|
+
let response = {};
|
|
68
|
+
if (_userType === "customer" && "customer" in data) {
|
|
69
|
+
let dataCustomer = {
|
|
70
|
+
customer: {
|
|
71
|
+
...data.customer,
|
|
72
|
+
userId: Number(newUserId) ?? ""
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
// create customer
|
|
76
|
+
await customerService.createCustomer({ data: dataCustomer });
|
|
77
|
+
response = await customerService.getCustomer({ id: Number(newUserId), datatypes: [] });
|
|
78
|
+
}
|
|
79
|
+
if (_userType === "administrator" && "administrator" in data) {
|
|
80
|
+
let dataAdministrator = {
|
|
81
|
+
administrator: {
|
|
82
|
+
...data.administrator,
|
|
83
|
+
userId: Number(newUserId) ?? ""
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
// create customer
|
|
87
|
+
await administratorService.createAdministrator({ data: dataAdministrator });
|
|
88
|
+
// replace user prop
|
|
89
|
+
await userPropService.replaceUserProp({
|
|
90
|
+
userPropType: "LOCATION_ID",
|
|
91
|
+
data: {
|
|
92
|
+
userProp: {
|
|
93
|
+
userId: Number(newUserId),
|
|
94
|
+
locationIds: data.props.locationIds
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
response = await administratorService.getAdministrator({ id: Number(newUserId), datatypes: [] });
|
|
99
|
+
}
|
|
100
|
+
if (_userType === "worker" && "worker" in data) {
|
|
101
|
+
let dataWorker = {
|
|
102
|
+
worker: {
|
|
103
|
+
...data.worker,
|
|
104
|
+
userId: Number(newUserId) ?? ""
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
// create customer
|
|
108
|
+
await workerService.createWorker({ data: dataWorker });
|
|
109
|
+
// replace user prop
|
|
110
|
+
await userPropService.replaceUserProp({
|
|
111
|
+
userPropType: "LOCATION_ID",
|
|
112
|
+
data: {
|
|
113
|
+
userProp: {
|
|
114
|
+
userId: Number(newUserId),
|
|
115
|
+
locationIds: data.props.locationIds
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
response = await workerService.getWorker({ id: Number(newUserId), datatypes: [] });
|
|
120
|
+
}
|
|
121
|
+
return response;
|
|
122
|
+
};
|
|
123
|
+
const updateUser = async ({ id, data, userType: overrideUserType }) => {
|
|
124
|
+
const _userType = overrideUserType || userType;
|
|
125
|
+
const _data = getUpdatePayload(_userType, data);
|
|
126
|
+
if (!_data) {
|
|
127
|
+
throw new Error(`Invalid update payload: ${JSON.stringify(_data)}`);
|
|
128
|
+
}
|
|
129
|
+
// update user
|
|
130
|
+
let responseUser = await userModel.update({ id, data: _data });
|
|
131
|
+
let updateUserId = responseUser.user_id;
|
|
132
|
+
let response = {};
|
|
133
|
+
if (_userType === "customer" && "customer" in data) {
|
|
134
|
+
let dataCustomer = {
|
|
135
|
+
customer: {
|
|
136
|
+
...data.customer
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
await customerService.updateCustomer({ userId: Number(updateUserId), data: dataCustomer });
|
|
140
|
+
response = await customerService.getCustomer({ id: Number(updateUserId), datatypes: [] });
|
|
141
|
+
}
|
|
142
|
+
if (_userType === "administrator" && "administrator" in data) {
|
|
143
|
+
let dataCustomer = {
|
|
144
|
+
administrator: {
|
|
145
|
+
...data.administrator
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
await administratorService.updateAdministrator({ userId: Number(updateUserId), data: dataCustomer });
|
|
149
|
+
// replace user prop
|
|
150
|
+
await userPropService.replaceUserProp({
|
|
151
|
+
userPropType: "LOCATION_ID",
|
|
152
|
+
data: {
|
|
153
|
+
userProp: {
|
|
154
|
+
userId: Number(updateUserId),
|
|
155
|
+
locationIds: data.props.locationIds
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
response = await administratorService.getAdministrator({ id: Number(updateUserId), datatypes: [] });
|
|
160
|
+
}
|
|
161
|
+
if (_userType === "worker" && "worker" in data) {
|
|
162
|
+
let dataWorker = {
|
|
163
|
+
worker: {
|
|
164
|
+
...data.worker
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
await workerService.updateWorker({ userId: Number(updateUserId), data: dataWorker });
|
|
168
|
+
// replace user prop
|
|
169
|
+
await userPropService.replaceUserProp({
|
|
170
|
+
userPropType: "LOCATION_ID",
|
|
171
|
+
data: {
|
|
172
|
+
userProp: {
|
|
173
|
+
userId: Number(updateUserId),
|
|
174
|
+
locationIds: data.props.locationIds
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
response = await workerService.getWorker({ id: Number(updateUserId), datatypes: [] });
|
|
179
|
+
}
|
|
180
|
+
return response;
|
|
181
|
+
};
|
|
182
|
+
const getUser = async ({ id, datatypes = [] }) => {
|
|
183
|
+
let data = {};
|
|
184
|
+
if (userType === "customer") {
|
|
185
|
+
data = await customerService.getCustomer({ id, datatypes: datatypes });
|
|
186
|
+
}
|
|
187
|
+
if (userType === "administrator") {
|
|
188
|
+
data = await administratorService.getAdministrator({ id, datatypes: datatypes });
|
|
189
|
+
}
|
|
190
|
+
if (userType === "worker") {
|
|
191
|
+
data = await workerService.getWorker({ id, datatypes: datatypes });
|
|
192
|
+
}
|
|
193
|
+
if (!data) {
|
|
194
|
+
throw new Error(`Invalid id: ${id}`);
|
|
195
|
+
}
|
|
196
|
+
return data;
|
|
197
|
+
};
|
|
198
|
+
const listUsers = async ({ limit, offset, filters, sortfield, sortorder, datatypes }) => {
|
|
199
|
+
let data = [];
|
|
200
|
+
let total = 0;
|
|
201
|
+
if (userType === "customer") {
|
|
202
|
+
({ data, total } = await customerService.listCustomers({ limit, offset, filters, sortfield, sortorder, datatypes: datatypes }));
|
|
203
|
+
}
|
|
204
|
+
if (userType === "administrator") {
|
|
205
|
+
({ data, total } = await administratorService.listAdministrators({ limit, offset, filters, sortfield, sortorder, datatypes: datatypes }));
|
|
206
|
+
}
|
|
207
|
+
if (userType === "worker") {
|
|
208
|
+
({ data, total } = await workerService.listWorkers({ limit, offset, filters, sortfield, sortorder, datatypes: datatypes }));
|
|
209
|
+
}
|
|
210
|
+
return {
|
|
211
|
+
data,
|
|
212
|
+
total
|
|
213
|
+
};
|
|
214
|
+
};
|
|
215
|
+
const removeUsers = async ({ ids }) => {
|
|
216
|
+
if (!ids.length)
|
|
217
|
+
(0, utils_1.throwError)('id is required');
|
|
218
|
+
let response = [];
|
|
219
|
+
if (userType === "customer") {
|
|
220
|
+
response = await customerService.removeCustomers({ userIds: ids });
|
|
221
|
+
}
|
|
222
|
+
if (userType === "administrator") {
|
|
223
|
+
response = await administratorService.removeAdministrators({ userIds: ids });
|
|
224
|
+
await userPropService.removeUserProps({ userIds: ids });
|
|
225
|
+
}
|
|
226
|
+
if (userType === "worker") {
|
|
227
|
+
response = await workerService.removeWorkers({ userIds: ids });
|
|
228
|
+
await userPropService.removeUserProps({ userIds: ids });
|
|
229
|
+
}
|
|
230
|
+
// remove user
|
|
231
|
+
let responseUser = await userModel.remove({ ids: ids.map(i => Number(i)) });
|
|
232
|
+
response.forEach((i, index) => {
|
|
233
|
+
i.user = responseUser[index];
|
|
234
|
+
});
|
|
235
|
+
return response;
|
|
236
|
+
};
|
|
237
|
+
const getUserDataTypes = () => {
|
|
238
|
+
let data = [];
|
|
239
|
+
let total = 0;
|
|
240
|
+
if (userType === "customer") {
|
|
241
|
+
data = customerService.getDataTypes();
|
|
242
|
+
}
|
|
243
|
+
if (userType === "administrator") {
|
|
244
|
+
data = administratorService.getDataTypes();
|
|
245
|
+
}
|
|
246
|
+
if (userType === "worker") {
|
|
247
|
+
data = workerService.getDataTypes();
|
|
248
|
+
}
|
|
249
|
+
return data;
|
|
250
|
+
};
|
|
251
|
+
return {
|
|
252
|
+
createUser,
|
|
253
|
+
updateUser,
|
|
254
|
+
getUser,
|
|
255
|
+
listUsers,
|
|
256
|
+
removeUsers,
|
|
257
|
+
getUserDataTypes
|
|
258
|
+
};
|
|
259
|
+
};
|
|
260
|
+
exports.UserService = UserService;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { QueryList } from "../../schema/common";
|
|
2
|
+
import { DefaultServiceProps } from "../../utils";
|
|
3
|
+
export type UserType = "worker";
|
|
4
|
+
export declare const workerDataTypes: {
|
|
5
|
+
location: string;
|
|
6
|
+
locationCount: string;
|
|
7
|
+
zone: string;
|
|
8
|
+
zoneCount: string;
|
|
9
|
+
workerInjectionFields: string;
|
|
10
|
+
file: string;
|
|
11
|
+
};
|
|
12
|
+
export type WorkerDataType = keyof typeof workerDataTypes;
|
|
13
|
+
export type WorkerServiceProps = DefaultServiceProps & {};
|
|
14
|
+
export type WorkerGetProps = {
|
|
15
|
+
id: number;
|
|
16
|
+
datatypes: WorkerDataType[];
|
|
17
|
+
};
|
|
18
|
+
export type WorkerListProps = QueryList & {
|
|
19
|
+
datatypes: WorkerDataType[];
|
|
20
|
+
};
|
|
21
|
+
export type WorkerRemoveProps = {
|
|
22
|
+
userIds: BigInt[];
|
|
23
|
+
};
|
|
24
|
+
export type WorkerCreateProps = {
|
|
25
|
+
data: {
|
|
26
|
+
worker: {
|
|
27
|
+
userId: number;
|
|
28
|
+
remark: string;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export type WorkerUpdateProps = {
|
|
33
|
+
userId: number;
|
|
34
|
+
data: {
|
|
35
|
+
worker: {
|
|
36
|
+
remark: string;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
export declare const WorkerService: (props: WorkerServiceProps) => {
|
|
41
|
+
createWorker: ({ data }: WorkerCreateProps) => Promise<{
|
|
42
|
+
user_id: bigint;
|
|
43
|
+
createdatetime: Date | null;
|
|
44
|
+
createuserid: bigint;
|
|
45
|
+
updatedatetime: Date | null;
|
|
46
|
+
updateuserid: bigint;
|
|
47
|
+
isdelete: boolean | null;
|
|
48
|
+
istrash: boolean | null;
|
|
49
|
+
accountid: bigint;
|
|
50
|
+
remark: string | null;
|
|
51
|
+
worker_id: bigint;
|
|
52
|
+
}>;
|
|
53
|
+
updateWorker: ({ userId, data }: WorkerUpdateProps) => Promise<{
|
|
54
|
+
user_id: bigint;
|
|
55
|
+
createdatetime: Date | null;
|
|
56
|
+
createuserid: bigint;
|
|
57
|
+
updatedatetime: Date | null;
|
|
58
|
+
updateuserid: bigint;
|
|
59
|
+
isdelete: boolean | null;
|
|
60
|
+
istrash: boolean | null;
|
|
61
|
+
accountid: bigint;
|
|
62
|
+
remark: string | null;
|
|
63
|
+
worker_id: bigint;
|
|
64
|
+
}>;
|
|
65
|
+
getWorker: ({ id, datatypes }: WorkerGetProps) => Promise<any>;
|
|
66
|
+
listWorkers: ({ limit, offset, filters, sortfield, sortorder, datatypes }: WorkerListProps) => Promise<{
|
|
67
|
+
data: any[];
|
|
68
|
+
total: number;
|
|
69
|
+
}>;
|
|
70
|
+
removeWorkers: ({ userIds }: WorkerRemoveProps) => Promise<{
|
|
71
|
+
user_id: bigint;
|
|
72
|
+
createdatetime: Date | null;
|
|
73
|
+
createuserid: bigint;
|
|
74
|
+
updatedatetime: Date | null;
|
|
75
|
+
updateuserid: bigint;
|
|
76
|
+
isdelete: boolean | null;
|
|
77
|
+
istrash: boolean | null;
|
|
78
|
+
accountid: bigint;
|
|
79
|
+
remark: string | null;
|
|
80
|
+
worker_id: bigint;
|
|
81
|
+
}[]>;
|
|
82
|
+
getDataTypes: () => string[];
|
|
83
|
+
};
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WorkerService = exports.workerDataTypes = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
const models_1 = require("../../models");
|
|
6
|
+
const utils_2 = require("../../utils");
|
|
7
|
+
exports.workerDataTypes = {
|
|
8
|
+
location: "location",
|
|
9
|
+
locationCount: "location_count",
|
|
10
|
+
zone: "zone",
|
|
11
|
+
zoneCount: "zone_count",
|
|
12
|
+
workerInjectionFields: "worker_injection_fields",
|
|
13
|
+
file: "file",
|
|
14
|
+
};
|
|
15
|
+
const getCreatePayload = (data) => {
|
|
16
|
+
if ("worker" in data) {
|
|
17
|
+
return {
|
|
18
|
+
[`${models_1.ModelWorkerFields.user_id}`]: data.worker.userId,
|
|
19
|
+
[`${models_1.ModelWorkerFields.remark}`]: data.worker.remark
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return false;
|
|
23
|
+
};
|
|
24
|
+
const getUpdatePayload = (data) => {
|
|
25
|
+
if ("worker" in data) {
|
|
26
|
+
return {
|
|
27
|
+
// [`${ModelWorkerFields.user_id}`]: data.worker.userId,
|
|
28
|
+
[`${models_1.ModelWorkerFields.remark}`]: data.worker.remark
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return false;
|
|
32
|
+
};
|
|
33
|
+
let mainSqlSelect = {
|
|
34
|
+
[`wrk.${models_1.ModelWorkerFields.worker_id}`]: "worker_id",
|
|
35
|
+
[`wrk.${models_1.ModelWorkerFields.user_id}`]: "user_id",
|
|
36
|
+
[`wrk.${models_1.ModelWorkerFields.remark}`]: "remark",
|
|
37
|
+
};
|
|
38
|
+
let userSqlSelect = {
|
|
39
|
+
[`usr.${models_1.ModelUserFields.login_username}`]: "username",
|
|
40
|
+
[`usr.${models_1.ModelUserFields.user_type}`]: "user_type",
|
|
41
|
+
[`usr.${models_1.ModelUserFields.firstname}`]: "firstname",
|
|
42
|
+
[`usr.${models_1.ModelUserFields.lastname}`]: "lastname",
|
|
43
|
+
[`usr.${models_1.ModelUserFields.contact}`]: "contact",
|
|
44
|
+
[`usr.${models_1.ModelUserFields.email}`]: "email",
|
|
45
|
+
[`usr.${models_1.ModelUserFields.address}`]: "address",
|
|
46
|
+
[`usr.${models_1.ModelUserFields.status}`]: "status",
|
|
47
|
+
};
|
|
48
|
+
let defaultSqlSelect = {
|
|
49
|
+
[`wrk.${models_1.ModelWorkerFields.createdatetime}`]: "createdatetime",
|
|
50
|
+
[`creator.${models_1.ModelUserFields.login_username}`]: "createusername",
|
|
51
|
+
[`wrk.${models_1.ModelWorkerFields.updatedatetime}`]: "updatedatetime",
|
|
52
|
+
[`updater.${models_1.ModelUserFields.login_username}`]: "updateusername",
|
|
53
|
+
[`wrk.${models_1.ModelWorkerFields.isdelete}`]: "isdelete",
|
|
54
|
+
[`wrk.${models_1.ModelWorkerFields.istrash}`]: "istrash",
|
|
55
|
+
[`wrk.${models_1.ModelWorkerFields.accountid}`]: "accountid",
|
|
56
|
+
};
|
|
57
|
+
let userPropLocationSqlSelect = {
|
|
58
|
+
[`COALESCE(
|
|
59
|
+
STRING_AGG(usrprop_location.${models_1.ModelUserPropFields.props_id}::text, ', '),
|
|
60
|
+
''
|
|
61
|
+
)`]: "location_id",
|
|
62
|
+
[`COALESCE(
|
|
63
|
+
STRING_AGG(location.${models_1.ModelLocationFields.location_name}::text, ', '),
|
|
64
|
+
''
|
|
65
|
+
)`]: "location_name",
|
|
66
|
+
};
|
|
67
|
+
const WorkerService = (props) => {
|
|
68
|
+
const { prisma, accountId = 0, actionUserId = 0 } = props;
|
|
69
|
+
const workerModel = (0, models_1.WorkerModel)({ prisma, accountId, actionUserId });
|
|
70
|
+
const userInjectionFieldModel = (0, models_1.UserInjectionFieldModel)({ prisma, accountId, actionUserId });
|
|
71
|
+
const createWorker = async ({ data }) => {
|
|
72
|
+
const _data = getCreatePayload(data);
|
|
73
|
+
if (!_data) {
|
|
74
|
+
throw new Error(`Invalid create worker payload: ${JSON.stringify(_data)}`);
|
|
75
|
+
}
|
|
76
|
+
let response = await workerModel.create({ data: _data });
|
|
77
|
+
return response;
|
|
78
|
+
};
|
|
79
|
+
const updateWorker = async ({ userId, data }) => {
|
|
80
|
+
const _data = getUpdatePayload(data);
|
|
81
|
+
if (!_data) {
|
|
82
|
+
throw new Error(`Invalid update worker payload: ${JSON.stringify(_data)}`);
|
|
83
|
+
}
|
|
84
|
+
let response = await workerModel.update({ where: { [`${models_1.ModelWorkerFields.user_id}`]: userId }, data: _data });
|
|
85
|
+
return response;
|
|
86
|
+
};
|
|
87
|
+
const getWorker = async ({ id, datatypes = [] }) => {
|
|
88
|
+
let { data } = await listWorkers({
|
|
89
|
+
limit: 1,
|
|
90
|
+
offset: 0,
|
|
91
|
+
filters: [{ field: "user_id", operator: "=", value: id }],
|
|
92
|
+
sortfield: "user_id",
|
|
93
|
+
sortorder: "ASC",
|
|
94
|
+
datatypes
|
|
95
|
+
});
|
|
96
|
+
return data[0] ?? null;
|
|
97
|
+
};
|
|
98
|
+
const listWorkers = async ({ limit, offset, filters, sortfield, sortorder, datatypes = [] }) => {
|
|
99
|
+
let data = [];
|
|
100
|
+
let sqlSelect = [
|
|
101
|
+
`COUNT(wrk.*) OVER() as filtered_count`,
|
|
102
|
+
(0, utils_2.buildSqlSelect)(``, mainSqlSelect),
|
|
103
|
+
(0, utils_2.buildSqlSelect)(``, userSqlSelect),
|
|
104
|
+
(0, utils_2.buildSqlSelect)(``, defaultSqlSelect),
|
|
105
|
+
(0, utils_2.buildSqlSelect)(``, userPropLocationSqlSelect),
|
|
106
|
+
];
|
|
107
|
+
let sqlRelation = [
|
|
108
|
+
(0, utils_2.buildSqlRelation)("left", "wrk", "users", "usr", ["wrk.user_id = usr.user_id", "usr.isdelete = false", "usr.istrash = false"]),
|
|
109
|
+
(0, utils_2.buildSqlRelation)("left", "wrk", "users", "creator", ["wrk.createuserid = creator.user_id", "creator.isdelete = false", "creator.istrash = false"]),
|
|
110
|
+
(0, utils_2.buildSqlRelation)("left", "wrk", "users", "updater", ["wrk.updateuserid = updater.user_id", "updater.isdelete = false", "updater.istrash = false"]),
|
|
111
|
+
(0, utils_2.buildSqlRelation)("left", "wrk", "user_props", "usrprop_location", ["wrk.user_id = usrprop_location.user_id", "usrprop_location.type = 'LOCATION_ID'", "usrprop_location.isdelete = false", "usrprop_location.istrash = false"]),
|
|
112
|
+
(0, utils_2.buildSqlRelation)("left", "wrk", "locations", "location", ["usrprop_location.props_id = location.location_id", "location.isdelete = false", "location.istrash = false"]),
|
|
113
|
+
];
|
|
114
|
+
let sqlGroupBy = [
|
|
115
|
+
...Object.keys(mainSqlSelect),
|
|
116
|
+
...Object.keys(userSqlSelect),
|
|
117
|
+
// ...Object.keys(userPropLocationSqlSelect),
|
|
118
|
+
...Object.keys(defaultSqlSelect)
|
|
119
|
+
];
|
|
120
|
+
let filterColumns = {
|
|
121
|
+
...mainSqlSelect,
|
|
122
|
+
...userSqlSelect,
|
|
123
|
+
...userPropLocationSqlSelect,
|
|
124
|
+
...defaultSqlSelect
|
|
125
|
+
};
|
|
126
|
+
if (datatypes.includes(exports.workerDataTypes.workerInjectionFields)) {
|
|
127
|
+
const keyPrefix = `usr_wrk_`;
|
|
128
|
+
const allFields = await userInjectionFieldModel.getFields(`${keyPrefix}`);
|
|
129
|
+
let injectionFieldSqlSelect = (0, utils_2.toFieldMap)(allFields, "uip");
|
|
130
|
+
if (Object.keys(injectionFieldSqlSelect).length > 0) {
|
|
131
|
+
filterColumns = { ...filterColumns, ...injectionFieldSqlSelect };
|
|
132
|
+
sqlSelect = [...sqlSelect, (0, utils_2.buildSqlSelect)(``, injectionFieldSqlSelect)];
|
|
133
|
+
sqlRelation = [...sqlRelation, (0, utils_2.buildSqlRelation)("left", "wrk", "user_injection_fields", "uip", ["wrk.user_id = uip.user_id", "uip.field_ref = 'user'", "uip.isdelete = false", "uip.istrash = false"])];
|
|
134
|
+
sqlGroupBy = [...sqlGroupBy, ...Object.keys(injectionFieldSqlSelect)];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (datatypes.includes(exports.workerDataTypes.location)) {
|
|
138
|
+
let locationSqlSelect = {
|
|
139
|
+
[`COALESCE(
|
|
140
|
+
JSON_AGG(
|
|
141
|
+
DISTINCT JSONB_BUILD_OBJECT(
|
|
142
|
+
'${models_1.ModelLocationFields.location_id}', location.location_id,
|
|
143
|
+
'${models_1.ModelLocationFields.location_code}', location.location_code,
|
|
144
|
+
'${models_1.ModelLocationFields.location_name}', location.location_name,
|
|
145
|
+
'${models_1.ModelLocationFields.location_type}', location.location_type,
|
|
146
|
+
'${models_1.ModelLocationFields.address_1}', location.address_1,
|
|
147
|
+
'${models_1.ModelLocationFields.address_2}', location.address_2,
|
|
148
|
+
'${models_1.ModelLocationFields.area}', location.area,
|
|
149
|
+
'${models_1.ModelLocationFields.area_id}', location.area_id,
|
|
150
|
+
'${models_1.ModelLocationFields.country_id}', location.country_id,
|
|
151
|
+
'${models_1.ModelLocationFields.state_id}', location.state_id,
|
|
152
|
+
'${models_1.ModelLocationFields.postcode}', location.postcode,
|
|
153
|
+
'${models_1.ModelLocationFields.is_default}', location.is_default,
|
|
154
|
+
'${models_1.ModelLocationFields.person_contact}', location.person_contact,
|
|
155
|
+
'${models_1.ModelLocationFields.person_name}', location.person_contact,
|
|
156
|
+
'${models_1.ModelLocationFields.person_email}', location.person_email,
|
|
157
|
+
'${models_1.ModelLocationFields.isdelete}', location.isdelete,
|
|
158
|
+
'${models_1.ModelLocationFields.istrash}', location.istrash
|
|
159
|
+
)
|
|
160
|
+
) FILTER (WHERE location.location_id IS NOT NULL AND location.isdelete = false AND location.istrash = false),
|
|
161
|
+
'[]'
|
|
162
|
+
)`]: "locations"
|
|
163
|
+
};
|
|
164
|
+
filterColumns = { ...filterColumns, ...locationSqlSelect };
|
|
165
|
+
sqlSelect = [...sqlSelect, (0, utils_2.buildSqlSelect)(``, locationSqlSelect)];
|
|
166
|
+
// sqlRelation = [...sqlRelation, buildSqlRelation("left", "usrprop_location", "location", "brn", ["wrk.user_id = brn.user_id", "brn.isdelete = false", "brn.istrash = false"])]
|
|
167
|
+
}
|
|
168
|
+
if (datatypes.includes(exports.workerDataTypes.locationCount)) {
|
|
169
|
+
let locationCountSqlSelect = {
|
|
170
|
+
[`COUNT(DISTINCT location.${models_1.ModelLocationFields.location_id})::INT`]: "location_count"
|
|
171
|
+
};
|
|
172
|
+
filterColumns = { ...filterColumns, ...locationCountSqlSelect };
|
|
173
|
+
sqlSelect = [...sqlSelect, (0, utils_2.buildSqlSelect)(``, locationCountSqlSelect)];
|
|
174
|
+
// sqlRelation = [...sqlRelation, buildSqlRelation("left", "cus", "branches", "brncount", ["wrk.user_id = brncount.user_id", "brncount.isdelete = false", "brncount.istrash = false"])]
|
|
175
|
+
}
|
|
176
|
+
// if (datatypes.includes(customerDataTypes.branchUserCount)) {
|
|
177
|
+
// let branchUserCountSqlSelect = {
|
|
178
|
+
// [`COUNT(DISTINCT brnusrcount.${ModelBranchUserFields.branch_user_id})::INT`]: "branch_user_count"
|
|
179
|
+
// }
|
|
180
|
+
// filterColumns = { ...filterColumns, ...branchUserCountSqlSelect }
|
|
181
|
+
// sqlSelect = [...sqlSelect, buildSqlSelect(``, branchUserCountSqlSelect)]
|
|
182
|
+
// sqlRelation = [...sqlRelation, buildSqlRelation("left", "cus", "branch_users", "brnusrcount", ["wrk.user_id = brnusrcount.user_id", "brnusrcount.isdelete = false", "brnusrcount.istrash = false"])]
|
|
183
|
+
// }
|
|
184
|
+
let sqlWhere = [
|
|
185
|
+
`wrk.isdelete = false`,
|
|
186
|
+
`wrk.istrash = false`,
|
|
187
|
+
...(filters.length ? [(0, utils_2.buildSqlWhere)(filters, filterColumns)] : []),
|
|
188
|
+
];
|
|
189
|
+
let sqlOrderby = (0, utils_2.buildSqlOrderBy)(sortfield, sortorder);
|
|
190
|
+
let sqlLimitOffset = (0, utils_2.buildSqlLimitOffset)(limit, offset);
|
|
191
|
+
const sqlRaw = (0, utils_2.buildSqlRawSelect)({
|
|
192
|
+
tableName: "workers",
|
|
193
|
+
mainAlias: "wrk",
|
|
194
|
+
accountId,
|
|
195
|
+
sqlSelect,
|
|
196
|
+
sqlRelation,
|
|
197
|
+
sqlWhere,
|
|
198
|
+
sqlGroupBy,
|
|
199
|
+
sqlOrderby,
|
|
200
|
+
sqlLimitOffset
|
|
201
|
+
});
|
|
202
|
+
data = await workerModel.raw(sqlRaw);
|
|
203
|
+
const response = {
|
|
204
|
+
data: data.map(({ filtered_count, ...rest }) => rest),
|
|
205
|
+
total: data.length ? Number(data[0].filtered_count) : 0
|
|
206
|
+
};
|
|
207
|
+
return response;
|
|
208
|
+
};
|
|
209
|
+
const removeWorkers = async ({ userIds }) => {
|
|
210
|
+
if (!userIds.length)
|
|
211
|
+
(0, utils_1.throwError)('userIds is required');
|
|
212
|
+
const response = await workerModel.remove({ where: { [`${models_1.ModelWorkerFields.user_id}`]: { in: userIds } } });
|
|
213
|
+
return response;
|
|
214
|
+
};
|
|
215
|
+
const getDataTypes = () => {
|
|
216
|
+
return Object.values(exports.workerDataTypes);
|
|
217
|
+
};
|
|
218
|
+
return {
|
|
219
|
+
createWorker,
|
|
220
|
+
updateWorker,
|
|
221
|
+
getWorker,
|
|
222
|
+
listWorkers,
|
|
223
|
+
removeWorkers,
|
|
224
|
+
getDataTypes
|
|
225
|
+
};
|
|
226
|
+
};
|
|
227
|
+
exports.WorkerService = WorkerService;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.dayjs = exports.getCurrentDateTime = exports.getCurrentDateTimeISO = void 0;
|
|
7
|
+
const dayjs_1 = __importDefault(require("dayjs"));
|
|
8
|
+
exports.dayjs = dayjs_1.default;
|
|
9
|
+
const utc_1 = __importDefault(require("dayjs/plugin/utc"));
|
|
10
|
+
const timezone_1 = __importDefault(require("dayjs/plugin/timezone"));
|
|
11
|
+
// extend plugins
|
|
12
|
+
dayjs_1.default.extend(utc_1.default);
|
|
13
|
+
dayjs_1.default.extend(timezone_1.default);
|
|
14
|
+
// set default timezone to Malaysia
|
|
15
|
+
dayjs_1.default.tz.setDefault("Asia/Kuala_Lumpur");
|
|
16
|
+
const getCurrentDateTimeISO = () => {
|
|
17
|
+
return (0, dayjs_1.default)().toISOString();
|
|
18
|
+
};
|
|
19
|
+
exports.getCurrentDateTimeISO = getCurrentDateTimeISO;
|
|
20
|
+
const getCurrentDateTime = () => {
|
|
21
|
+
return (0, dayjs_1.default)().format('YYYY-MM-DD HH:mm:ss');
|
|
22
|
+
};
|
|
23
|
+
exports.getCurrentDateTime = getCurrentDateTime;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.throwError = throwError;
|
|
7
|
+
exports.logError = logError;
|
|
8
|
+
const logUtils_1 = __importDefault(require("./logUtils"));
|
|
9
|
+
/**
|
|
10
|
+
* Throws a new Error with the given message.
|
|
11
|
+
*/
|
|
12
|
+
function throwError(message) {
|
|
13
|
+
throw new Error(message);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Logs an error using the centralized logger.
|
|
17
|
+
*/
|
|
18
|
+
function logError(error, context = '') {
|
|
19
|
+
if (error instanceof Error) {
|
|
20
|
+
logUtils_1.default.error({ err: error }, context || error.message);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
logUtils_1.default.error({ err: error }, context || 'Unknown error');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { default as _ } from "lodash";
|
|
2
|
+
export { HTTP_STATUS, sendError, sendSuccess } from "./responseUtils";
|
|
3
|
+
export { dayjs, getCurrentDateTime, getCurrentDateTimeISO } from "./dateUtils";
|
|
4
|
+
export { buildPrismaWhere } from "../helpers/prismaHelper";
|
|
5
|
+
export { validateWithSchema, validateMultipleSchemas, convertPayloadByTableSchema } from "./schemaUtils";
|
|
6
|
+
export { default as logger } from "./logUtils";
|
|
7
|
+
export { throwError, logError } from "./exceptionUtils";
|
|
8
|
+
export { getSwmAuth } from "./smwUtils";
|
|
9
|
+
export { getRequestHeaderLocCode, checkRequestContentIsEmpty } from "./requestUtils";
|
|
10
|
+
export { storeJwtInMemory, getJwtFromMemory } from "./jwtUtils";
|
|
11
|
+
export { getFormattedZodErrors, getFormattedZodErrorsIntoString } from "./zodUtils";
|
|
12
|
+
export { toFieldMap, buildSqlRawSelect, buildSqlRelation, buildSqlSelect, buildSqlWhere, buildSqlLimitOffset, buildSqlOrderBy, getFieldsByType } from "./queryBuilder";
|
|
13
|
+
export type { DefaultServiceProps } from "./serviceUtils";
|
|
14
|
+
export { getDefaultServiceProps } from "./serviceUtils";
|
|
15
|
+
export { buildFullFieldName } from "./injectionFieldUtils";
|