storemw-core-api 1.0.154 → 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 (59) hide show
  1. package/dist/services/access_control/AccessControlRoleService.js +1 -1
  2. package/dist/services/access_control/AccessControlRoleService.js.map +1 -1
  3. package/dist/services/access_key/AccessKeyService.js +1 -1
  4. package/dist/services/access_key/AccessKeyService.js.map +1 -1
  5. package/dist/services/account/AccountService.js +1 -1
  6. package/dist/services/account/AccountService.js.map +1 -1
  7. package/dist/services/business/BusinessService.js +1 -1
  8. package/dist/services/business/BusinessService.js.map +1 -1
  9. package/dist/services/injection_field/InjectionFieldService.js +1 -1
  10. package/dist/services/injection_field/InjectionFieldService.js.map +1 -1
  11. package/dist/services/item/ItemBrandService.js +1 -1
  12. package/dist/services/item/ItemBrandService.js.map +1 -1
  13. package/dist/services/item/ItemCategoryService.js +1 -1
  14. package/dist/services/item/ItemCategoryService.js.map +1 -1
  15. package/dist/services/item/ItemItemService.js +1 -1
  16. package/dist/services/item/ItemItemService.js.map +1 -1
  17. package/dist/services/item/ItemProductService.js +1 -1
  18. package/dist/services/item/ItemProductService.js.map +1 -1
  19. package/dist/services/item/ItemUomService.js +1 -1
  20. package/dist/services/item/ItemUomService.js.map +1 -1
  21. package/dist/services/location/LocationLocationService.js +1 -1
  22. package/dist/services/location/LocationLocationService.js.map +1 -1
  23. package/dist/services/location/LocationRackService.js +1 -1
  24. package/dist/services/location/LocationRackService.js.map +1 -1
  25. package/dist/services/location/LocationSlotService.js +1 -1
  26. package/dist/services/location/LocationSlotService.js.map +1 -1
  27. package/dist/services/one_time_code/OneTimeCodeService.js +1 -1
  28. package/dist/services/one_time_code/OneTimeCodeService.js.map +1 -1
  29. package/dist/services/region/AreaService.js +1 -1
  30. package/dist/services/region/AreaService.js.map +1 -1
  31. package/dist/services/region/CountryService.js +1 -1
  32. package/dist/services/region/CountryService.js.map +1 -1
  33. package/dist/services/region/StateService.js +1 -1
  34. package/dist/services/region/StateService.js.map +1 -1
  35. package/dist/services/scheduler/SchedulerLogService.js +1 -1
  36. package/dist/services/scheduler/SchedulerLogService.js.map +1 -1
  37. package/dist/services/subscription/account/AccountSubscribeService.js +1 -1
  38. package/dist/services/subscription/account/AccountSubscribeService.js.map +1 -1
  39. package/dist/services/subscription/plan/SubscribePlanService.js +1 -1
  40. package/dist/services/subscription/plan/SubscribePlanService.js.map +1 -1
  41. package/dist/services/user/AdministratorService.js +1 -1
  42. package/dist/services/user/AdministratorService.js.map +1 -1
  43. package/dist/services/user/AgentService.js +1 -1
  44. package/dist/services/user/AgentService.js.map +1 -1
  45. package/dist/services/user/CustomerService.js +1 -1
  46. package/dist/services/user/CustomerService.js.map +1 -1
  47. package/dist/services/user/DriverService.js +1 -1
  48. package/dist/services/user/DriverService.js.map +1 -1
  49. package/dist/services/user/MemberService.js +1 -1
  50. package/dist/services/user/MemberService.js.map +1 -1
  51. package/dist/services/user/OperatorService.js +1 -1
  52. package/dist/services/user/OperatorService.js.map +1 -1
  53. package/dist/services/user/RetailerService.js +1 -1
  54. package/dist/services/user/RetailerService.js.map +1 -1
  55. package/dist/services/user/UserService.js +1 -1
  56. package/dist/services/user/UserService.js.map +1 -1
  57. package/dist/services/user/WorkerService.js +1 -1
  58. package/dist/services/user/WorkerService.js.map +1 -1
  59. 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":";;;AAAA,mCAA+C;AAE/C,qCAMkB;AAMlB,+BAAiI;AAIpH,QAAA,cAAc,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,YAAY;CAC1B,CAAA;AA0DD,MAAM,gBAAgB,GAAG,CAAC,IAA8B,EAAE,EAAE;IAExD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QAElB,OAAO;YACH,WAAW;YACX,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAChC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAChC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAClC,KAAK;YACL,6CAA6C;YAC7C,6BAA6B;YAC7B,yCAAyC;YACzC,+BAA+B;YAC/B,WAAW;SACd,CAAA;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAEhB,CAAC,CAAA;AAGD,MAAM,gBAAgB,GAAG,CAAC,IAA8B,EAAE,EAAE;IAExD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QAElB,OAAO;YACH,WAAW;YACX,oCAAoC;YACpC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAChC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAClC,KAAK;YACL,6CAA6C;YAC7C,6BAA6B;YAC7B,yCAAyC;YACzC,+BAA+B;YAC/B,WAAW;SACd,CAAA;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAEhB,CAAC,CAAA;AAED,IAAI,aAAa,GAAG;IAChB,CAAC,SAAS,yBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU;IAClD,CAAC,SAAS,yBAAgB,CAAC,UAAU,EAAE,CAAC,EAAE,YAAY;IACtD,CAAC,SAAS,yBAAgB,CAAC,UAAU,EAAE,CAAC,EAAE,YAAY;IACtD,CAAC,SAAS,yBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ;CACjD,CAAA;AAED,wBAAwB;AACxB,mEAAmE;AACnE,yDAAyD;AACzD,yDAAyD;AACzD,uDAAuD;AACvD,qDAAqD;AACrD,iDAAiD;AACjD,qDAAqD;AACrD,mDAAmD;AACnD,IAAI;AAEJ,IAAI,gBAAgB,GAAG;IACnB,CAAC,SAAS,yBAAgB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC9D,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,SAAS,yBAAgB,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC9D,CAAC,WAAW,wBAAe,CAAC,cAAc,EAAE,CAAC,EAAE,gBAAgB;IAC/D,CAAC,SAAS,yBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU;IAClD,CAAC,SAAS,yBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS;IAChD,CAAC,SAAS,yBAAgB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW;CACvD,CAAA;AAEM,MAAM,YAAY,GAAG,CAAC,KAAwB,EAAE,EAAE;IAErD,MAAM,EACF,GAAG,IAAI,EACV,GAAG,KAAK,CAAA;IAET,MAAM,UAAU,GAAG,IAAA,mBAAU,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAE1C,MAAM,WAAW,GAAG,KAAK,EAAE,EAAE,IAAI,EAAoB,EAAE,EAAE;QAErD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAEzD,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAoB,EAAE,EAAE;QAEzD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAE7D,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,GAAG,EAAE,EAAiB,EAA8B,EAAE;QAEzF,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC;YAC5B,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,yBAAgB,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAC9E,SAAS,EAAE,GAAG,yBAAgB,CAAC,UAAU,EAAE;YAC3C,SAAS,EAAE,KAAK;YAChB,SAAS;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE3B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,EAAE,EACtB,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,GAAG,EAAE,EACD,EAGd,EAAE;QAED,IAAI,IAAI,GAAG,EAAE,CAAA;QAEb,IAAI,SAAS,GAAG;YACZ,mCAAmC;YACnC,IAAA,oBAAc,EAAC,EAAE,EAAE,aAAa,CAAC;YACjC,IAAA,oBAAc,EAAC,EAAE,EAAE,gBAAgB,CAAC;SACvC,CAAA;QAED,IAAI,WAAW,GAAG;YACd,IAAA,sBAAgB,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,sCAAsC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;YACtJ,IAAA,sBAAgB,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,sCAAsC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;SACzJ,CAAA;QAED,IAAI,UAAU,GAAa,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;QAE5F,IAAI,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAA;QAE7D,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAE1C,IAAI,aAAa,GAAG;gBAChB,CAAC;;;kBAGC,CAAC,EAAE,WAAW;gBAChB,CAAC;;;+BAGc,wBAAe,CAAC,OAAO;+BACvB,wBAAe,CAAC,SAAS;+BACzB,wBAAe,CAAC,eAAe;+BAC/B,wBAAe,CAAC,QAAQ;+BACxB,wBAAe,CAAC,MAAM;;;;kBAInC,CAAC,EAAE,MAAM;aACd,CAAA;YAED,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,aAAa,EAAE,CAAA;YAEtD,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,IAAA,oBAAc,EAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAA;YAC7D,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,IAAA,sBAAgB,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,gCAAgC,EAAE,uBAAuB,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAA;QAE3K,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YAE/C,IAAI,kBAAkB,GAAG;gBACrB,CAAC,4BAA4B,wBAAe,CAAC,OAAO,QAAQ,CAAC,EAAE,YAAY;aAC9E,CAAA;YAED,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,kBAAkB,EAAE,CAAA;YAE3D,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,IAAA,oBAAc,EAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAA;YAClE,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,IAAA,sBAAgB,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,qCAAqC,EAAE,4BAA4B,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAA;QAE/L,CAAC;QAED,IAAI,QAAQ,GAAG;YACX,wBAAwB;YACxB,uBAAuB;YACvB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAa,EAAC,OAAO,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAA;QAED,IAAI,UAAU,GAAG,IAAA,qBAAe,EAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QACtD,IAAI,cAAc,GAAG,IAAA,yBAAmB,EAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAEvD,MAAM,MAAM,GAAG,IAAA,uBAAiB,EAAC;YAC7B,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS;YACT,WAAW;YACX,QAAQ;YACR,UAAU;YACV,UAAU;YACV,cAAc;YACd,mBAAmB,EAAE,IAAI,CAAC,4BAA4B;SACzD,CAAC,CAAA;QAEF,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAEnC,MAAM,QAAQ,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;YACrD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1D,CAAA;QAED,OAAO,QAAQ,CAAA;IAEnB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,EAAE,EAAE,GAAG,EAAoB,EAAE,EAAE;QAErD,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,IAAA,kBAAU,EAAC,iBAAiB,CAAC,CAAC;QAE/C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAElD,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC,sBAAc,CAAC,CAAC;IACzC,CAAC,CAAA;IAED,OAAO;QACH,WAAW;QACX,WAAW;QACX,QAAQ;QACR,UAAU;QACV,YAAY;QACZ,YAAY;KACf,CAAA;AAEL,CAAC,CAAA;AA9KY,QAAA,YAAY,gBA8KxB","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"]}
