storemw-core-api 1.0.153 → 1.0.155

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.
Files changed (84) hide show
  1. package/dist/features/index.d.ts +1 -1
  2. package/dist/features/index.js.map +1 -1
  3. package/dist/features/user_me/userMeRegistry.js +4 -0
  4. package/dist/features/user_me/userMeRegistry.js.map +1 -1
  5. package/dist/features/user_me/userMeType.d.ts +17 -3
  6. package/dist/features/user_me/userMeType.js.map +1 -1
  7. package/dist/services/access_control/AccessControlRoleService.js +1 -1
  8. package/dist/services/access_control/AccessControlRoleService.js.map +1 -1
  9. package/dist/services/access_key/AccessKeyService.js +1 -1
  10. package/dist/services/access_key/AccessKeyService.js.map +1 -1
  11. package/dist/services/account/AccountService.js +1 -1
  12. package/dist/services/account/AccountService.js.map +1 -1
  13. package/dist/services/auth/AuthService.js +2 -2
  14. package/dist/services/auth/AuthService.js.map +1 -1
  15. package/dist/services/business/BusinessService.js +1 -1
  16. package/dist/services/business/BusinessService.js.map +1 -1
  17. package/dist/services/file/FileService.js +4 -4
  18. package/dist/services/file/FileService.js.map +1 -1
  19. package/dist/services/gateway/SmtpEmailService.js +5 -4
  20. package/dist/services/gateway/SmtpEmailService.js.map +1 -1
  21. package/dist/services/injection_field/InjectionFieldService.js +1 -1
  22. package/dist/services/injection_field/InjectionFieldService.js.map +1 -1
  23. package/dist/services/item/ItemBrandService.js +1 -1
  24. package/dist/services/item/ItemBrandService.js.map +1 -1
  25. package/dist/services/item/ItemCategoryService.js +1 -1
  26. package/dist/services/item/ItemCategoryService.js.map +1 -1
  27. package/dist/services/item/ItemItemService.js +1 -1
  28. package/dist/services/item/ItemItemService.js.map +1 -1
  29. package/dist/services/item/ItemProductService.js +1 -1
  30. package/dist/services/item/ItemProductService.js.map +1 -1
  31. package/dist/services/item/ItemUomService.js +1 -1
  32. package/dist/services/item/ItemUomService.js.map +1 -1
  33. package/dist/services/location/LocationLocationService.js +1 -1
  34. package/dist/services/location/LocationLocationService.js.map +1 -1
  35. package/dist/services/location/LocationRackService.js +1 -1
  36. package/dist/services/location/LocationRackService.js.map +1 -1
  37. package/dist/services/location/LocationSlotService.js +1 -1
  38. package/dist/services/location/LocationSlotService.js.map +1 -1
  39. package/dist/services/one_time_code/OneTimeCodeService.js +1 -1
  40. package/dist/services/one_time_code/OneTimeCodeService.js.map +1 -1
  41. package/dist/services/region/AreaService.js +1 -1
  42. package/dist/services/region/AreaService.js.map +1 -1
  43. package/dist/services/region/CountryService.js +1 -1
  44. package/dist/services/region/CountryService.js.map +1 -1
  45. package/dist/services/region/StateService.js +1 -1
  46. package/dist/services/region/StateService.js.map +1 -1
  47. package/dist/services/reset_password/ResetPasswordService.js +4 -4
  48. package/dist/services/reset_password/ResetPasswordService.js.map +1 -1
  49. package/dist/services/scheduler/SchedulerLogService.js +1 -1
  50. package/dist/services/scheduler/SchedulerLogService.js.map +1 -1
  51. package/dist/services/subscription/account/AccountSubscribeService.js +1 -1
  52. package/dist/services/subscription/account/AccountSubscribeService.js.map +1 -1
  53. package/dist/services/subscription/plan/SubscribePlanService.js +1 -1
  54. package/dist/services/subscription/plan/SubscribePlanService.js.map +1 -1
  55. package/dist/services/user/AdministratorService.js +1 -1
  56. package/dist/services/user/AdministratorService.js.map +1 -1
  57. package/dist/services/user/AgentService.js +1 -1
  58. package/dist/services/user/AgentService.js.map +1 -1
  59. package/dist/services/user/CustomerService.js +1 -1
  60. package/dist/services/user/CustomerService.js.map +1 -1
  61. package/dist/services/user/DriverService.js +1 -1
  62. package/dist/services/user/DriverService.js.map +1 -1
  63. package/dist/services/user/MemberService.js +1 -1
  64. package/dist/services/user/MemberService.js.map +1 -1
  65. package/dist/services/user/OperatorService.js +1 -1
  66. package/dist/services/user/OperatorService.js.map +1 -1
  67. package/dist/services/user/RetailerService.js +1 -1
  68. package/dist/services/user/RetailerService.js.map +1 -1
  69. package/dist/services/user/UserMeService.js +29 -8
  70. package/dist/services/user/UserMeService.js.map +1 -1
  71. package/dist/services/user/UserService.js +1 -1
  72. package/dist/services/user/UserService.js.map +1 -1
  73. package/dist/services/user/WorkerService.js +1 -1
  74. package/dist/services/user/WorkerService.js.map +1 -1
  75. package/dist/utils/featureUtils.d.ts +3 -0
  76. package/dist/utils/featureUtils.js +11 -0
  77. package/dist/utils/featureUtils.js.map +1 -1
  78. package/dist/utils/index.d.ts +1 -0
  79. package/dist/utils/index.js +3 -1
  80. package/dist/utils/index.js.map +1 -1
  81. package/dist/utils/serviceUtils.d.ts +1 -0
  82. package/dist/utils/serviceUtils.js +2 -1
  83. package/dist/utils/serviceUtils.js.map +1 -1
  84. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"OneTimeCodeService.js","sourceRoot":"","sources":["../../../src/services/one_time_code/OneTimeCodeService.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n OneTimeCodeModel,\n ModelOneTimeCodeFields,\n ModelUserFields,\n} from \"@/models\";\n\nimport crypto from \"crypto\";\nimport { dayjs } from \"@/utils\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nimport { InjectionFieldModuleRef } from \"@/services\";\n\nimport { DefaultServiceProps, getCurrentDateTimeISO, throwError } from \"@/utils\";\n\nexport type OneTimeCodeModuleRef = InjectionFieldModuleRef\n\nexport type OneTimeCodeServiceProps = DefaultServiceProps & OneTimeCodeModuleRef & {\n};\n\nexport const oneTimeCodeTypes = {\n token: \"token\",\n otp: \"otp\"\n} as const\n\nexport type OneTimeCodeType = typeof oneTimeCodeTypes[keyof typeof oneTimeCodeTypes]\n\nexport const oneTimeCodeStatus = {\n active: \"active\",\n used: \"used\",\n revoked: \"revoked\"\n} as const\n\nexport type OneTimeCodeStatus = typeof oneTimeCodeStatus[keyof typeof oneTimeCodeStatus]\n\nexport const oneTimeCodePurposeTypes = {\n reset_password: \"reset_password\",\n signup_account: \"signup_account\"\n} as const\n\nexport type OneTimeCodePurposeType = typeof oneTimeCodePurposeTypes[keyof typeof oneTimeCodePurposeTypes]\n\nexport type OneTimeCodeCreateProps = InjectionFieldModuleRef & {\n data: {\n purposeType: OneTimeCodePurposeType,\n codeType: OneTimeCodeType,\n expiredAt?: Date,\n mobileNumber?: string,\n emailAddress?: string,\n userId?: number\n userType?: string\n }\n}\n\nexport type OneTimeCodeGetProps = QueryGet & {\n id: number,\n};\n\nexport type OneTimeCodeListProps = QueryList & {\n revealCode?: boolean\n};\n\nexport type OneTimeCodeConsumeProps = InjectionFieldModuleRef & {\n data: {\n purposeType: OneTimeCodePurposeType\n oneTimeCode: string\n userId?: number\n userType?: string\n }\n}\n\nconst getCreatePayload = async (\n fieldRef: OneTimeCodeCreateProps[\"field_ref\"],\n fieldModule: OneTimeCodeCreateProps[\"field_module\"],\n data: OneTimeCodeCreateProps[\"data\"],\n code: string,\n) => {\n\n let expiredAt = data?.expiredAt ?? \"\"\n\n if (!expiredAt) {\n // Set expiration 15 minutes from now - Default\n expiredAt = dayjs().add(15, \"minute\").toDate(); // convert to JS Date\n }\n\n return {\n [`${ModelOneTimeCodeFields.code_type}`]: data.codeType,\n [`${ModelOneTimeCodeFields.code}`]: code,\n [`${ModelOneTimeCodeFields.expires_at}`]: expiredAt,\n [`${ModelOneTimeCodeFields.mobile_number}`]: data.mobileNumber ?? \"\",\n [`${ModelOneTimeCodeFields.email_address}`]: data.emailAddress ?? \"\",\n [`${ModelOneTimeCodeFields.field_ref}`]: fieldRef,\n [`${ModelOneTimeCodeFields.field_module}`]: fieldModule,\n [`${ModelOneTimeCodeFields.user_id}`]: data?.userId ?? 0,\n [`${ModelOneTimeCodeFields.user_type}`]: data?.userType ?? \"\",\n [`${ModelOneTimeCodeFields.code_status}`]: oneTimeCodeStatus.active,\n [`${ModelOneTimeCodeFields.purpose_type}`]: data.purposeType ?? \"\"\n }\n\n}\n\nlet mainSqlSelect = {\n [`otp.${ModelOneTimeCodeFields.one_time_code_id}`]: \"one_time_code_id\",\n [`otp.${ModelOneTimeCodeFields.purpose_type}`]: \"purpose_type\",\n [`otp.${ModelOneTimeCodeFields.code_status}`]: \"code_status\",\n [`otp.${ModelOneTimeCodeFields.code_type}`]: \"code_type\",\n [`otp.${ModelOneTimeCodeFields.email_address}`]: \"email_address\",\n [`otp.${ModelOneTimeCodeFields.mobile_number}`]: \"mobile_number\",\n [`otp.${ModelOneTimeCodeFields.expires_at}`]: \"expires_at\",\n [`otp.${ModelOneTimeCodeFields.used_at}`]: \"used_at\",\n [`otp.${ModelOneTimeCodeFields.field_module}`]: \"field_module\",\n [`otp.${ModelOneTimeCodeFields.field_ref}`]: \"field_ref\",\n [`otp.${ModelOneTimeCodeFields.user_id}`]: \"user_id\",\n [`otp.${ModelOneTimeCodeFields.user_type}`]: \"user_type\",\n}\n\nlet mainCodeSqlSelect = {\n [`otp.${ModelOneTimeCodeFields.code}`]: \"code\"\n}\n\nlet defaultSqlSelect = {\n [`otp.${ModelOneTimeCodeFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`otp.${ModelOneTimeCodeFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`otp.${ModelOneTimeCodeFields.isdelete}`]: \"isdelete\",\n [`otp.${ModelOneTimeCodeFields.istrash}`]: \"istrash\",\n [`otp.${ModelOneTimeCodeFields.accountid}`]: \"accountid\",\n}\n\nexport const OneTimeCodeService = (props: OneTimeCodeServiceProps) => {\n\n const {\n field_ref = \"document\",\n field_module = \"sales\",\n ...rest\n } = props\n\n const oneTimeCodeModel = OneTimeCodeModel({ ...rest })\n\n const generateOneTimeCode = ({\n codeType = \"otp\"\n }: {\n codeType: OneTimeCodeType\n }) => {\n\n if (codeType === \"otp\") {\n // Generate 6-digit numeric OTP\n const otp = Math.floor(100000 + Math.random() * 900000);\n return otp.toString();\n } else if (codeType === \"token\") {\n // Generate secure random 32-character alphanumeric token\n return crypto.randomBytes(16).toString(\"hex\"); // 16 bytes = 32 hex chars\n }\n\n throw new Error(`Unsupported codeType: ${codeType}`);\n\n }\n\n const createOneTimeCode = async ({ data, field_ref: overrideFieldRef, field_module: overrideFieldModule }: OneTimeCodeCreateProps) => {\n\n const _fieldRef = overrideFieldRef || field_ref\n const _fieldModule = overrideFieldModule || field_module\n\n const oneTimeCode = generateOneTimeCode({\n codeType: data.codeType\n })\n\n const _data = await getCreatePayload(\n _fieldRef,\n _fieldModule,\n data,\n oneTimeCode\n )\n\n if (!_data) {\n throw new Error(`Invalid create one time code payload: ${JSON.stringify(_data)}`);\n }\n\n // create one time code\n let response = await oneTimeCodeModel.create({ data: _data })\n\n return response\n }\n\n const getOneTimeCode = async ({ id, datatypes = [] }: OneTimeCodeGetProps) => {\n\n let { data } = await listOneTimeCodes({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelOneTimeCodeFields.one_time_code_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelOneTimeCodeFields.one_time_code_id}`,\n sortorder: \"ASC\",\n datatypes,\n revealCode: false\n })\n\n return data[0] ?? null;\n\n };\n\n const listOneTimeCodes = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [], revealCode = false }: OneTimeCodeListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(otp.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n ...(revealCode === true ? [buildSqlSelect(``, mainCodeSqlSelect)] : []),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n // buildSqlRelation(\"left\", \"otp\", \"accounts\", \"acc\", [\"otp.accountid = acc.account_id\", \"acc.isdelete = false\", \"acc.istrash = false\"]),\n buildSqlRelation(\"left\", \"otp\", \"users\", \"creator\", [\"otp.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"otp\", \"users\", \"updater\", [\"otp.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...(revealCode === true ? Object.keys(mainCodeSqlSelect) : []),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...(revealCode === true ? mainCodeSqlSelect : {}),\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `otp.isdelete = false`,\n `otp.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"one_time_codes\",\n mainAlias: \"otp\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n })\n\n data = await oneTimeCodeModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const consumeOneTimeCode = async ({ data, field_ref: overrideFieldRef, field_module: overrideFieldModule }: OneTimeCodeConsumeProps) => {\n\n const _fieldRef = overrideFieldRef || field_ref\n const _fieldModule = overrideFieldModule || field_module\n\n // retrive the one time code\n const { data: findOneTimeCodes } = await listOneTimeCodes({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `${ModelOneTimeCodeFields.field_ref}`,\n operator: \"=\",\n value: `${_fieldRef}`\n },\n {\n field: `${ModelOneTimeCodeFields.field_module}`,\n operator: \"=\",\n value: `${_fieldModule}`\n },\n {\n field: `${ModelOneTimeCodeFields.purpose_type}`,\n operator: \"=\",\n value: `${data.purposeType}`\n },\n {\n field: `${ModelOneTimeCodeFields.code}`,\n operator: \"=\",\n value: `${data.oneTimeCode}`\n },\n ...(\n data?.userId ? [{\n field: `${ModelOneTimeCodeFields.user_id}`,\n operator: \"=\",\n value: `${data.userId}`\n }] as OneTimeCodeListProps['filters'] : []\n ),\n ...(\n data?.userType ? [{\n field: `${ModelOneTimeCodeFields.user_type}`,\n operator: \"=\",\n value: `${data.userType}`\n }] as OneTimeCodeListProps['filters'] : []\n )\n ],\n sortfield: `${ModelOneTimeCodeFields.one_time_code_id}`,\n sortorder: \"ASC\",\n datatypes: [],\n revealCode: true\n })\n\n const findOneTimeCode = findOneTimeCodes.length > 0 ? findOneTimeCodes[0] : {}\n const findOneTimeCodeId = Number(findOneTimeCode?.one_time_code_id ?? \"\")\n\n if (!findOneTimeCodeId) {\n throw new Error(`Invalid one time code: ${data.oneTimeCode}`);\n }\n\n const findOneTimeCodeStatus = findOneTimeCode?.code_status\n\n if (findOneTimeCodeStatus !== oneTimeCodeStatus.active) {\n throw new Error(`One time code is not active: ${data.oneTimeCode}`);\n }\n\n const currentDateTimeISO = getCurrentDateTimeISO()\n\n // mark one time code as used\n await oneTimeCodeModel.update({\n id: findOneTimeCodeId,\n data: {\n [`${ModelOneTimeCodeFields.code_status}`]: oneTimeCodeStatus.used,\n [`${ModelOneTimeCodeFields.used_at}`]: currentDateTimeISO\n }\n })\n\n // revoke all related ACTIVE one time codes\n await oneTimeCodeModel.update({\n data: {\n [`${ModelOneTimeCodeFields.code_status}`]: oneTimeCodeStatus.revoked,\n [`${ModelOneTimeCodeFields.used_at}`]: currentDateTimeISO\n },\n where: {\n [`${ModelOneTimeCodeFields.field_ref}`]: _fieldRef,\n [`${ModelOneTimeCodeFields.field_module}`]: _fieldModule,\n [`${ModelOneTimeCodeFields.purpose_type}`]: data.purposeType,\n [`${ModelOneTimeCodeFields.code_status}`]: oneTimeCodeStatus.active,\n ...(data?.userId ? {\n [`${ModelOneTimeCodeFields.user_id}`]: data.userId,\n } : {}),\n ...(data?.userType ? {\n [`${ModelOneTimeCodeFields.user_type}`]: data.userType,\n } : {}),\n },\n disableRollback: true\n })\n\n let response = await getOneTimeCode({ id: findOneTimeCodeId, datatypes: [] })\n\n return response\n }\n\n return {\n createOneTimeCode,\n getOneTimeCode,\n listOneTimeCodes,\n consumeOneTimeCode\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"OneTimeCodeService.js","sourceRoot":"","sources":["../../../src/services/one_time_code/OneTimeCodeService.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n OneTimeCodeModel,\n ModelOneTimeCodeFields,\n ModelUserFields,\n} from \"@/models\";\n\nimport crypto from \"crypto\";\nimport { dayjs } from \"@/utils\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nimport { InjectionFieldModuleRef } from \"@/services\";\n\nimport { DefaultServiceProps, getCurrentDateTimeISO, throwError } from \"@/utils\";\n\nexport type OneTimeCodeModuleRef = InjectionFieldModuleRef\n\nexport type OneTimeCodeServiceProps = DefaultServiceProps & OneTimeCodeModuleRef & {\n};\n\nexport const oneTimeCodeTypes = {\n token: \"token\",\n otp: \"otp\"\n} as const\n\nexport type OneTimeCodeType = typeof oneTimeCodeTypes[keyof typeof oneTimeCodeTypes]\n\nexport const oneTimeCodeStatus = {\n active: \"active\",\n used: \"used\",\n revoked: \"revoked\"\n} as const\n\nexport type OneTimeCodeStatus = typeof oneTimeCodeStatus[keyof typeof oneTimeCodeStatus]\n\nexport const oneTimeCodePurposeTypes = {\n reset_password: \"reset_password\",\n signup_account: \"signup_account\"\n} as const\n\nexport type OneTimeCodePurposeType = typeof oneTimeCodePurposeTypes[keyof typeof oneTimeCodePurposeTypes]\n\nexport type OneTimeCodeCreateProps = InjectionFieldModuleRef & {\n data: {\n purposeType: OneTimeCodePurposeType,\n codeType: OneTimeCodeType,\n expiredAt?: Date,\n mobileNumber?: string,\n emailAddress?: string,\n userId?: number\n userType?: string\n }\n}\n\nexport type OneTimeCodeGetProps = QueryGet & {\n id: number,\n};\n\nexport type OneTimeCodeListProps = QueryList & {\n revealCode?: boolean\n};\n\nexport type OneTimeCodeConsumeProps = InjectionFieldModuleRef & {\n data: {\n purposeType: OneTimeCodePurposeType\n oneTimeCode: string\n userId?: number\n userType?: string\n }\n}\n\nconst getCreatePayload = async (\n fieldRef: OneTimeCodeCreateProps[\"field_ref\"],\n fieldModule: OneTimeCodeCreateProps[\"field_module\"],\n data: OneTimeCodeCreateProps[\"data\"],\n code: string,\n) => {\n\n let expiredAt = data?.expiredAt ?? \"\"\n\n if (!expiredAt) {\n // Set expiration 15 minutes from now - Default\n expiredAt = dayjs().add(15, \"minute\").toDate(); // convert to JS Date\n }\n\n return {\n [`${ModelOneTimeCodeFields.code_type}`]: data.codeType,\n [`${ModelOneTimeCodeFields.code}`]: code,\n [`${ModelOneTimeCodeFields.expires_at}`]: expiredAt,\n [`${ModelOneTimeCodeFields.mobile_number}`]: data.mobileNumber ?? \"\",\n [`${ModelOneTimeCodeFields.email_address}`]: data.emailAddress ?? \"\",\n [`${ModelOneTimeCodeFields.field_ref}`]: fieldRef,\n [`${ModelOneTimeCodeFields.field_module}`]: fieldModule,\n [`${ModelOneTimeCodeFields.user_id}`]: data?.userId ?? 0,\n [`${ModelOneTimeCodeFields.user_type}`]: data?.userType ?? \"\",\n [`${ModelOneTimeCodeFields.code_status}`]: oneTimeCodeStatus.active,\n [`${ModelOneTimeCodeFields.purpose_type}`]: data.purposeType ?? \"\"\n }\n\n}\n\nlet mainSqlSelect = {\n [`otp.${ModelOneTimeCodeFields.one_time_code_id}`]: \"one_time_code_id\",\n [`otp.${ModelOneTimeCodeFields.purpose_type}`]: \"purpose_type\",\n [`otp.${ModelOneTimeCodeFields.code_status}`]: \"code_status\",\n [`otp.${ModelOneTimeCodeFields.code_type}`]: \"code_type\",\n [`otp.${ModelOneTimeCodeFields.email_address}`]: \"email_address\",\n [`otp.${ModelOneTimeCodeFields.mobile_number}`]: \"mobile_number\",\n [`otp.${ModelOneTimeCodeFields.expires_at}`]: \"expires_at\",\n [`otp.${ModelOneTimeCodeFields.used_at}`]: \"used_at\",\n [`otp.${ModelOneTimeCodeFields.field_module}`]: \"field_module\",\n [`otp.${ModelOneTimeCodeFields.field_ref}`]: \"field_ref\",\n [`otp.${ModelOneTimeCodeFields.user_id}`]: \"user_id\",\n [`otp.${ModelOneTimeCodeFields.user_type}`]: \"user_type\",\n}\n\nlet mainCodeSqlSelect = {\n [`otp.${ModelOneTimeCodeFields.code}`]: \"code\"\n}\n\nlet defaultSqlSelect = {\n [`otp.${ModelOneTimeCodeFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`otp.${ModelOneTimeCodeFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`otp.${ModelOneTimeCodeFields.isdelete}`]: \"isdelete\",\n [`otp.${ModelOneTimeCodeFields.istrash}`]: \"istrash\",\n [`otp.${ModelOneTimeCodeFields.accountid}`]: \"accountid\",\n}\n\nexport const OneTimeCodeService = (props: OneTimeCodeServiceProps) => {\n\n const {\n field_ref = \"document\",\n field_module = \"sales\",\n ...rest\n } = props\n\n const oneTimeCodeModel = OneTimeCodeModel({ ...rest })\n\n const generateOneTimeCode = ({\n codeType = \"otp\"\n }: {\n codeType: OneTimeCodeType\n }) => {\n\n if (codeType === \"otp\") {\n // Generate 6-digit numeric OTP\n const otp = Math.floor(100000 + Math.random() * 900000);\n return otp.toString();\n } else if (codeType === \"token\") {\n // Generate secure random 32-character alphanumeric token\n return crypto.randomBytes(16).toString(\"hex\"); // 16 bytes = 32 hex chars\n }\n\n throw new Error(`Unsupported codeType: ${codeType}`);\n\n }\n\n const createOneTimeCode = async ({ data, field_ref: overrideFieldRef, field_module: overrideFieldModule }: OneTimeCodeCreateProps) => {\n\n const _fieldRef = overrideFieldRef || field_ref\n const _fieldModule = overrideFieldModule || field_module\n\n const oneTimeCode = generateOneTimeCode({\n codeType: data.codeType\n })\n\n const _data = await getCreatePayload(\n _fieldRef,\n _fieldModule,\n data,\n oneTimeCode\n )\n\n if (!_data) {\n throw new Error(`Invalid create one time code payload: ${JSON.stringify(_data)}`);\n }\n\n // create one time code\n let response = await oneTimeCodeModel.create({ data: _data })\n\n return response\n }\n\n const getOneTimeCode = async ({ id, datatypes = [] }: OneTimeCodeGetProps) => {\n\n let { data } = await listOneTimeCodes({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelOneTimeCodeFields.one_time_code_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelOneTimeCodeFields.one_time_code_id}`,\n sortorder: \"ASC\",\n datatypes,\n revealCode: false\n })\n\n return data[0] ?? null;\n\n };\n\n const listOneTimeCodes = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [], revealCode = false }: OneTimeCodeListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n ...(revealCode === true ? [buildSqlSelect(``, mainCodeSqlSelect)] : []),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n // buildSqlRelation(\"left\", \"otp\", \"accounts\", \"acc\", [\"otp.accountid = acc.account_id\", \"acc.isdelete = false\", \"acc.istrash = false\"]),\n buildSqlRelation(\"left\", \"otp\", \"users\", \"creator\", [\"otp.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"otp\", \"users\", \"updater\", [\"otp.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...(revealCode === true ? Object.keys(mainCodeSqlSelect) : []),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...(revealCode === true ? mainCodeSqlSelect : {}),\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `otp.isdelete = false`,\n `otp.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"one_time_codes\",\n mainAlias: \"otp\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n })\n\n data = await oneTimeCodeModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const consumeOneTimeCode = async ({ data, field_ref: overrideFieldRef, field_module: overrideFieldModule }: OneTimeCodeConsumeProps) => {\n\n const _fieldRef = overrideFieldRef || field_ref\n const _fieldModule = overrideFieldModule || field_module\n\n // retrive the one time code\n const { data: findOneTimeCodes } = await listOneTimeCodes({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `${ModelOneTimeCodeFields.field_ref}`,\n operator: \"=\",\n value: `${_fieldRef}`\n },\n {\n field: `${ModelOneTimeCodeFields.field_module}`,\n operator: \"=\",\n value: `${_fieldModule}`\n },\n {\n field: `${ModelOneTimeCodeFields.purpose_type}`,\n operator: \"=\",\n value: `${data.purposeType}`\n },\n {\n field: `${ModelOneTimeCodeFields.code}`,\n operator: \"=\",\n value: `${data.oneTimeCode}`\n },\n ...(\n data?.userId ? [{\n field: `${ModelOneTimeCodeFields.user_id}`,\n operator: \"=\",\n value: `${data.userId}`\n }] as OneTimeCodeListProps['filters'] : []\n ),\n ...(\n data?.userType ? [{\n field: `${ModelOneTimeCodeFields.user_type}`,\n operator: \"=\",\n value: `${data.userType}`\n }] as OneTimeCodeListProps['filters'] : []\n )\n ],\n sortfield: `${ModelOneTimeCodeFields.one_time_code_id}`,\n sortorder: \"ASC\",\n datatypes: [],\n revealCode: true\n })\n\n const findOneTimeCode = findOneTimeCodes.length > 0 ? findOneTimeCodes[0] : {}\n const findOneTimeCodeId = Number(findOneTimeCode?.one_time_code_id ?? \"\")\n\n if (!findOneTimeCodeId) {\n throw new Error(`Invalid one time code: ${data.oneTimeCode}`);\n }\n\n const findOneTimeCodeStatus = findOneTimeCode?.code_status\n\n if (findOneTimeCodeStatus !== oneTimeCodeStatus.active) {\n throw new Error(`One time code is not active: ${data.oneTimeCode}`);\n }\n\n const currentDateTimeISO = getCurrentDateTimeISO()\n\n // mark one time code as used\n await oneTimeCodeModel.update({\n id: findOneTimeCodeId,\n data: {\n [`${ModelOneTimeCodeFields.code_status}`]: oneTimeCodeStatus.used,\n [`${ModelOneTimeCodeFields.used_at}`]: currentDateTimeISO\n }\n })\n\n // revoke all related ACTIVE one time codes\n await oneTimeCodeModel.update({\n data: {\n [`${ModelOneTimeCodeFields.code_status}`]: oneTimeCodeStatus.revoked,\n [`${ModelOneTimeCodeFields.used_at}`]: currentDateTimeISO\n },\n where: {\n [`${ModelOneTimeCodeFields.field_ref}`]: _fieldRef,\n [`${ModelOneTimeCodeFields.field_module}`]: _fieldModule,\n [`${ModelOneTimeCodeFields.purpose_type}`]: data.purposeType,\n [`${ModelOneTimeCodeFields.code_status}`]: oneTimeCodeStatus.active,\n ...(data?.userId ? {\n [`${ModelOneTimeCodeFields.user_id}`]: data.userId,\n } : {}),\n ...(data?.userType ? {\n [`${ModelOneTimeCodeFields.user_type}`]: data.userType,\n } : {}),\n },\n disableRollback: true\n })\n\n let response = await getOneTimeCode({ id: findOneTimeCodeId, datatypes: [] })\n\n return response\n }\n\n return {\n createOneTimeCode,\n getOneTimeCode,\n listOneTimeCodes,\n consumeOneTimeCode\n }\n\n}\n\n"]}
@@ -84,7 +84,7 @@ const AreaService = (props) => {
84
84
  const listAreas = async ({ limit, offset, filters, sortfield, sortorder, datatypes = [] }) => {
85
85
  let data = [];
86
86
  let sqlSelect = [
87
- `COUNT(area.*) OVER() as filtered_count`,
87
+ `COUNT(*) OVER() as filtered_count`,
88
88
  (0, lib_1.buildSqlSelect)(``, mainSqlSelect),
89
89
  (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
90
90
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"AreaService.js","sourceRoot":"","sources":["../../../src/services/region/AreaService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n AreaModel,\n ModelArea,\n ModelAreaFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nexport type RegionType = \"area\"\n\nexport const areaDataTypes = {\n}\n\nexport type AreaDataType = keyof typeof areaDataTypes;\n\nexport type AreaServiceProps = DefaultServiceProps & {};\n\nexport type AreaGetProps = QueryGet & {\n id: number,\n datatypes: AreaDataType[]\n};\n\nexport type AreaListProps = QueryList & {\n // id: number,\n datatypes: AreaDataType[]\n};\n\nexport type AreaRemoveProps = {\n ids: number[]\n};\n\nexport type AreaCreateProps = {\n data:\n // area\n {\n area: {\n areaName: string;\n postcodeString: string;\n status: boolean\n }\n }\n}\n\nexport type AreaUpdateProps = {\n id: number\n data:\n // area\n {\n area: {\n areaId?: number,\n areaName: string;\n postcodeString: string;\n status: boolean\n }\n }\n}\n\nconst getCreatePayload = (data: AreaCreateProps[\"data\"]) => {\n\n if (\"area\" in data) {\n\n return {\n area_name: data.area.areaName,\n postcode_string: data.area.postcodeString,\n status: Boolean(data.area.status)\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: AreaUpdateProps[\"data\"]) => {\n\n if (\"area\" in data) {\n\n return {\n area_name: data.area.areaName,\n postcode_string: data.area.postcodeString,\n status: Boolean(data.area.status)\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`area.${ModelAreaFields.area_id}`]: \"area_id\",\n [`area.${ModelAreaFields.area_name}`]: \"area_name\",\n [`area.${ModelAreaFields.postcode_string}`]: \"postcode_string\",\n [`area.${ModelAreaFields.state_id}`]: \"state_id\",\n [`area.${ModelAreaFields.status}`]: \"status\",\n}\n\n// let userSqlSelect = {\n// [`usr.${ModelUserFields.login_username}`]: \"login_username\",\n// [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n// [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n// [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n// [`usr.${ModelUserFields.contact}`]: \"contact\",\n// [`usr.${ModelUserFields.email}`]: \"email\",\n// [`usr.${ModelUserFields.address}`]: \"address\",\n// [`usr.${ModelUserFields.status}`]: \"status\",\n// }\n\nlet defaultSqlSelect = {\n [`area.${ModelAreaFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`area.${ModelAreaFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`area.${ModelAreaFields.isdelete}`]: \"isdelete\",\n [`area.${ModelAreaFields.istrash}`]: \"istrash\",\n [`area.${ModelAreaFields.accountid}`]: \"accountid\",\n}\n\nexport const AreaService = (props: AreaServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const areaModel = AreaModel({ ...rest })\n\n const createArea = async ({ data }: AreaCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await areaModel.create({ data: _data })\n\n return response\n }\n\n const updateArea = async ({ id, data }: AreaUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await areaModel.update({ id, data: _data })\n\n return response\n }\n\n const getArea = async ({ id, datatypes = [] }: AreaGetProps): Promise<ModelArea | null> => {\n\n let { data } = await listAreas({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelAreaFields.area_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelAreaFields.area_name}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listAreas = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: AreaListProps): Promise<{\n data: ModelArea[];\n total: number;\n }> => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(area.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"area\", \"users\", \"creator\", [\"area.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"area\", \"users\", \"updater\", [\"area.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n let sqlWhere = [\n `area.isdelete = false`,\n `area.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"areas\",\n mainAlias: \"area\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true // allow all account can use\n })\n\n data = await areaModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeAreas = async ({ ids }: AreaRemoveProps) => {\n\n if (!ids.length) throwError('ids is required');\n\n const response = await areaModel.remove({ ids });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(areaDataTypes);\n }\n\n return {\n createArea,\n updateArea,\n getArea,\n listAreas,\n removeAreas,\n getDataTypes\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"AreaService.js","sourceRoot":"","sources":["../../../src/services/region/AreaService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n AreaModel,\n ModelArea,\n ModelAreaFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nexport type RegionType = \"area\"\n\nexport const areaDataTypes = {\n}\n\nexport type AreaDataType = keyof typeof areaDataTypes;\n\nexport type AreaServiceProps = DefaultServiceProps & {};\n\nexport type AreaGetProps = QueryGet & {\n id: number,\n datatypes: AreaDataType[]\n};\n\nexport type AreaListProps = QueryList & {\n // id: number,\n datatypes: AreaDataType[]\n};\n\nexport type AreaRemoveProps = {\n ids: number[]\n};\n\nexport type AreaCreateProps = {\n data:\n // area\n {\n area: {\n areaName: string;\n postcodeString: string;\n status: boolean\n }\n }\n}\n\nexport type AreaUpdateProps = {\n id: number\n data:\n // area\n {\n area: {\n areaId?: number,\n areaName: string;\n postcodeString: string;\n status: boolean\n }\n }\n}\n\nconst getCreatePayload = (data: AreaCreateProps[\"data\"]) => {\n\n if (\"area\" in data) {\n\n return {\n area_name: data.area.areaName,\n postcode_string: data.area.postcodeString,\n status: Boolean(data.area.status)\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: AreaUpdateProps[\"data\"]) => {\n\n if (\"area\" in data) {\n\n return {\n area_name: data.area.areaName,\n postcode_string: data.area.postcodeString,\n status: Boolean(data.area.status)\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`area.${ModelAreaFields.area_id}`]: \"area_id\",\n [`area.${ModelAreaFields.area_name}`]: \"area_name\",\n [`area.${ModelAreaFields.postcode_string}`]: \"postcode_string\",\n [`area.${ModelAreaFields.state_id}`]: \"state_id\",\n [`area.${ModelAreaFields.status}`]: \"status\",\n}\n\n// let userSqlSelect = {\n// [`usr.${ModelUserFields.login_username}`]: \"login_username\",\n// [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n// [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n// [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n// [`usr.${ModelUserFields.contact}`]: \"contact\",\n// [`usr.${ModelUserFields.email}`]: \"email\",\n// [`usr.${ModelUserFields.address}`]: \"address\",\n// [`usr.${ModelUserFields.status}`]: \"status\",\n// }\n\nlet defaultSqlSelect = {\n [`area.${ModelAreaFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`area.${ModelAreaFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`area.${ModelAreaFields.isdelete}`]: \"isdelete\",\n [`area.${ModelAreaFields.istrash}`]: \"istrash\",\n [`area.${ModelAreaFields.accountid}`]: \"accountid\",\n}\n\nexport const AreaService = (props: AreaServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const areaModel = AreaModel({ ...rest })\n\n const createArea = async ({ data }: AreaCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await areaModel.create({ data: _data })\n\n return response\n }\n\n const updateArea = async ({ id, data }: AreaUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await areaModel.update({ id, data: _data })\n\n return response\n }\n\n const getArea = async ({ id, datatypes = [] }: AreaGetProps): Promise<ModelArea | null> => {\n\n let { data } = await listAreas({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelAreaFields.area_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelAreaFields.area_name}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listAreas = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: AreaListProps): Promise<{\n data: ModelArea[];\n total: number;\n }> => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"area\", \"users\", \"creator\", [\"area.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"area\", \"users\", \"updater\", [\"area.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n let sqlWhere = [\n `area.isdelete = false`,\n `area.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"areas\",\n mainAlias: \"area\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true // allow all account can use\n })\n\n data = await areaModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeAreas = async ({ ids }: AreaRemoveProps) => {\n\n if (!ids.length) throwError('ids is required');\n\n const response = await areaModel.remove({ ids });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(areaDataTypes);\n }\n\n return {\n createArea,\n updateArea,\n getArea,\n listAreas,\n removeAreas,\n getDataTypes\n }\n\n}\n\n"]}
@@ -88,7 +88,7 @@ const CountryService = (props) => {
88
88
  const listCountries = async ({ limit, offset, filters, sortfield, sortorder, datatypes = [] }) => {
89
89
  let data = [];
90
90
  let sqlSelect = [
91
- `COUNT(cou.*) OVER() as filtered_count`,
91
+ `COUNT(*) OVER() as filtered_count`,
92
92
  (0, lib_1.buildSqlSelect)(``, mainSqlSelect),
93
93
  // buildSqlSelect(``, userSqlSelect),
94
94
  (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
@@ -1 +1 @@
1
- {"version":3,"file":"CountryService.js","sourceRoot":"","sources":["../../../src/services/region/CountryService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n CountryModel,\n ModelCountryFields,\n ModelCustomerFields,\n ModelCountry,\n ModelStateFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRawSelect, buildSqlWhere, buildSqlRelation, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nexport type RegionType = \"country\"\n\nexport const countryDataTypes = {\n stateCount: \"state_count\"\n}\nexport type CountryDataType = keyof typeof countryDataTypes;\n\nexport type CountryServiceProps = DefaultServiceProps & {};\n\nexport type CountryGetProps = QueryGet & {\n id: number,\n datatypes: CountryDataType[]\n};\n\nexport type CountryListProps = QueryList & {\n datatypes: CountryDataType[]\n};\n\nexport type CountryRemoveProps = {\n ids: number[]\n};\n\nexport type CountryCreateProps = {\n data:\n // country\n {\n country: {\n countryName: string;\n sortName: string;\n phoneCode: number;\n status: boolean;\n }\n }\n}\n\nexport type CountryUpdateProps = {\n id: number\n data:\n // country\n {\n country: {\n countryName: string;\n sortName: string;\n phoneCode: number;\n status: boolean;\n }\n }\n}\n\nconst getCreatePayload = (data: CountryCreateProps[\"data\"]) => {\n\n if (\"country\" in data) {\n\n return {\n country_name: data.country.countryName,\n sort_name: data.country.sortName,\n phone_code: data.country.phoneCode,\n status: Boolean(data.country.status)\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: CountryUpdateProps[\"data\"]) => {\n\n if (\"country\" in data) {\n\n return {\n country_name: data.country.countryName,\n sort_name: data.country.sortName,\n phone_code: data.country.phoneCode,\n status: Boolean(data.country.status)\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`cou.${ModelCountryFields.country_id}`]: \"country_id\",\n [`cou.${ModelCountryFields.country_name}`]: \"country_name\",\n [`cou.${ModelCountryFields.phone_code}`]: \"phone_code\",\n [`cou.${ModelCountryFields.sort_name}`]: \"sort_name\",\n [`cou.${ModelCountryFields.status}`]: \"status\"\n}\n\n// let userSqlSelect = {\n// [`usr.${ModelUserFields.login_username}`]: \"login_username\",\n// [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n// [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n// [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n// [`usr.${ModelUserFields.contact}`]: \"contact\",\n// [`usr.${ModelUserFields.email}`]: \"email\",\n// [`usr.${ModelUserFields.address}`]: \"address\",\n// [`usr.${ModelUserFields.status}`]: \"status\",\n// }\n\nlet defaultSqlSelect = {\n [`cou.${ModelCustomerFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`cou.${ModelCustomerFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`cou.${ModelCustomerFields.isdelete}`]: \"isdelete\",\n [`cou.${ModelCustomerFields.istrash}`]: \"istrash\",\n [`cou.${ModelCustomerFields.accountid}`]: \"accountid\",\n}\n\nexport const CountryService = (props: CountryServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const countryModel = CountryModel({ ...rest })\n\n const createCountry = async ({ data }: CountryCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await countryModel.create({ data: _data })\n\n return response\n }\n\n const updateCountry = async ({ id, data }: CountryUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await countryModel.update({ id, data: _data })\n\n return response\n }\n\n const getCountry = async ({ id, datatypes = [] }: CountryGetProps) => {\n\n let { data } = await listCountries({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelCountryFields.country_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelCountryFields.country_name}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listCountries = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: CountryListProps): Promise<{\n data: ModelCountry[];\n total: number;\n }> => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(cou.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n // buildSqlSelect(``, userSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"cou\", \"users\", \"creator\", [\"cou.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"cou\", \"users\", \"updater\", [\"cou.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n if (datatypes.includes(countryDataTypes.stateCount)) {\n\n let stateCountSqlSelect = {\n [`COUNT(DISTINCT statecount.${ModelStateFields.state_id})::INT`]: \"state_count\"\n }\n\n filterColumns = { ...filterColumns, ...stateCountSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, stateCountSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cou\", \"states\", \"statecount\", [\"cou.country_id = statecount.country_id\", \"statecount.isdelete = false\", \"statecount.istrash = false\"])]\n\n }\n\n let sqlWhere = [\n `cou.isdelete = false`,\n `cou.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"countries\",\n mainAlias: \"cou\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true // allow all account can use\n })\n\n data = await countryModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeCountries = async ({ ids }: CountryRemoveProps) => {\n\n if (!ids.length) throwError('ids is required');\n\n const response = await countryModel.remove({ ids });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(countryDataTypes);\n }\n\n return {\n createCountry,\n updateCountry,\n getCountry,\n listCountries,\n removeCountries,\n getDataTypes\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"CountryService.js","sourceRoot":"","sources":["../../../src/services/region/CountryService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n CountryModel,\n ModelCountryFields,\n ModelCustomerFields,\n ModelCountry,\n ModelStateFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRawSelect, buildSqlWhere, buildSqlRelation, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nexport type RegionType = \"country\"\n\nexport const countryDataTypes = {\n stateCount: \"state_count\"\n}\nexport type CountryDataType = keyof typeof countryDataTypes;\n\nexport type CountryServiceProps = DefaultServiceProps & {};\n\nexport type CountryGetProps = QueryGet & {\n id: number,\n datatypes: CountryDataType[]\n};\n\nexport type CountryListProps = QueryList & {\n datatypes: CountryDataType[]\n};\n\nexport type CountryRemoveProps = {\n ids: number[]\n};\n\nexport type CountryCreateProps = {\n data:\n // country\n {\n country: {\n countryName: string;\n sortName: string;\n phoneCode: number;\n status: boolean;\n }\n }\n}\n\nexport type CountryUpdateProps = {\n id: number\n data:\n // country\n {\n country: {\n countryName: string;\n sortName: string;\n phoneCode: number;\n status: boolean;\n }\n }\n}\n\nconst getCreatePayload = (data: CountryCreateProps[\"data\"]) => {\n\n if (\"country\" in data) {\n\n return {\n country_name: data.country.countryName,\n sort_name: data.country.sortName,\n phone_code: data.country.phoneCode,\n status: Boolean(data.country.status)\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: CountryUpdateProps[\"data\"]) => {\n\n if (\"country\" in data) {\n\n return {\n country_name: data.country.countryName,\n sort_name: data.country.sortName,\n phone_code: data.country.phoneCode,\n status: Boolean(data.country.status)\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`cou.${ModelCountryFields.country_id}`]: \"country_id\",\n [`cou.${ModelCountryFields.country_name}`]: \"country_name\",\n [`cou.${ModelCountryFields.phone_code}`]: \"phone_code\",\n [`cou.${ModelCountryFields.sort_name}`]: \"sort_name\",\n [`cou.${ModelCountryFields.status}`]: \"status\"\n}\n\n// let userSqlSelect = {\n// [`usr.${ModelUserFields.login_username}`]: \"login_username\",\n// [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n// [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n// [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n// [`usr.${ModelUserFields.contact}`]: \"contact\",\n// [`usr.${ModelUserFields.email}`]: \"email\",\n// [`usr.${ModelUserFields.address}`]: \"address\",\n// [`usr.${ModelUserFields.status}`]: \"status\",\n// }\n\nlet defaultSqlSelect = {\n [`cou.${ModelCustomerFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`cou.${ModelCustomerFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`cou.${ModelCustomerFields.isdelete}`]: \"isdelete\",\n [`cou.${ModelCustomerFields.istrash}`]: \"istrash\",\n [`cou.${ModelCustomerFields.accountid}`]: \"accountid\",\n}\n\nexport const CountryService = (props: CountryServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const countryModel = CountryModel({ ...rest })\n\n const createCountry = async ({ data }: CountryCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await countryModel.create({ data: _data })\n\n return response\n }\n\n const updateCountry = async ({ id, data }: CountryUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await countryModel.update({ id, data: _data })\n\n return response\n }\n\n const getCountry = async ({ id, datatypes = [] }: CountryGetProps) => {\n\n let { data } = await listCountries({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelCountryFields.country_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelCountryFields.country_name}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listCountries = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: CountryListProps): Promise<{\n data: ModelCountry[];\n total: number;\n }> => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n // buildSqlSelect(``, userSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"cou\", \"users\", \"creator\", [\"cou.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"cou\", \"users\", \"updater\", [\"cou.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n if (datatypes.includes(countryDataTypes.stateCount)) {\n\n let stateCountSqlSelect = {\n [`COUNT(DISTINCT statecount.${ModelStateFields.state_id})::INT`]: \"state_count\"\n }\n\n filterColumns = { ...filterColumns, ...stateCountSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, stateCountSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cou\", \"states\", \"statecount\", [\"cou.country_id = statecount.country_id\", \"statecount.isdelete = false\", \"statecount.istrash = false\"])]\n\n }\n\n let sqlWhere = [\n `cou.isdelete = false`,\n `cou.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"countries\",\n mainAlias: \"cou\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true // allow all account can use\n })\n\n data = await countryModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeCountries = async ({ ids }: CountryRemoveProps) => {\n\n if (!ids.length) throwError('ids is required');\n\n const response = await countryModel.remove({ ids });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(countryDataTypes);\n }\n\n return {\n createCountry,\n updateCountry,\n getCountry,\n listCountries,\n removeCountries,\n getDataTypes\n }\n\n}\n\n"]}
@@ -100,7 +100,7 @@ const StateService = (props) => {
100
100
  const listStates = async ({ limit, offset, filters, sortfield, sortorder, datatypes = [] }) => {
101
101
  let data = [];
102
102
  let sqlSelect = [
103
- `COUNT(state.*) OVER() as filtered_count`,
103
+ `COUNT(*) OVER() as filtered_count`,
104
104
  (0, lib_1.buildSqlSelect)(``, mainSqlSelect),
105
105
  (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
106
106
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"StateService.js","sourceRoot":"","sources":["../../../src/services/region/StateService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n StateModel,\n ModelStateFields,\n ModelState,\n ModelAreaFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nexport type RegionType = \"state\"\n\nexport const stateDataTypes = {\n area: \"area\",\n areaCount: \"area_count\"\n}\nexport type StateDataType = keyof typeof stateDataTypes;\n\nexport type StateServiceProps = DefaultServiceProps & {};\n\nexport type StateGetProps = QueryGet & {\n id: number,\n datatypes: StateDataType[]\n};\n\nexport type StateListProps = QueryList & {\n // id: number,\n datatypes: StateDataType[]\n};\n\n// export type UserRemoveProps = {\n// ids: number[]\n// };\n\nexport type StateCreateProps = {\n data:\n // state\n {\n state: {\n countryId: number;\n stateName: string;\n status: boolean;\n }\n // areas?: {\n // areaName: string;\n // postcodeString: string;\n // status: boolean\n // }[]\n }\n}\n\nexport type StateUpdateProps = {\n id: number\n data:\n // state\n {\n state: {\n // countryId: number;\n stateName: string;\n status: boolean;\n }\n // areas?: {\n // areaName: string;\n // postcodeString: string;\n // status: boolean\n // }[]\n }\n}\n\nexport type StateRemoveProps = {\n ids: number[]\n};\n\nconst getCreatePayload = (data: StateCreateProps[\"data\"]) => {\n\n if (\"state\" in data) {\n\n return {\n // state: {\n country_id: data.state.countryId,\n state_name: data.state.stateName,\n status: Boolean(data.state.status)\n // },\n // area: data?.areas ? data.areas.map(i => ({\n // area_name: i.areaName,\n // postcode_string: i.postcodeString,\n // status: i.status ? 1 : 0\n // })) : []\n }\n }\n\n return false\n\n}\n\n\nconst getUpdatePayload = (data: StateUpdateProps[\"data\"]) => {\n\n if (\"state\" in data) {\n\n return {\n // state: {\n // country_id: data.state.countryId,\n state_name: data.state.stateName,\n status: Boolean(data.state.status)\n // },\n // area: data?.areas ? data.areas.map(i => ({\n // area_name: i.areaName,\n // postcode_string: i.postcodeString,\n // status: i.status ? 1 : 0\n // })) : []\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`state.${ModelStateFields.state_id}`]: \"state_id\",\n [`state.${ModelStateFields.state_name}`]: \"state_name\",\n [`state.${ModelStateFields.country_id}`]: \"country_id\",\n [`state.${ModelStateFields.status}`]: \"status\",\n}\n\n// let userSqlSelect = {\n// [`usr.${ModelUserFields.login_username}`]: \"login_username\",\n// [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n// [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n// [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n// [`usr.${ModelUserFields.contact}`]: \"contact\",\n// [`usr.${ModelUserFields.email}`]: \"email\",\n// [`usr.${ModelUserFields.address}`]: \"address\",\n// [`usr.${ModelUserFields.status}`]: \"status\",\n// }\n\nlet defaultSqlSelect = {\n [`state.${ModelStateFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`state.${ModelStateFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`state.${ModelStateFields.isdelete}`]: \"isdelete\",\n [`state.${ModelStateFields.istrash}`]: \"istrash\",\n [`state.${ModelStateFields.accountid}`]: \"accountid\",\n}\n\nexport const StateService = (props: StateServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const stateModel = StateModel({ ...rest })\n\n const createState = async ({ data }: StateCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await stateModel.create({ data: _data })\n\n return response\n }\n\n const updateState = async ({ id, data }: StateUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await stateModel.update({ id, data: _data })\n\n return response\n }\n\n const getState = async ({ id, datatypes = [] }: StateGetProps): Promise<ModelState | null> => {\n\n let { data } = await listStates({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelStateFields.state_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelStateFields.state_name}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listStates = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: StateListProps): Promise<{\n data: ModelState[];\n total: number;\n }> => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(state.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"state\", \"users\", \"creator\", [\"state.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"state\", \"users\", \"updater\", [\"state.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n if (datatypes.includes(stateDataTypes.area)) {\n\n let areaSqlSelect = {\n [`COALESCE(\n STRING_AGG(DISTINCT area.area_name, ', '),\n ''\n )`]: \"areas_lbl\",\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelAreaFields.area_id}', area.area_id,\n '${ModelAreaFields.area_name}', area.area_name,\n '${ModelAreaFields.postcode_string}', area.postcode_string,\n '${ModelAreaFields.state_id}', area.state_id,\n '${ModelAreaFields.status}', area.status\n )\n ) FILTER (WHERE area.area_id IS NOT NULL AND area.isdelete = false AND area.istrash = false), \n '[]'\n )`]: \"area\"\n }\n\n filterColumns = { ...filterColumns, ...areaSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, areaSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"state\", \"areas\", \"area\", [\"state.state_id = area.state_id\", \"area.isdelete = false\", \"area.istrash = false\"])]\n\n }\n\n if (datatypes.includes(stateDataTypes.areaCount)) {\n\n let areaCountSqlSelect = {\n [`COUNT(DISTINCT areacount.${ModelAreaFields.area_id})::INT`]: \"area_count\"\n }\n\n filterColumns = { ...filterColumns, ...areaCountSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, areaCountSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"state\", \"areas\", \"areacount\", [\"state.state_id = areacount.state_id\", \"areacount.isdelete = false\", \"areacount.istrash = false\"])]\n\n }\n\n let sqlWhere = [\n `state.isdelete = false`,\n `state.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"states\",\n mainAlias: \"state\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true // allow all account can use\n })\n\n data = await stateModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeStates = async ({ ids }: StateRemoveProps) => {\n\n if (!ids.length) throwError('ids is required');\n\n const response = await stateModel.remove({ ids });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(stateDataTypes);\n }\n\n return {\n createState,\n updateState,\n getState,\n listStates,\n removeStates,\n getDataTypes\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"StateService.js","sourceRoot":"","sources":["../../../src/services/region/StateService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n StateModel,\n ModelStateFields,\n ModelState,\n ModelAreaFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nexport type RegionType = \"state\"\n\nexport const stateDataTypes = {\n area: \"area\",\n areaCount: \"area_count\"\n}\nexport type StateDataType = keyof typeof stateDataTypes;\n\nexport type StateServiceProps = DefaultServiceProps & {};\n\nexport type StateGetProps = QueryGet & {\n id: number,\n datatypes: StateDataType[]\n};\n\nexport type StateListProps = QueryList & {\n // id: number,\n datatypes: StateDataType[]\n};\n\n// export type UserRemoveProps = {\n// ids: number[]\n// };\n\nexport type StateCreateProps = {\n data:\n // state\n {\n state: {\n countryId: number;\n stateName: string;\n status: boolean;\n }\n // areas?: {\n // areaName: string;\n // postcodeString: string;\n // status: boolean\n // }[]\n }\n}\n\nexport type StateUpdateProps = {\n id: number\n data:\n // state\n {\n state: {\n // countryId: number;\n stateName: string;\n status: boolean;\n }\n // areas?: {\n // areaName: string;\n // postcodeString: string;\n // status: boolean\n // }[]\n }\n}\n\nexport type StateRemoveProps = {\n ids: number[]\n};\n\nconst getCreatePayload = (data: StateCreateProps[\"data\"]) => {\n\n if (\"state\" in data) {\n\n return {\n // state: {\n country_id: data.state.countryId,\n state_name: data.state.stateName,\n status: Boolean(data.state.status)\n // },\n // area: data?.areas ? data.areas.map(i => ({\n // area_name: i.areaName,\n // postcode_string: i.postcodeString,\n // status: i.status ? 1 : 0\n // })) : []\n }\n }\n\n return false\n\n}\n\n\nconst getUpdatePayload = (data: StateUpdateProps[\"data\"]) => {\n\n if (\"state\" in data) {\n\n return {\n // state: {\n // country_id: data.state.countryId,\n state_name: data.state.stateName,\n status: Boolean(data.state.status)\n // },\n // area: data?.areas ? data.areas.map(i => ({\n // area_name: i.areaName,\n // postcode_string: i.postcodeString,\n // status: i.status ? 1 : 0\n // })) : []\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`state.${ModelStateFields.state_id}`]: \"state_id\",\n [`state.${ModelStateFields.state_name}`]: \"state_name\",\n [`state.${ModelStateFields.country_id}`]: \"country_id\",\n [`state.${ModelStateFields.status}`]: \"status\",\n}\n\n// let userSqlSelect = {\n// [`usr.${ModelUserFields.login_username}`]: \"login_username\",\n// [`usr.${ModelUserFields.user_type}`]: \"user_type\",\n// [`usr.${ModelUserFields.firstname}`]: \"firstname\",\n// [`usr.${ModelUserFields.lastname}`]: \"lastname\",\n// [`usr.${ModelUserFields.contact}`]: \"contact\",\n// [`usr.${ModelUserFields.email}`]: \"email\",\n// [`usr.${ModelUserFields.address}`]: \"address\",\n// [`usr.${ModelUserFields.status}`]: \"status\",\n// }\n\nlet defaultSqlSelect = {\n [`state.${ModelStateFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`state.${ModelStateFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`state.${ModelStateFields.isdelete}`]: \"isdelete\",\n [`state.${ModelStateFields.istrash}`]: \"istrash\",\n [`state.${ModelStateFields.accountid}`]: \"accountid\",\n}\n\nexport const StateService = (props: StateServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const stateModel = StateModel({ ...rest })\n\n const createState = async ({ data }: StateCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await stateModel.create({ data: _data })\n\n return response\n }\n\n const updateState = async ({ id, data }: StateUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n const response = await stateModel.update({ id, data: _data })\n\n return response\n }\n\n const getState = async ({ id, datatypes = [] }: StateGetProps): Promise<ModelState | null> => {\n\n let { data } = await listStates({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelStateFields.state_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelStateFields.state_name}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listStates = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: StateListProps): Promise<{\n data: ModelState[];\n total: number;\n }> => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"state\", \"users\", \"creator\", [\"state.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"state\", \"users\", \"updater\", [\"state.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n if (datatypes.includes(stateDataTypes.area)) {\n\n let areaSqlSelect = {\n [`COALESCE(\n STRING_AGG(DISTINCT area.area_name, ', '),\n ''\n )`]: \"areas_lbl\",\n [`COALESCE(\n JSON_AGG(\n DISTINCT JSONB_BUILD_OBJECT(\n '${ModelAreaFields.area_id}', area.area_id,\n '${ModelAreaFields.area_name}', area.area_name,\n '${ModelAreaFields.postcode_string}', area.postcode_string,\n '${ModelAreaFields.state_id}', area.state_id,\n '${ModelAreaFields.status}', area.status\n )\n ) FILTER (WHERE area.area_id IS NOT NULL AND area.isdelete = false AND area.istrash = false), \n '[]'\n )`]: \"area\"\n }\n\n filterColumns = { ...filterColumns, ...areaSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, areaSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"state\", \"areas\", \"area\", [\"state.state_id = area.state_id\", \"area.isdelete = false\", \"area.istrash = false\"])]\n\n }\n\n if (datatypes.includes(stateDataTypes.areaCount)) {\n\n let areaCountSqlSelect = {\n [`COUNT(DISTINCT areacount.${ModelAreaFields.area_id})::INT`]: \"area_count\"\n }\n\n filterColumns = { ...filterColumns, ...areaCountSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, areaCountSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"state\", \"areas\", \"areacount\", [\"state.state_id = areacount.state_id\", \"areacount.isdelete = false\", \"areacount.istrash = false\"])]\n\n }\n\n let sqlWhere = [\n `state.isdelete = false`,\n `state.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"states\",\n mainAlias: \"state\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true // allow all account can use\n })\n\n data = await stateModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeStates = async ({ ids }: StateRemoveProps) => {\n\n if (!ids.length) throwError('ids is required');\n\n const response = await stateModel.remove({ ids });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(stateDataTypes);\n }\n\n return {\n createState,\n updateState,\n getState,\n listStates,\n removeStates,\n getDataTypes\n }\n\n}\n\n"]}
@@ -248,7 +248,7 @@ const ResetPasswordService = (props) => {
248
248
  let responseOneTimeCode = await oneTimeCodeService.getOneTimeCode({ id: Number(oneTimeCode?.one_time_code_id ?? 0), datatypes: [] });
249
249
  // Call the consumer hook, if registered
250
250
  if (features_1.ResetPasswordHook.onRequest) {
251
- const responseCustomHook = await features_1.ResetPasswordHook.onRequest({
251
+ const responseCustomHook = await features_1.ResetPasswordHook.onRequest((0, utils_1.buildFeatureCallbackProps)({
252
252
  defaultServiceProps: rest,
253
253
  callbackParams: {
254
254
  userId,
@@ -259,7 +259,7 @@ const ResetPasswordService = (props) => {
259
259
  oneTimeCode: oneTimeCode?.code ?? "",
260
260
  user
261
261
  }
262
- });
262
+ }));
263
263
  responseOneTimeCode = { ...responseOneTimeCode, custom: responseCustomHook };
264
264
  }
265
265
  return responseOneTimeCode;
@@ -415,7 +415,7 @@ const ResetPasswordService = (props) => {
415
415
  });
416
416
  // Call the consumer hook, if registered
417
417
  if (features_1.ResetPasswordHook.onSuccess) {
418
- const responseCustomHook = await features_1.ResetPasswordHook.onSuccess({
418
+ const responseCustomHook = await features_1.ResetPasswordHook.onSuccess((0, utils_1.buildFeatureCallbackProps)({
419
419
  defaultServiceProps: rest,
420
420
  callbackParams: {
421
421
  userId,
@@ -424,7 +424,7 @@ const ResetPasswordService = (props) => {
424
424
  oneTimeCode,
425
425
  user
426
426
  }
427
- });
427
+ }));
428
428
  responseOnSuccess = { ...responseOnSuccess, custom: responseCustomHook };
429
429
  }
430
430
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"ResetPasswordService.js","sourceRoot":"","sources":["../../../src/services/reset_password/ResetPasswordService.ts"],"names":[],"mappings":"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","sourcesContent":["import { DefaultServiceProps, validateFormatEmailAddress, validateFormatMobileNumber, throwError } from \"@/utils\";\n\n// import { QueryList, QueryGet } from \"@/schema/common\";\n\n// import { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nimport { dayjs } from \"@/utils\";\n\nimport { ModelAccountFields, ModelOneTimeCodeFields, ModelUserFields } from \"@/models\";\nimport { UserService, AccountService, OneTimeCodeService, OneTimeCodeType, OneTimeCodeCreateProps, oneTimeCodeStatus, oneTimeCodePurposeTypes, AccountListProps } from \"@/services\"\n\nimport { ResetPasswordHook } from \"@/features\"\n\nexport const resetPasswordMethods = {\n email: \"email\",\n sms: \"sms\",\n whatapps: \"whatapps\",\n} as const\n\nexport type ResetPasswordMethod = typeof resetPasswordMethods[keyof typeof resetPasswordMethods]\n\nexport type ResetPasswordServiceProps = DefaultServiceProps & {\n};\n\ntype defaultResetPasswordProps = {\n isOperator: boolean\n accountId: string\n accountCode: string\n}\n\nexport type ResetPasswordRequestProps = {\n data: defaultResetPasswordProps & {\n emailAddress?: string\n mobileNumber?: string\n }\n}\n\nexport type ResetPasswordValidateCodeProps = {\n data: defaultResetPasswordProps & {\n oneTimeCode: string\n }\n}\n\nexport type ResetPasswordPerformProps = {\n data: defaultResetPasswordProps & {\n oneTimeCode: string\n newPassword: string\n }\n}\n\nexport const ResetPasswordService = (props: ResetPasswordServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const globalAccountService = AccountService({ ...rest, isOperator: true })\n\n const validateAccount = async ({ accountId, accountCode }: {\n accountId: string,\n accountCode: string\n }) => {\n\n if (!accountId && !accountCode) {\n throwError(`AccountId or AccountCode is required`)\n }\n\n let filters: AccountListProps[\"filters\"] = []\n\n if (accountId !== \"\") {\n filters = [{\n field: `${ModelAccountFields.account_id}`,\n operator: \"=\",\n value: `${accountId}`\n }]\n }\n\n if (accountCode !== \"\") {\n filters = [{\n field: `${ModelAccountFields.account_code}`,\n operator: \"=\",\n value: `${accountCode}`\n }]\n }\n\n const { data: dataAccounts } = await globalAccountService.listAccounts({\n limit: 1,\n offset: 0,\n filters,\n sortfield: `${ModelAccountFields.account_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n const dataAccount = dataAccounts.length > 0 ? dataAccounts[0] : {}\n\n if (!dataAccount?.account_id) {\n throwError(`Unable to retrieve account`)\n }\n\n return {\n accountId: dataAccount?.account_id ?? \"\",\n accountCode: dataAccount?.account_code ?? \"\"\n }\n\n }\n\n // get the user by email (non operator)\n const getUserByEmailNonOperator = async (\n accountId: ResetPasswordRequestProps[\"data\"][\"accountId\"],\n emailAddress: ResetPasswordRequestProps[\"data\"][\"emailAddress\"]\n ) => {\n\n const globalUserService = UserService({\n ...rest,\n accountId: Number(accountId), // need to override the account id,\n isOperator: false,\n userType: \"administrator\"\n })\n\n // get the user by email\n let { data: dataUser } = await globalUserService.listUsers({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `${ModelUserFields.email}`,\n operator: \"=\",\n value: `${emailAddress}`\n }\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n includePassword: false,\n skipFilterUserType: true,\n datatypes: []\n })\n\n return dataUser.length > 0 ? dataUser[0] : {}\n }\n\n // get the user by email (operator)\n const getUserByEmailOperator = async (\n emailAddress: ResetPasswordRequestProps[\"data\"][\"emailAddress\"]\n ) => {\n\n const globalUserService = UserService({\n ...rest,\n accountId: 0, // not important\n isOperator: true,\n userType: \"operator\"\n })\n\n // get the user by email\n let { data: dataUser } = await globalUserService.listUsers({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `${ModelUserFields.email}`,\n operator: \"=\",\n value: `${emailAddress}`\n },\n {\n field: `${ModelUserFields.user_type}`,\n operator: \"=\",\n value: `operator`\n }\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n includePassword: false,\n // skipFilterUserType: true,\n datatypes: []\n })\n\n return dataUser.length > 0 ? dataUser[0] : {}\n }\n\n // get the user by mobile (non operator)\n const getUserByMobileNonOperator = async (\n accountId: ResetPasswordRequestProps[\"data\"][\"accountId\"],\n mobileNumber: ResetPasswordRequestProps[\"data\"][\"mobileNumber\"]\n ) => {\n\n const globalUserService = UserService({\n ...rest,\n accountId: Number(accountId), // need to override the account id,\n isOperator: false,\n userType: \"administrator\"\n })\n\n // get the user by contact\n let { data: dataUser } = await globalUserService.listUsers({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `contact`,\n operator: \"=\",\n value: `${mobileNumber}`\n }\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n includePassword: false,\n skipFilterUserType: true,\n datatypes: []\n })\n\n return dataUser.length > 0 ? dataUser[0] : {}\n\n }\n\n // get the user by mobile (operator)\n const getUserByMobileOperator = async (\n mobileNumber: ResetPasswordRequestProps[\"data\"][\"mobileNumber\"]\n ) => {\n\n const globalUserService = UserService({\n ...rest,\n accountId: 0, // not important\n isOperator: true,\n userType: \"operator\"\n })\n\n // get the user by contact\n let { data: dataUser } = await globalUserService.listUsers({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `contact`,\n operator: \"=\",\n value: `${mobileNumber}`\n },\n {\n field: `${ModelUserFields.user_type}`,\n operator: \"=\",\n value: `operator`\n }\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n includePassword: false,\n skipFilterUserType: true,\n datatypes: []\n })\n\n return dataUser.length > 0 ? dataUser[0] : {}\n\n }\n\n const requestResetPassword = async ({ data }: ResetPasswordRequestProps) => {\n\n const isOperator = Boolean(data.isOperator) // check if reset password for operator user or other users(account related)\n const accountId = data.accountId ?? \"\"\n const accountCode = data.accountCode ?? \"\"\n\n let validatedAccountId = ``\n\n // only non operator will check the account\n if (isOperator === false) {\n let acc = await validateAccount({ accountCode, accountId })\n validatedAccountId = acc.accountId\n }\n\n // get the onSetup from hook\n const hookSetup = ResetPasswordHook.onSetup()\n\n const codeType: OneTimeCodeType = hookSetup.oneTimeCodeType\n const resetPasswordMethod: ResetPasswordMethod = hookSetup.resetPasswordMethod\n const emailAddress = data?.emailAddress ?? \"\"\n const mobileNumber = data?.mobileNumber ?? \"\"\n\n let user: any = {}\n\n const oneTimeCodeService = OneTimeCodeService({\n ...rest,\n accountId: isOperator ? 0 : Number(validatedAccountId),\n isOperator,\n field_ref: \"user\",\n field_module: \"administrator\"\n })\n\n if (!resetPasswordMethod) {\n throw new Error(`Invalid reset password method: ${hookSetup?.resetPasswordMethod ?? \"\"}`);\n }\n\n if (resetPasswordMethod === \"email\") {\n if (validateFormatEmailAddress(emailAddress) === false) {\n throw new Error(`Invalid email address: ${emailAddress}`);\n }\n\n // get the user by email\n user = isOperator ?\n await getUserByEmailOperator(emailAddress)\n :\n await getUserByEmailNonOperator(validatedAccountId, emailAddress)\n\n }\n\n if (resetPasswordMethod === \"sms\" || resetPasswordMethod === \"whatapps\") {\n if (validateFormatMobileNumber(mobileNumber) === false) {\n throw new Error(`Invalid mobile number: ${mobileNumber}`);\n }\n\n // get the user by email\n user = isOperator ?\n await getUserByMobileOperator(mobileNumber)\n :\n await getUserByMobileNonOperator(validatedAccountId, mobileNumber)\n\n }\n\n if (emailAddress === \"\" && mobileNumber === \"\") {\n throw new Error(`Either email address or mobile number is required`);\n }\n\n // verify the user\n if (!user?.user_id) {\n throw new Error(`Cannot find the user by ${resetPasswordMethod}: ${emailAddress ? emailAddress : mobileNumber}`);\n }\n\n // verify the user active\n if (Boolean(user?.status) === false) {\n throw new Error(`User is invalid status: ${user?.user_id ?? 0}`);\n }\n\n const userId = Number(user?.user_id ?? 0)\n const userType = user?.user_type ?? \"\"\n\n const codePayload: OneTimeCodeCreateProps = {\n field_ref: \"user\",\n field_module: userType,\n data: {\n purposeType: \"reset_password\",\n codeType,\n emailAddress,\n mobileNumber,\n userId,\n userType\n }\n }\n\n // generate the code \n const oneTimeCode = await oneTimeCodeService.createOneTimeCode(codePayload)\n\n // console.log('oneTimeCode', oneTimeCode)\n\n let responseOneTimeCode = await oneTimeCodeService.getOneTimeCode({ id: Number(oneTimeCode?.one_time_code_id ?? 0), datatypes: [] })\n\n // Call the consumer hook, if registered\n if (ResetPasswordHook.onRequest) {\n\n const responseCustomHook = await ResetPasswordHook.onRequest({\n defaultServiceProps: rest,\n callbackParams: {\n userId,\n userType,\n resetPasswordMethod,\n emailAddress,\n mobileNumber,\n oneTimeCode: oneTimeCode?.code ?? \"\",\n user\n }\n })\n\n responseOneTimeCode = { ...responseOneTimeCode, custom: responseCustomHook }\n\n }\n\n return responseOneTimeCode\n }\n\n const validateResetPasscodeCode = async ({ data }: ResetPasswordValidateCodeProps) => {\n\n const isOperator = Boolean(data.isOperator) // check if reset password for operator user or other users(account related)\n const accountId = data.accountId ?? \"\"\n const accountCode = data.accountCode ?? \"\"\n\n let validatedAccountId = ``\n\n // only non operator will check the account\n if (isOperator === false) {\n let acc = await validateAccount({ accountCode, accountId })\n validatedAccountId = acc.accountId\n }\n\n const oneTimeCode = data.oneTimeCode ?? \"\"\n\n if (!oneTimeCode) {\n throw new Error(`Reset passcode code cannot be empty`);\n }\n\n const oneTimeCodeService = OneTimeCodeService({\n ...rest,\n accountId: isOperator ? 0 : Number(validatedAccountId),\n isOperator,\n field_ref: \"user\",\n field_module: \"administrator\"\n })\n\n // check code exist\n const { data: existOneTimeCodes } = await oneTimeCodeService.listOneTimeCodes({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `${ModelOneTimeCodeFields.code}`,\n operator: \"=\",\n value: `${oneTimeCode}`\n },\n {\n field: `${ModelOneTimeCodeFields.purpose_type}`,\n operator: \"=\",\n value: `${oneTimeCodePurposeTypes.reset_password}`\n },\n ],\n sortfield: `${ModelOneTimeCodeFields.one_time_code_id}`,\n sortorder: \"ASC\",\n datatypes: [],\n revealCode: true // return the code as well\n })\n\n if (existOneTimeCodes.length <= 0) {\n throw new Error(`Invalid reset password code: ${oneTimeCode}`);\n }\n\n const existOneTimeCode = existOneTimeCodes[0]\n\n // check is not used before\n if (existOneTimeCode?.code_status !== oneTimeCodeStatus.active) {\n throw new Error(`Reset password code is not active/used: ${oneTimeCode}`);\n }\n\n const expiresAt = dayjs(existOneTimeCode?.expires_at)\n const codeIsExpired = dayjs().isAfter(expiresAt)\n\n // check code is expired\n if (codeIsExpired) {\n throw new Error(`Reset password code is expired: ${oneTimeCode}`);\n }\n\n // console.log('existOneTimeCode', existOneTimeCode)\n\n return existOneTimeCode\n }\n\n const performResetPassword = async ({ data }: ResetPasswordPerformProps) => {\n\n const isOperator = Boolean(data.isOperator) // check if reset password for operator user or other users(account related)\n const accountId = data.accountId ?? \"\"\n const accountCode = data.accountCode ?? \"\"\n\n let validatedAccountId = ``\n let validatedAccountCode = ``\n\n // only non operator will check the account\n if (isOperator === false) {\n let acc = await validateAccount({ accountCode, accountId })\n validatedAccountId = acc.accountId\n validatedAccountCode = acc.accountCode\n }\n\n // get the onSetup from hook\n const hookSetup = ResetPasswordHook.onSetup()\n\n // const codeType: OneTimeCodeType = hookSetup.oneTimeCodeType\n const resetPasswordMethod: ResetPasswordMethod = hookSetup.resetPasswordMethod\n const oneTimeCode = data?.oneTimeCode ?? \"\"\n const newPassword = data?.newPassword ?? \"\"\n\n if (!oneTimeCode) {\n throw new Error(`One Time Code is required`);\n }\n\n if (!newPassword) {\n throw new Error(`New password is required`);\n }\n\n const oneTimeCodeService = OneTimeCodeService({\n ...rest,\n accountId: isOperator ? 0 : Number(validatedAccountId),\n isOperator,\n field_ref: \"user\",\n field_module: \"administrator\"\n })\n\n\n // validate the one time code\n const validateOneTimeCode = await validateResetPasscodeCode({\n data: {\n isOperator,\n accountCode: validatedAccountCode,\n accountId: `${validatedAccountId}`,\n oneTimeCode\n }\n })\n\n // retrieve the user by the one time code\n const oneTimeCodeUserId = validateOneTimeCode?.user_id ?? \"\"\n const oneTimeCodeUserType = validateOneTimeCode?.user_type ?? \"\"\n\n if (!oneTimeCodeUserId) {\n throw new Error(`Invalid one time code userId: ${oneTimeCode}`);\n }\n\n if (!oneTimeCodeUserType) {\n throw new Error(`Invalid one time code userId Type: ${oneTimeCode}`);\n }\n\n // retrive the user information\n const userService = UserService({\n ...rest,\n isOperator: true, // skip the account id\n accountId: Number(validatedAccountId),\n userType: oneTimeCodeUserType\n })\n\n const user = await userService.getUser({\n id: Number(oneTimeCodeUserId),\n datatypes: [],\n skipFilterUserType: true,\n })\n\n // verify the user\n if (!user?.user_id) {\n throw new Error(`Cannot find the userId: ${Number(oneTimeCodeUserId)}`);\n }\n\n // verify the user active\n if (Boolean(user?.status) === false) {\n throw new Error(`User is invalid status: ${user?.user_id ?? 0}`);\n }\n\n const userId = Number(user?.user_id ?? 0)\n const userType = user?.user_type ?? \"\"\n\n // consume the one time code\n let responseConsume = await oneTimeCodeService.consumeOneTimeCode({\n field_ref: \"user\",\n field_module: userType,\n data: {\n oneTimeCode,\n purposeType: \"reset_password\",\n userId,\n userType\n }\n })\n\n // change password for user\n let responseOnSuccess = await userService.replacePassword({\n id: userId,\n data: {\n unhashLoginPassword: newPassword\n },\n isOperator: Boolean(isOperator)\n })\n\n // Call the consumer hook, if registered\n if (ResetPasswordHook.onSuccess) {\n\n const responseCustomHook = await ResetPasswordHook.onSuccess({\n defaultServiceProps: rest,\n callbackParams: {\n userId,\n userType,\n resetPasswordMethod,\n oneTimeCode,\n user\n }\n })\n\n responseOnSuccess = { ...responseOnSuccess, custom: responseCustomHook }\n\n }\n\n return {\n ...responseOnSuccess,\n consumeOneTimeCode: responseConsume\n }\n }\n\n return {\n requestResetPassword,\n validateResetPasscodeCode,\n performResetPassword\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"ResetPasswordService.js","sourceRoot":"","sources":["../../../src/services/reset_password/ResetPasswordService.ts"],"names":[],"mappings":"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","sourcesContent":["import { DefaultServiceProps, validateFormatEmailAddress, validateFormatMobileNumber, throwError, buildFeatureCallbackProps } from \"@/utils\";\n\n// import { QueryList, QueryGet } from \"@/schema/common\";\n\n// import { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nimport { dayjs } from \"@/utils\";\n\nimport { ModelAccountFields, ModelOneTimeCodeFields, ModelUserFields } from \"@/models\";\nimport { UserService, AccountService, OneTimeCodeService, OneTimeCodeType, OneTimeCodeCreateProps, oneTimeCodeStatus, oneTimeCodePurposeTypes, AccountListProps } from \"@/services\"\n\nimport { ResetPasswordHook } from \"@/features\"\n\nexport const resetPasswordMethods = {\n email: \"email\",\n sms: \"sms\",\n whatapps: \"whatapps\",\n} as const\n\nexport type ResetPasswordMethod = typeof resetPasswordMethods[keyof typeof resetPasswordMethods]\n\nexport type ResetPasswordServiceProps = DefaultServiceProps & {\n};\n\ntype defaultResetPasswordProps = {\n isOperator: boolean\n accountId: string\n accountCode: string\n}\n\nexport type ResetPasswordRequestProps = {\n data: defaultResetPasswordProps & {\n emailAddress?: string\n mobileNumber?: string\n }\n}\n\nexport type ResetPasswordValidateCodeProps = {\n data: defaultResetPasswordProps & {\n oneTimeCode: string\n }\n}\n\nexport type ResetPasswordPerformProps = {\n data: defaultResetPasswordProps & {\n oneTimeCode: string\n newPassword: string\n }\n}\n\nexport const ResetPasswordService = (props: ResetPasswordServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const globalAccountService = AccountService({ ...rest, isOperator: true })\n\n const validateAccount = async ({ accountId, accountCode }: {\n accountId: string,\n accountCode: string\n }) => {\n\n if (!accountId && !accountCode) {\n throwError(`AccountId or AccountCode is required`)\n }\n\n let filters: AccountListProps[\"filters\"] = []\n\n if (accountId !== \"\") {\n filters = [{\n field: `${ModelAccountFields.account_id}`,\n operator: \"=\",\n value: `${accountId}`\n }]\n }\n\n if (accountCode !== \"\") {\n filters = [{\n field: `${ModelAccountFields.account_code}`,\n operator: \"=\",\n value: `${accountCode}`\n }]\n }\n\n const { data: dataAccounts } = await globalAccountService.listAccounts({\n limit: 1,\n offset: 0,\n filters,\n sortfield: `${ModelAccountFields.account_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n const dataAccount = dataAccounts.length > 0 ? dataAccounts[0] : {}\n\n if (!dataAccount?.account_id) {\n throwError(`Unable to retrieve account`)\n }\n\n return {\n accountId: dataAccount?.account_id ?? \"\",\n accountCode: dataAccount?.account_code ?? \"\"\n }\n\n }\n\n // get the user by email (non operator)\n const getUserByEmailNonOperator = async (\n accountId: ResetPasswordRequestProps[\"data\"][\"accountId\"],\n emailAddress: ResetPasswordRequestProps[\"data\"][\"emailAddress\"]\n ) => {\n\n const globalUserService = UserService({\n ...rest,\n accountId: Number(accountId), // need to override the account id,\n isOperator: false,\n userType: \"administrator\"\n })\n\n // get the user by email\n let { data: dataUser } = await globalUserService.listUsers({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `${ModelUserFields.email}`,\n operator: \"=\",\n value: `${emailAddress}`\n }\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n includePassword: false,\n skipFilterUserType: true,\n datatypes: []\n })\n\n return dataUser.length > 0 ? dataUser[0] : {}\n }\n\n // get the user by email (operator)\n const getUserByEmailOperator = async (\n emailAddress: ResetPasswordRequestProps[\"data\"][\"emailAddress\"]\n ) => {\n\n const globalUserService = UserService({\n ...rest,\n accountId: 0, // not important\n isOperator: true,\n userType: \"operator\"\n })\n\n // get the user by email\n let { data: dataUser } = await globalUserService.listUsers({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `${ModelUserFields.email}`,\n operator: \"=\",\n value: `${emailAddress}`\n },\n {\n field: `${ModelUserFields.user_type}`,\n operator: \"=\",\n value: `operator`\n }\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n includePassword: false,\n // skipFilterUserType: true,\n datatypes: []\n })\n\n return dataUser.length > 0 ? dataUser[0] : {}\n }\n\n // get the user by mobile (non operator)\n const getUserByMobileNonOperator = async (\n accountId: ResetPasswordRequestProps[\"data\"][\"accountId\"],\n mobileNumber: ResetPasswordRequestProps[\"data\"][\"mobileNumber\"]\n ) => {\n\n const globalUserService = UserService({\n ...rest,\n accountId: Number(accountId), // need to override the account id,\n isOperator: false,\n userType: \"administrator\"\n })\n\n // get the user by contact\n let { data: dataUser } = await globalUserService.listUsers({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `contact`,\n operator: \"=\",\n value: `${mobileNumber}`\n }\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n includePassword: false,\n skipFilterUserType: true,\n datatypes: []\n })\n\n return dataUser.length > 0 ? dataUser[0] : {}\n\n }\n\n // get the user by mobile (operator)\n const getUserByMobileOperator = async (\n mobileNumber: ResetPasswordRequestProps[\"data\"][\"mobileNumber\"]\n ) => {\n\n const globalUserService = UserService({\n ...rest,\n accountId: 0, // not important\n isOperator: true,\n userType: \"operator\"\n })\n\n // get the user by contact\n let { data: dataUser } = await globalUserService.listUsers({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `contact`,\n operator: \"=\",\n value: `${mobileNumber}`\n },\n {\n field: `${ModelUserFields.user_type}`,\n operator: \"=\",\n value: `operator`\n }\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n includePassword: false,\n skipFilterUserType: true,\n datatypes: []\n })\n\n return dataUser.length > 0 ? dataUser[0] : {}\n\n }\n\n const requestResetPassword = async ({ data }: ResetPasswordRequestProps) => {\n\n const isOperator = Boolean(data.isOperator) // check if reset password for operator user or other users(account related)\n const accountId = data.accountId ?? \"\"\n const accountCode = data.accountCode ?? \"\"\n\n let validatedAccountId = ``\n\n // only non operator will check the account\n if (isOperator === false) {\n let acc = await validateAccount({ accountCode, accountId })\n validatedAccountId = acc.accountId\n }\n\n // get the onSetup from hook\n const hookSetup = ResetPasswordHook.onSetup()\n\n const codeType: OneTimeCodeType = hookSetup.oneTimeCodeType\n const resetPasswordMethod: ResetPasswordMethod = hookSetup.resetPasswordMethod\n const emailAddress = data?.emailAddress ?? \"\"\n const mobileNumber = data?.mobileNumber ?? \"\"\n\n let user: any = {}\n\n const oneTimeCodeService = OneTimeCodeService({\n ...rest,\n accountId: isOperator ? 0 : Number(validatedAccountId),\n isOperator,\n field_ref: \"user\",\n field_module: \"administrator\"\n })\n\n if (!resetPasswordMethod) {\n throw new Error(`Invalid reset password method: ${hookSetup?.resetPasswordMethod ?? \"\"}`);\n }\n\n if (resetPasswordMethod === \"email\") {\n if (validateFormatEmailAddress(emailAddress) === false) {\n throw new Error(`Invalid email address: ${emailAddress}`);\n }\n\n // get the user by email\n user = isOperator ?\n await getUserByEmailOperator(emailAddress)\n :\n await getUserByEmailNonOperator(validatedAccountId, emailAddress)\n\n }\n\n if (resetPasswordMethod === \"sms\" || resetPasswordMethod === \"whatapps\") {\n if (validateFormatMobileNumber(mobileNumber) === false) {\n throw new Error(`Invalid mobile number: ${mobileNumber}`);\n }\n\n // get the user by email\n user = isOperator ?\n await getUserByMobileOperator(mobileNumber)\n :\n await getUserByMobileNonOperator(validatedAccountId, mobileNumber)\n\n }\n\n if (emailAddress === \"\" && mobileNumber === \"\") {\n throw new Error(`Either email address or mobile number is required`);\n }\n\n // verify the user\n if (!user?.user_id) {\n throw new Error(`Cannot find the user by ${resetPasswordMethod}: ${emailAddress ? emailAddress : mobileNumber}`);\n }\n\n // verify the user active\n if (Boolean(user?.status) === false) {\n throw new Error(`User is invalid status: ${user?.user_id ?? 0}`);\n }\n\n const userId = Number(user?.user_id ?? 0)\n const userType = user?.user_type ?? \"\"\n\n const codePayload: OneTimeCodeCreateProps = {\n field_ref: \"user\",\n field_module: userType,\n data: {\n purposeType: \"reset_password\",\n codeType,\n emailAddress,\n mobileNumber,\n userId,\n userType\n }\n }\n\n // generate the code \n const oneTimeCode = await oneTimeCodeService.createOneTimeCode(codePayload)\n\n // console.log('oneTimeCode', oneTimeCode)\n\n let responseOneTimeCode = await oneTimeCodeService.getOneTimeCode({ id: Number(oneTimeCode?.one_time_code_id ?? 0), datatypes: [] })\n\n // Call the consumer hook, if registered\n if (ResetPasswordHook.onRequest) {\n\n const responseCustomHook = await ResetPasswordHook.onRequest(buildFeatureCallbackProps({\n defaultServiceProps: rest,\n callbackParams: {\n userId,\n userType,\n resetPasswordMethod,\n emailAddress,\n mobileNumber,\n oneTimeCode: oneTimeCode?.code ?? \"\",\n user\n }\n }))\n\n responseOneTimeCode = { ...responseOneTimeCode, custom: responseCustomHook }\n\n }\n\n return responseOneTimeCode\n }\n\n const validateResetPasscodeCode = async ({ data }: ResetPasswordValidateCodeProps) => {\n\n const isOperator = Boolean(data.isOperator) // check if reset password for operator user or other users(account related)\n const accountId = data.accountId ?? \"\"\n const accountCode = data.accountCode ?? \"\"\n\n let validatedAccountId = ``\n\n // only non operator will check the account\n if (isOperator === false) {\n let acc = await validateAccount({ accountCode, accountId })\n validatedAccountId = acc.accountId\n }\n\n const oneTimeCode = data.oneTimeCode ?? \"\"\n\n if (!oneTimeCode) {\n throw new Error(`Reset passcode code cannot be empty`);\n }\n\n const oneTimeCodeService = OneTimeCodeService({\n ...rest,\n accountId: isOperator ? 0 : Number(validatedAccountId),\n isOperator,\n field_ref: \"user\",\n field_module: \"administrator\"\n })\n\n // check code exist\n const { data: existOneTimeCodes } = await oneTimeCodeService.listOneTimeCodes({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `${ModelOneTimeCodeFields.code}`,\n operator: \"=\",\n value: `${oneTimeCode}`\n },\n {\n field: `${ModelOneTimeCodeFields.purpose_type}`,\n operator: \"=\",\n value: `${oneTimeCodePurposeTypes.reset_password}`\n },\n ],\n sortfield: `${ModelOneTimeCodeFields.one_time_code_id}`,\n sortorder: \"ASC\",\n datatypes: [],\n revealCode: true // return the code as well\n })\n\n if (existOneTimeCodes.length <= 0) {\n throw new Error(`Invalid reset password code: ${oneTimeCode}`);\n }\n\n const existOneTimeCode = existOneTimeCodes[0]\n\n // check is not used before\n if (existOneTimeCode?.code_status !== oneTimeCodeStatus.active) {\n throw new Error(`Reset password code is not active/used: ${oneTimeCode}`);\n }\n\n const expiresAt = dayjs(existOneTimeCode?.expires_at)\n const codeIsExpired = dayjs().isAfter(expiresAt)\n\n // check code is expired\n if (codeIsExpired) {\n throw new Error(`Reset password code is expired: ${oneTimeCode}`);\n }\n\n // console.log('existOneTimeCode', existOneTimeCode)\n\n return existOneTimeCode\n }\n\n const performResetPassword = async ({ data }: ResetPasswordPerformProps) => {\n\n const isOperator = Boolean(data.isOperator) // check if reset password for operator user or other users(account related)\n const accountId = data.accountId ?? \"\"\n const accountCode = data.accountCode ?? \"\"\n\n let validatedAccountId = ``\n let validatedAccountCode = ``\n\n // only non operator will check the account\n if (isOperator === false) {\n let acc = await validateAccount({ accountCode, accountId })\n validatedAccountId = acc.accountId\n validatedAccountCode = acc.accountCode\n }\n\n // get the onSetup from hook\n const hookSetup = ResetPasswordHook.onSetup()\n\n // const codeType: OneTimeCodeType = hookSetup.oneTimeCodeType\n const resetPasswordMethod: ResetPasswordMethod = hookSetup.resetPasswordMethod\n const oneTimeCode = data?.oneTimeCode ?? \"\"\n const newPassword = data?.newPassword ?? \"\"\n\n if (!oneTimeCode) {\n throw new Error(`One Time Code is required`);\n }\n\n if (!newPassword) {\n throw new Error(`New password is required`);\n }\n\n const oneTimeCodeService = OneTimeCodeService({\n ...rest,\n accountId: isOperator ? 0 : Number(validatedAccountId),\n isOperator,\n field_ref: \"user\",\n field_module: \"administrator\"\n })\n\n\n // validate the one time code\n const validateOneTimeCode = await validateResetPasscodeCode({\n data: {\n isOperator,\n accountCode: validatedAccountCode,\n accountId: `${validatedAccountId}`,\n oneTimeCode\n }\n })\n\n // retrieve the user by the one time code\n const oneTimeCodeUserId = validateOneTimeCode?.user_id ?? \"\"\n const oneTimeCodeUserType = validateOneTimeCode?.user_type ?? \"\"\n\n if (!oneTimeCodeUserId) {\n throw new Error(`Invalid one time code userId: ${oneTimeCode}`);\n }\n\n if (!oneTimeCodeUserType) {\n throw new Error(`Invalid one time code userId Type: ${oneTimeCode}`);\n }\n\n // retrive the user information\n const userService = UserService({\n ...rest,\n isOperator: true, // skip the account id\n accountId: Number(validatedAccountId),\n userType: oneTimeCodeUserType\n })\n\n const user = await userService.getUser({\n id: Number(oneTimeCodeUserId),\n datatypes: [],\n skipFilterUserType: true,\n })\n\n // verify the user\n if (!user?.user_id) {\n throw new Error(`Cannot find the userId: ${Number(oneTimeCodeUserId)}`);\n }\n\n // verify the user active\n if (Boolean(user?.status) === false) {\n throw new Error(`User is invalid status: ${user?.user_id ?? 0}`);\n }\n\n const userId = Number(user?.user_id ?? 0)\n const userType = user?.user_type ?? \"\"\n\n // consume the one time code\n let responseConsume = await oneTimeCodeService.consumeOneTimeCode({\n field_ref: \"user\",\n field_module: userType,\n data: {\n oneTimeCode,\n purposeType: \"reset_password\",\n userId,\n userType\n }\n })\n\n // change password for user\n let responseOnSuccess = await userService.replacePassword({\n id: userId,\n data: {\n unhashLoginPassword: newPassword\n },\n isOperator: Boolean(isOperator)\n })\n\n // Call the consumer hook, if registered\n if (ResetPasswordHook.onSuccess) {\n\n const responseCustomHook = await ResetPasswordHook.onSuccess(buildFeatureCallbackProps({\n defaultServiceProps: rest,\n callbackParams: {\n userId,\n userType,\n resetPasswordMethod,\n oneTimeCode,\n user\n }\n }))\n\n responseOnSuccess = { ...responseOnSuccess, custom: responseCustomHook }\n\n }\n\n return {\n ...responseOnSuccess,\n consumeOneTimeCode: responseConsume\n }\n }\n\n return {\n requestResetPassword,\n validateResetPasscodeCode,\n performResetPassword\n }\n\n}\n\n"]}
@@ -57,7 +57,7 @@ const SchedulerLogService = (props) => {
57
57
  const listSchedulerLoges = async ({ limit, offset, filters = [], sortfield, sortorder }) => {
58
58
  // let data = []
59
59
  let sqlSelect = [
60
- // `COUNT(slog.*) OVER() as filtered_count`,
60
+ // `COUNT(*) OVER() as filtered_count`,
61
61
  (0, lib_1.buildSqlSelect)(``, mainSqlSelect),
62
62
  // buildSqlSelect(``, regionSqlSelect),
63
63
  (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)