@@ -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)
@@ -1 +1 @@
1
- {"version":3,"file":"SchedulerLogService.js","sourceRoot":"","sources":["../../../src/services/scheduler/SchedulerLogService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n SchedulerLogModel,\n ModelSchedulerLogFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { InjectionFieldModuleRef } from \"@/services\"\n\nimport { getSchedulerLogSqlRelationMaps, buildSqlRelation, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, getListWithCount } from \"@/lib\";\n\nimport {\n buildSchedulerLogDefaultSqlSelect,\n buildSchedulerLogMainSqlSelect\n} from \"@/lib\";\n\nexport type SchedulerLogModuleRef = InjectionFieldModuleRef\n\nexport type SchedulerLogServiceProps = DefaultServiceProps & {};\n\nexport type SchedulerLogGetProps = Omit<QueryGet, \"datatypes\"> & {\n id: number,\n};\n\nexport type SchedulerLogListProps = Omit<QueryList, \"datatypes\"> & {\n};\n\nexport type SchedulerLogRemoveProps = {\n schedulerLogIds: BigInt[]\n};\n\nexport const schedulerLogTypes = {\n in: \"in\",\n out: \"out\"\n}\n\nexport type SchedulerLogFlowType = keyof typeof schedulerLogTypes\n\nexport type SchedulerLog = {\n schedulerTaskId: number;\n flowType: SchedulerLogFlowType;\n\n sourceType: string;\n sourceEntityId: string;\n sourceEntityLabel: string;\n sourceEntityData: string;\n\n destinationType: string;\n destinationEntityId: string;\n destinationEntityLabel: string;\n destinationSubmitPayload: string;\n destinationSubmitResponse: string;\n\n logAction: string;\n logLabel: string;\n logStatus: boolean;\n logMesssage: string;\n}\n\nexport type SchedulerLogCreateProps = {\n data: SchedulerLog & {\n fieldRef: SchedulerLogModuleRef[\"field_ref\"],\n fieldModule: SchedulerLogModuleRef[\"field_module\"]\n }\n}\n\nconst { relationKeys, sqlRelationMaps } = getSchedulerLogSqlRelationMaps()\n\nconst getCreatePayload = (data: SchedulerLogCreateProps[\"data\"]) => {\n\n return {\n [`${ModelSchedulerLogFields.scheduler_task_id}`]: Number(data.schedulerTaskId),\n [`${ModelSchedulerLogFields.flow_type}`]: data.flowType,\n [`${ModelSchedulerLogFields.log_action}`]: data.logAction,\n\n [`${ModelSchedulerLogFields.field_module}`]: data.fieldRef,\n [`${ModelSchedulerLogFields.field_ref}`]: data.fieldModule,\n\n [`${ModelSchedulerLogFields.source_type}`]: data.sourceType,\n [`${ModelSchedulerLogFields.source_entity_id}`]: data.sourceEntityId,\n [`${ModelSchedulerLogFields.source_entity_label}`]: data.sourceEntityLabel,\n [`${ModelSchedulerLogFields.source_entity_data}`]: data.sourceEntityData,\n\n [`${ModelSchedulerLogFields.destination_type}`]: data.destinationType,\n [`${ModelSchedulerLogFields.destination_entity_id}`]: data.destinationEntityId,\n [`${ModelSchedulerLogFields.destination_entity_label}`]: data.destinationEntityLabel,\n [`${ModelSchedulerLogFields.destination_submit_payload}`]: data.destinationSubmitPayload,\n [`${ModelSchedulerLogFields.destination_submit_response}`]: data.destinationSubmitResponse,\n\n [`${ModelSchedulerLogFields.log_label}`]: data.logLabel,\n [`${ModelSchedulerLogFields.log_message}`]: data.logMesssage,\n [`${ModelSchedulerLogFields.log_status}`]: Boolean(data.logStatus),\n }\n\n}\n\nlet mainSqlSelect = buildSchedulerLogMainSqlSelect()\nlet defaultSqlSelect = buildSchedulerLogDefaultSqlSelect()\n\nexport const SchedulerLogService = (props: SchedulerLogServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const schedulerLogModel = SchedulerLogModel({ ...rest })\n\n const createSchedulerLog = async ({ data }: SchedulerLogCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create scheduler log payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await schedulerLogModel.create({ data: _data })\n\n return response\n }\n\n const getSchedulerLog = async ({ id }: SchedulerLogGetProps) => {\n\n let { data } = await listSchedulerLoges({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelSchedulerLogFields.scheduler_log_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelSchedulerLogFields.scheduler_log_id}`,\n sortorder: \"ASC\",\n })\n\n return data[0] ?? null;\n\n };\n\n const listSchedulerLoges = async ({ limit, offset, filters = [], sortfield, sortorder }: SchedulerLogListProps) => {\n\n // let data = []\n\n let sqlSelect = [\n // `COUNT(slog.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n // buildSqlSelect(``, regionSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n // buildSqlRelation(\"left\", \"slog\", \"states\", \"slogstate\", [\"slog.state_id = slogstate.state_id\", \"slogstate.isdelete = false\", \"slogstate.istrash = false\"]),\n // buildSqlRelation(\"left\", \"slog\", \"countries\", \"slogcoun\", [\"slog.country_id = slogcoun.country_id\", \"slogcoun.isdelete = false\", \"slogcoun.istrash = false\"]),\n // buildSqlRelation(\"left\", \"slog\", \"areas\", \"slogarea\", [\"slog.area_id = slogarea.area_id\", \"slogarea.isdelete = false\", \"slogarea.istrash = false\"]),\n buildSqlRelation(\"left\", \"slog\", \"users\", \"creator\", [\"slog.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"slog\", \"users\", \"updater\", [\"slog.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n // ...Object.keys(regionSqlSelect), \n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n // ...regionSqlSelect, \n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `slog.isdelete = false`,\n `slog.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: \"scheduler_logs\",\n // mainAlias: \"slog\",\n // accountId: rest.accountId,\n // sqlSelect,\n // sqlRelation,\n // sqlWhere,\n // sqlGroupBy,\n // sqlOrderby,\n // sqlLimitOffset\n // })\n\n // data = await schedulerLogModel.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 // get the listing data & count\n const { data, total } = await getListWithCount({\n model: schedulerLogModel,\n tableName: \"scheduler_logs\",\n mainAlias: \"slog\",\n countKey: `${ModelSchedulerLogFields.scheduler_log_id}`,\n accountId: rest.accountId,\n sqlRelationMaps,\n filters,\n filterColumns,\n sqlSelect,\n sqlSelectAgg: [],\n sqlRelation,\n sqlRelationAgg: [],\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n const response = {\n data,\n total\n }\n\n return response\n\n };\n\n const removeSchedulerLoges = async ({ schedulerLogIds }: SchedulerLogRemoveProps) => {\n\n if (!schedulerLogIds.length) throwError('schedulerLogIds is required');\n\n const response = await schedulerLogModel.remove({ where: { [`${ModelSchedulerLogFields.scheduler_log_id}`]: { in: schedulerLogIds } } });\n\n return response\n };\n\n return {\n getSchedulerLog,\n createSchedulerLog,\n removeSchedulerLoges,\n listSchedulerLoges\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"SchedulerLogService.js","sourceRoot":"","sources":["../../../src/services/scheduler/SchedulerLogService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n SchedulerLogModel,\n ModelSchedulerLogFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { InjectionFieldModuleRef } from \"@/services\"\n\nimport { getSchedulerLogSqlRelationMaps, buildSqlRelation, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, getListWithCount } from \"@/lib\";\n\nimport {\n buildSchedulerLogDefaultSqlSelect,\n buildSchedulerLogMainSqlSelect\n} from \"@/lib\";\n\nexport type SchedulerLogModuleRef = InjectionFieldModuleRef\n\nexport type SchedulerLogServiceProps = DefaultServiceProps & {};\n\nexport type SchedulerLogGetProps = Omit<QueryGet, \"datatypes\"> & {\n id: number,\n};\n\nexport type SchedulerLogListProps = Omit<QueryList, \"datatypes\"> & {\n};\n\nexport type SchedulerLogRemoveProps = {\n schedulerLogIds: BigInt[]\n};\n\nexport const schedulerLogTypes = {\n in: \"in\",\n out: \"out\"\n}\n\nexport type SchedulerLogFlowType = keyof typeof schedulerLogTypes\n\nexport type SchedulerLog = {\n schedulerTaskId: number;\n flowType: SchedulerLogFlowType;\n\n sourceType: string;\n sourceEntityId: string;\n sourceEntityLabel: string;\n sourceEntityData: string;\n\n destinationType: string;\n destinationEntityId: string;\n destinationEntityLabel: string;\n destinationSubmitPayload: string;\n destinationSubmitResponse: string;\n\n logAction: string;\n logLabel: string;\n logStatus: boolean;\n logMesssage: string;\n}\n\nexport type SchedulerLogCreateProps = {\n data: SchedulerLog & {\n fieldRef: SchedulerLogModuleRef[\"field_ref\"],\n fieldModule: SchedulerLogModuleRef[\"field_module\"]\n }\n}\n\nconst { relationKeys, sqlRelationMaps } = getSchedulerLogSqlRelationMaps()\n\nconst getCreatePayload = (data: SchedulerLogCreateProps[\"data\"]) => {\n\n return {\n [`${ModelSchedulerLogFields.scheduler_task_id}`]: Number(data.schedulerTaskId),\n [`${ModelSchedulerLogFields.flow_type}`]: data.flowType,\n [`${ModelSchedulerLogFields.log_action}`]: data.logAction,\n\n [`${ModelSchedulerLogFields.field_module}`]: data.fieldRef,\n [`${ModelSchedulerLogFields.field_ref}`]: data.fieldModule,\n\n [`${ModelSchedulerLogFields.source_type}`]: data.sourceType,\n [`${ModelSchedulerLogFields.source_entity_id}`]: data.sourceEntityId,\n [`${ModelSchedulerLogFields.source_entity_label}`]: data.sourceEntityLabel,\n [`${ModelSchedulerLogFields.source_entity_data}`]: data.sourceEntityData,\n\n [`${ModelSchedulerLogFields.destination_type}`]: data.destinationType,\n [`${ModelSchedulerLogFields.destination_entity_id}`]: data.destinationEntityId,\n [`${ModelSchedulerLogFields.destination_entity_label}`]: data.destinationEntityLabel,\n [`${ModelSchedulerLogFields.destination_submit_payload}`]: data.destinationSubmitPayload,\n [`${ModelSchedulerLogFields.destination_submit_response}`]: data.destinationSubmitResponse,\n\n [`${ModelSchedulerLogFields.log_label}`]: data.logLabel,\n [`${ModelSchedulerLogFields.log_message}`]: data.logMesssage,\n [`${ModelSchedulerLogFields.log_status}`]: Boolean(data.logStatus),\n }\n\n}\n\nlet mainSqlSelect = buildSchedulerLogMainSqlSelect()\nlet defaultSqlSelect = buildSchedulerLogDefaultSqlSelect()\n\nexport const SchedulerLogService = (props: SchedulerLogServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const schedulerLogModel = SchedulerLogModel({ ...rest })\n\n const createSchedulerLog = async ({ data }: SchedulerLogCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create scheduler log payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await schedulerLogModel.create({ data: _data })\n\n return response\n }\n\n const getSchedulerLog = async ({ id }: SchedulerLogGetProps) => {\n\n let { data } = await listSchedulerLoges({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelSchedulerLogFields.scheduler_log_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelSchedulerLogFields.scheduler_log_id}`,\n sortorder: \"ASC\",\n })\n\n return data[0] ?? null;\n\n };\n\n const listSchedulerLoges = async ({ limit, offset, filters = [], sortfield, sortorder }: SchedulerLogListProps) => {\n\n // let data = []\n\n let sqlSelect = [\n // `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n // buildSqlSelect(``, regionSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n // buildSqlRelation(\"left\", \"slog\", \"states\", \"slogstate\", [\"slog.state_id = slogstate.state_id\", \"slogstate.isdelete = false\", \"slogstate.istrash = false\"]),\n // buildSqlRelation(\"left\", \"slog\", \"countries\", \"slogcoun\", [\"slog.country_id = slogcoun.country_id\", \"slogcoun.isdelete = false\", \"slogcoun.istrash = false\"]),\n // buildSqlRelation(\"left\", \"slog\", \"areas\", \"slogarea\", [\"slog.area_id = slogarea.area_id\", \"slogarea.isdelete = false\", \"slogarea.istrash = false\"]),\n buildSqlRelation(\"left\", \"slog\", \"users\", \"creator\", [\"slog.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"slog\", \"users\", \"updater\", [\"slog.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n // ...Object.keys(regionSqlSelect), \n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n // ...regionSqlSelect, \n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `slog.isdelete = false`,\n `slog.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: \"scheduler_logs\",\n // mainAlias: \"slog\",\n // accountId: rest.accountId,\n // sqlSelect,\n // sqlRelation,\n // sqlWhere,\n // sqlGroupBy,\n // sqlOrderby,\n // sqlLimitOffset\n // })\n\n // data = await schedulerLogModel.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 // get the listing data & count\n const { data, total } = await getListWithCount({\n model: schedulerLogModel,\n tableName: \"scheduler_logs\",\n mainAlias: \"slog\",\n countKey: `${ModelSchedulerLogFields.scheduler_log_id}`,\n accountId: rest.accountId,\n sqlRelationMaps,\n filters,\n filterColumns,\n sqlSelect,\n sqlSelectAgg: [],\n sqlRelation,\n sqlRelationAgg: [],\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n const response = {\n data,\n total\n }\n\n return response\n\n };\n\n const removeSchedulerLoges = async ({ schedulerLogIds }: SchedulerLogRemoveProps) => {\n\n if (!schedulerLogIds.length) throwError('schedulerLogIds is required');\n\n const response = await schedulerLogModel.remove({ where: { [`${ModelSchedulerLogFields.scheduler_log_id}`]: { in: schedulerLogIds } } });\n\n return response\n };\n\n return {\n getSchedulerLog,\n createSchedulerLog,\n removeSchedulerLoges,\n listSchedulerLoges\n }\n\n}\n\n"]}
@@ -128,7 +128,7 @@ const AccountSubscribeService = (props) => {
128
128
  const listAccountSubscribes = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [] }) => {
129
129
  let data = [];
130
130
  let sqlSelect = [
131
- `COUNT(accsub.*) OVER() as filtered_count`,
131
+ `COUNT(*) OVER() as filtered_count`,
132
132
  (0, lib_1.buildSqlSelect)(``, mainSqlSelect),
133
133
  (0, lib_1.buildSqlSelect)(``, subscribePlanSqlSelect),
134
134
  (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
@@ -1 +1 @@
1
- {"version":3,"file":"AccountSubscribeService.js","sourceRoot":"","sources":["../../../../src/services/subscription/account/AccountSubscribeService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n AccountSubscribeModel,\n ModelAccountSubscribeFields,\n ModelAreaFields,\n ModelStateFields,\n ModelCountryFields,\n ModelSubscribePlanFields,\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\nimport { SubscribePlanBillingCycle, SubscribePlanService } from \"@/services\"\nimport { AccountModel } from \"@/models\"\n\nexport type AccountSubscribeServiceProps = DefaultServiceProps & {};\n\nexport type AccountSubscribeGetProps = QueryGet & {\n accountSubscriptionId: number,\n};\n\nexport type AccountSubscribeListProps = QueryList & {\n};\n\nexport type AccountSubscribeCancelProps = {\n accountSubscriptionId: BigInt\n};\n\nexport type AccountSubscribe = {\n accountId: number\n subscribePlanId: number\n subscribeStartDate?: Date // optional - if no specify will get current\n}\n\nexport type AccountSubscribeCreateProps = {\n data: AccountSubscribe\n}\n\n// export type AccountSubscribeUpdateProps = {\n// subscribePlanId: number,\n// data: AccountSubscribe\n// }\n\nconst getCreatePayload = (\n data: AccountSubscribeCreateProps[\"data\"],\n startDate: Date,\n endDate: Date\n) => {\n\n return {\n [`${ModelAccountSubscribeFields.account_id}`]: data.accountId,\n [`${ModelAccountSubscribeFields.subscribe_plan_id}`]: data.subscribePlanId,\n [`${ModelAccountSubscribeFields.subscription_start_date}`]: startDate,\n [`${ModelAccountSubscribeFields.subscription_end_date}`]: endDate,\n [`${ModelAccountSubscribeFields.status}`]: true // must active\n }\n\n}\n\n// const getUpdatePayload = (data: AccountSubscribeUpdateProps[\"data\"]) => {\n\n// return {\n// [`${ModelAccountSubscribeFields.name}`]: data.name,\n// [`${ModelAccountSubscribeFields.short_description}`]: data.shortDescription,\n// [`${ModelAccountSubscribeFields.full_description}`]: data.fullDescription,\n// [`${ModelAccountSubscribeFields.price}`]: Number(data.price),\n// [`${ModelAccountSubscribeFields.currency}`]: data.currency,\n\n// [`${ModelAccountSubscribeFields.billing_cycle}`]: data.billingCycle,\n// [`${ModelAccountSubscribeFields.status}`]: Boolean(data.status)\n// }\n\n// }\n\nlet mainSqlSelect = {\n [`accsub.${ModelAccountSubscribeFields.account_subscription_id}`]: \"account_subscription_id\",\n [`accsub.${ModelAccountSubscribeFields.account_id}`]: \"account_id\",\n [`accsub.${ModelAccountSubscribeFields.subscribe_plan_id}`]: \"subscribe_plan_id\",\n [`accsub.${ModelAccountSubscribeFields.subscription_start_date}`]: \"subscription_start_date\",\n [`accsub.${ModelAccountSubscribeFields.subscription_end_date}`]: \"subscription_end_date\",\n [`accsub.${ModelAccountSubscribeFields.status}`]: \"status\",\n [`accsub.${ModelAccountSubscribeFields.is_cancel}`]: \"is_cancel\",\n [`accsub.${ModelAccountSubscribeFields.cancel_datetime}`]: \"cancel_datetime\",\n}\n\nlet subscribePlanSqlSelect = {\n [`subplan.${ModelSubscribePlanFields.name}`]: \"subscribe_plan_name\",\n [`subplan.${ModelSubscribePlanFields.billing_cycle}`]: \"subscribe_plan_billing_cycle\",\n [`subplan.${ModelSubscribePlanFields.currency}`]: \"subscribe_plan_currency\",\n [`subplan.${ModelSubscribePlanFields.short_description}`]: \"subscribe_plan_short_description\",\n [`subplan.${ModelSubscribePlanFields.full_description}`]: \"subscribe_plan_full_description\",\n [`subplan.${ModelSubscribePlanFields.price}::float`]: \"subscribe_plan_price\",\n [`subplan.${ModelSubscribePlanFields.is_single_subscription}`]: \"subscribe_plan_is_single_subscription\",\n [`subplan.${ModelSubscribePlanFields.status}`]: \"subscribe_plan_status\",\n}\n\nlet defaultSqlSelect = {\n [`accsub.${ModelAccountSubscribeFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`accsub.${ModelAccountSubscribeFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`accsub.${ModelAccountSubscribeFields.isdelete}`]: \"isdelete\",\n [`accsub.${ModelAccountSubscribeFields.istrash}`]: \"istrash\",\n [`accsub.${ModelAccountSubscribeFields.accountid}`]: \"accountid\",\n}\n\nexport const AccountSubscribeService = (props: AccountSubscribeServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const accountModel = AccountModel({ ...rest, isOperator: true })\n const accountSubscribeModel = AccountSubscribeModel({ ...rest, isOperator: true })\n const subscribePlanService = SubscribePlanService({ ...rest, isOperator: true })\n\n const createAccountSubscribe = async ({ data }: AccountSubscribeCreateProps) => {\n\n const accountId = data.accountId ?? 0\n const subscribePlanId = data.subscribePlanId ?? 0\n const subscribeStartDate = data.subscribeStartDate ?? new Date()\n\n // validate account\n const account = await accountModel.get({ id: Number(accountId) })\n\n if (!account?.account_id) {\n throw new Error(`Invalid account id: ${accountId}`)\n }\n\n if (account?.status !== true) {\n throw new Error(`Account is inactive: ${accountId}`)\n }\n\n // get the subscribe plan information\n const subscribePlan = await subscribePlanService.getSubscribePlan({ id: Number(subscribePlanId), datatypes: [] })\n\n if (!subscribePlan?.subscribe_plan_id) {\n throw new Error(`Invalid subscribe plan id: ${subscribePlanId}`)\n }\n\n const subscribePlanBillingCycle: SubscribePlanBillingCycle = subscribePlan?.billing_cycle\n const subscribePlanIsSingleSubscription = Boolean(subscribePlan?.is_single_subscription)\n\n if (!subscribePlanBillingCycle) {\n throw new Error(`Invalid subscribe plan billing cycle: ${subscribePlanId}`)\n }\n\n // check the plan is single subscription and check its already subscribed\n if (subscribePlanIsSingleSubscription === true) {\n const { data: existSubscriptions } = await listAccountSubscribes({\n limit: 1,\n offset: 0,\n filters: [\n { field: `account_id`, operator: \"=\", value: `${accountId}` },\n { field: `subscribe_plan_id`, operator: \"=\", value: `${subscribePlanId}` },\n { field: `status`, operator: \"=\", value: true },\n ],\n sortfield: `${ModelAccountSubscribeFields.account_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n // console.log('existSubscriptions', existSubscriptions)\n if (existSubscriptions.length > 0) {\n throw new Error(`This subscribe plan can only be subscribed once per account. Active Subscription Id: ${existSubscriptions[0]?.account_subscription_id}`)\n }\n }\n\n // get end of subscription date\n const subscribeEndDate = subscribePlanService.getNextBillingEndDate(subscribeStartDate, subscribePlanBillingCycle)\n\n const _data = getCreatePayload(data, subscribeStartDate, subscribeEndDate)\n\n if (!_data) {\n throw new Error(`Invalid create account subscribe payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await accountSubscribeModel.create({ data: _data })\n\n return await getAccountSubscribe({ accountSubscriptionId: Number(response?.account_subscription_id ?? 0), datatypes: [] })\n }\n\n const getAccountSubscribe = async ({ accountSubscriptionId, datatypes = [] }: AccountSubscribeGetProps) => {\n\n let { data } = await listAccountSubscribes({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelAccountSubscribeFields.account_subscription_id}`, operator: \"=\", value: accountSubscriptionId }],\n sortfield: `${ModelAccountSubscribeFields.account_subscription_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listAccountSubscribes = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [] }: AccountSubscribeListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(accsub.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, subscribePlanSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"subplan\", \"subscribe_plans\", \"subplan\", [\"accsub.subscribe_plan_id = subplan.subscribe_plan_id\", \"subplan.isdelete = false\", \"subplan.istrash = false\"]),\n buildSqlRelation(\"left\", \"subplan\", \"users\", \"creator\", [\"accsub.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"subplan\", \"users\", \"updater\", [\"accsub.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(subscribePlanSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...subscribePlanSqlSelect,\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `accsub.isdelete = false`,\n `accsub.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: \"account_subscriptions\",\n mainAlias: \"accsub\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await accountSubscribeModel.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 cancelAccountSubscribe = async ({ accountSubscriptionId }: AccountSubscribeCancelProps) => {\n\n if (!accountSubscriptionId) throwError('accountSubscriptionId is required');\n\n const { total } = await listAccountSubscribes({\n limit: 1,\n offset: 0,\n filters: [\n { field: `${ModelAccountSubscribeFields.account_subscription_id}`, operator: \"=\", value: `${accountSubscriptionId}` },\n { field: `${ModelAccountSubscribeFields.status}`, operator: \"=\", value: true }\n ],\n sortfield: `${ModelAccountSubscribeFields.account_subscription_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n if (total <= 0) {\n throw new Error(`Invalid subscription id : ${accountSubscriptionId}`)\n }\n\n const response = await accountSubscribeModel.update({\n id: Number(accountSubscriptionId),\n data: {\n [`${ModelAccountSubscribeFields.status}`]: false,\n [`${ModelAccountSubscribeFields.is_cancel}`]: true,\n [`${ModelAccountSubscribeFields.cancel_datetime}`]: new Date()\n },\n where: {\n [`${ModelAccountSubscribeFields.status}`]: true\n }\n });\n\n return response\n };\n\n return {\n getAccountSubscribe,\n createAccountSubscribe,\n cancelAccountSubscribe,\n listAccountSubscribes\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"AccountSubscribeService.js","sourceRoot":"","sources":["../../../../src/services/subscription/account/AccountSubscribeService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n AccountSubscribeModel,\n ModelAccountSubscribeFields,\n ModelAreaFields,\n ModelStateFields,\n ModelCountryFields,\n ModelSubscribePlanFields,\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\nimport { SubscribePlanBillingCycle, SubscribePlanService } from \"@/services\"\nimport { AccountModel } from \"@/models\"\n\nexport type AccountSubscribeServiceProps = DefaultServiceProps & {};\n\nexport type AccountSubscribeGetProps = QueryGet & {\n accountSubscriptionId: number,\n};\n\nexport type AccountSubscribeListProps = QueryList & {\n};\n\nexport type AccountSubscribeCancelProps = {\n accountSubscriptionId: BigInt\n};\n\nexport type AccountSubscribe = {\n accountId: number\n subscribePlanId: number\n subscribeStartDate?: Date // optional - if no specify will get current\n}\n\nexport type AccountSubscribeCreateProps = {\n data: AccountSubscribe\n}\n\n// export type AccountSubscribeUpdateProps = {\n// subscribePlanId: number,\n// data: AccountSubscribe\n// }\n\nconst getCreatePayload = (\n data: AccountSubscribeCreateProps[\"data\"],\n startDate: Date,\n endDate: Date\n) => {\n\n return {\n [`${ModelAccountSubscribeFields.account_id}`]: data.accountId,\n [`${ModelAccountSubscribeFields.subscribe_plan_id}`]: data.subscribePlanId,\n [`${ModelAccountSubscribeFields.subscription_start_date}`]: startDate,\n [`${ModelAccountSubscribeFields.subscription_end_date}`]: endDate,\n [`${ModelAccountSubscribeFields.status}`]: true // must active\n }\n\n}\n\n// const getUpdatePayload = (data: AccountSubscribeUpdateProps[\"data\"]) => {\n\n// return {\n// [`${ModelAccountSubscribeFields.name}`]: data.name,\n// [`${ModelAccountSubscribeFields.short_description}`]: data.shortDescription,\n// [`${ModelAccountSubscribeFields.full_description}`]: data.fullDescription,\n// [`${ModelAccountSubscribeFields.price}`]: Number(data.price),\n// [`${ModelAccountSubscribeFields.currency}`]: data.currency,\n\n// [`${ModelAccountSubscribeFields.billing_cycle}`]: data.billingCycle,\n// [`${ModelAccountSubscribeFields.status}`]: Boolean(data.status)\n// }\n\n// }\n\nlet mainSqlSelect = {\n [`accsub.${ModelAccountSubscribeFields.account_subscription_id}`]: \"account_subscription_id\",\n [`accsub.${ModelAccountSubscribeFields.account_id}`]: \"account_id\",\n [`accsub.${ModelAccountSubscribeFields.subscribe_plan_id}`]: \"subscribe_plan_id\",\n [`accsub.${ModelAccountSubscribeFields.subscription_start_date}`]: \"subscription_start_date\",\n [`accsub.${ModelAccountSubscribeFields.subscription_end_date}`]: \"subscription_end_date\",\n [`accsub.${ModelAccountSubscribeFields.status}`]: \"status\",\n [`accsub.${ModelAccountSubscribeFields.is_cancel}`]: \"is_cancel\",\n [`accsub.${ModelAccountSubscribeFields.cancel_datetime}`]: \"cancel_datetime\",\n}\n\nlet subscribePlanSqlSelect = {\n [`subplan.${ModelSubscribePlanFields.name}`]: \"subscribe_plan_name\",\n [`subplan.${ModelSubscribePlanFields.billing_cycle}`]: \"subscribe_plan_billing_cycle\",\n [`subplan.${ModelSubscribePlanFields.currency}`]: \"subscribe_plan_currency\",\n [`subplan.${ModelSubscribePlanFields.short_description}`]: \"subscribe_plan_short_description\",\n [`subplan.${ModelSubscribePlanFields.full_description}`]: \"subscribe_plan_full_description\",\n [`subplan.${ModelSubscribePlanFields.price}::float`]: \"subscribe_plan_price\",\n [`subplan.${ModelSubscribePlanFields.is_single_subscription}`]: \"subscribe_plan_is_single_subscription\",\n [`subplan.${ModelSubscribePlanFields.status}`]: \"subscribe_plan_status\",\n}\n\nlet defaultSqlSelect = {\n [`accsub.${ModelAccountSubscribeFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`accsub.${ModelAccountSubscribeFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`accsub.${ModelAccountSubscribeFields.isdelete}`]: \"isdelete\",\n [`accsub.${ModelAccountSubscribeFields.istrash}`]: \"istrash\",\n [`accsub.${ModelAccountSubscribeFields.accountid}`]: \"accountid\",\n}\n\nexport const AccountSubscribeService = (props: AccountSubscribeServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const accountModel = AccountModel({ ...rest, isOperator: true })\n const accountSubscribeModel = AccountSubscribeModel({ ...rest, isOperator: true })\n const subscribePlanService = SubscribePlanService({ ...rest, isOperator: true })\n\n const createAccountSubscribe = async ({ data }: AccountSubscribeCreateProps) => {\n\n const accountId = data.accountId ?? 0\n const subscribePlanId = data.subscribePlanId ?? 0\n const subscribeStartDate = data.subscribeStartDate ?? new Date()\n\n // validate account\n const account = await accountModel.get({ id: Number(accountId) })\n\n if (!account?.account_id) {\n throw new Error(`Invalid account id: ${accountId}`)\n }\n\n if (account?.status !== true) {\n throw new Error(`Account is inactive: ${accountId}`)\n }\n\n // get the subscribe plan information\n const subscribePlan = await subscribePlanService.getSubscribePlan({ id: Number(subscribePlanId), datatypes: [] })\n\n if (!subscribePlan?.subscribe_plan_id) {\n throw new Error(`Invalid subscribe plan id: ${subscribePlanId}`)\n }\n\n const subscribePlanBillingCycle: SubscribePlanBillingCycle = subscribePlan?.billing_cycle\n const subscribePlanIsSingleSubscription = Boolean(subscribePlan?.is_single_subscription)\n\n if (!subscribePlanBillingCycle) {\n throw new Error(`Invalid subscribe plan billing cycle: ${subscribePlanId}`)\n }\n\n // check the plan is single subscription and check its already subscribed\n if (subscribePlanIsSingleSubscription === true) {\n const { data: existSubscriptions } = await listAccountSubscribes({\n limit: 1,\n offset: 0,\n filters: [\n { field: `account_id`, operator: \"=\", value: `${accountId}` },\n { field: `subscribe_plan_id`, operator: \"=\", value: `${subscribePlanId}` },\n { field: `status`, operator: \"=\", value: true },\n ],\n sortfield: `${ModelAccountSubscribeFields.account_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n // console.log('existSubscriptions', existSubscriptions)\n if (existSubscriptions.length > 0) {\n throw new Error(`This subscribe plan can only be subscribed once per account. Active Subscription Id: ${existSubscriptions[0]?.account_subscription_id}`)\n }\n }\n\n // get end of subscription date\n const subscribeEndDate = subscribePlanService.getNextBillingEndDate(subscribeStartDate, subscribePlanBillingCycle)\n\n const _data = getCreatePayload(data, subscribeStartDate, subscribeEndDate)\n\n if (!_data) {\n throw new Error(`Invalid create account subscribe payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await accountSubscribeModel.create({ data: _data })\n\n return await getAccountSubscribe({ accountSubscriptionId: Number(response?.account_subscription_id ?? 0), datatypes: [] })\n }\n\n const getAccountSubscribe = async ({ accountSubscriptionId, datatypes = [] }: AccountSubscribeGetProps) => {\n\n let { data } = await listAccountSubscribes({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelAccountSubscribeFields.account_subscription_id}`, operator: \"=\", value: accountSubscriptionId }],\n sortfield: `${ModelAccountSubscribeFields.account_subscription_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listAccountSubscribes = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [] }: AccountSubscribeListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, subscribePlanSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"subplan\", \"subscribe_plans\", \"subplan\", [\"accsub.subscribe_plan_id = subplan.subscribe_plan_id\", \"subplan.isdelete = false\", \"subplan.istrash = false\"]),\n buildSqlRelation(\"left\", \"subplan\", \"users\", \"creator\", [\"accsub.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"subplan\", \"users\", \"updater\", [\"accsub.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(subscribePlanSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...subscribePlanSqlSelect,\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `accsub.isdelete = false`,\n `accsub.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: \"account_subscriptions\",\n mainAlias: \"accsub\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await accountSubscribeModel.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 cancelAccountSubscribe = async ({ accountSubscriptionId }: AccountSubscribeCancelProps) => {\n\n if (!accountSubscriptionId) throwError('accountSubscriptionId is required');\n\n const { total } = await listAccountSubscribes({\n limit: 1,\n offset: 0,\n filters: [\n { field: `${ModelAccountSubscribeFields.account_subscription_id}`, operator: \"=\", value: `${accountSubscriptionId}` },\n { field: `${ModelAccountSubscribeFields.status}`, operator: \"=\", value: true }\n ],\n sortfield: `${ModelAccountSubscribeFields.account_subscription_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n if (total <= 0) {\n throw new Error(`Invalid subscription id : ${accountSubscriptionId}`)\n }\n\n const response = await accountSubscribeModel.update({\n id: Number(accountSubscriptionId),\n data: {\n [`${ModelAccountSubscribeFields.status}`]: false,\n [`${ModelAccountSubscribeFields.is_cancel}`]: true,\n [`${ModelAccountSubscribeFields.cancel_datetime}`]: new Date()\n },\n where: {\n [`${ModelAccountSubscribeFields.status}`]: true\n }\n });\n\n return response\n };\n\n return {\n getAccountSubscribe,\n createAccountSubscribe,\n cancelAccountSubscribe,\n listAccountSubscribes\n }\n\n}\n\n"]}
@@ -93,7 +93,7 @@ const SubscribePlanService = (props) => {
93
93
  const listSubscribePlans = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [] }) => {
94
94
  let data = [];
95
95
  let sqlSelect = [
96
- `COUNT(subplan.*) OVER() as filtered_count`,
96
+ `COUNT(*) OVER() as filtered_count`,
97
97
  (0, lib_1.buildSqlSelect)(``, mainSqlSelect),
98
98
  (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
99
99
  ];