storemw-core-api 1.0.152 → 1.0.154

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 (77) hide show
  1. package/dist/controllers/index.d.ts +1 -0
  2. package/dist/controllers/index.js +8 -1
  3. package/dist/controllers/index.js.map +1 -1
  4. package/dist/controllers/scheduler/schedulerRequestController.d.ts +11 -0
  5. package/dist/controllers/scheduler/schedulerRequestController.js +156 -0
  6. package/dist/controllers/scheduler/schedulerRequestController.js.map +1 -0
  7. package/dist/features/index.d.ts +1 -1
  8. package/dist/features/index.js.map +1 -1
  9. package/dist/features/user_me/userMeRegistry.js +4 -0
  10. package/dist/features/user_me/userMeRegistry.js.map +1 -1
  11. package/dist/features/user_me/userMeType.d.ts +17 -3
  12. package/dist/features/user_me/userMeType.js.map +1 -1
  13. package/dist/lib/index.d.ts +1 -1
  14. package/dist/lib/index.js +4 -1
  15. package/dist/lib/index.js.map +1 -1
  16. package/dist/lib/query_builder/queryScheduler.d.ts +13 -0
  17. package/dist/lib/query_builder/queryScheduler.js +47 -1
  18. package/dist/lib/query_builder/queryScheduler.js.map +1 -1
  19. package/dist/middlewares/route/index.d.ts +2 -1
  20. package/dist/middlewares/route/index.js +13 -7
  21. package/dist/middlewares/route/index.js.map +1 -1
  22. package/dist/middlewares/route/validateScheduler.d.ts +10 -0
  23. package/dist/middlewares/route/validateScheduler.js +39 -0
  24. package/dist/middlewares/route/validateScheduler.js.map +1 -0
  25. package/dist/models/index.d.ts +2 -0
  26. package/dist/models/index.js +4 -1
  27. package/dist/models/index.js.map +1 -1
  28. package/dist/models/scheduler/SchedulerRequestModel.d.ts +327 -0
  29. package/dist/models/scheduler/SchedulerRequestModel.js +13 -0
  30. package/dist/models/scheduler/SchedulerRequestModel.js.map +1 -0
  31. package/dist/routes/scheduler/schedulerRequestRoutes.d.ts +2 -0
  32. package/dist/routes/scheduler/schedulerRequestRoutes.js +15 -0
  33. package/dist/routes/scheduler/schedulerRequestRoutes.js.map +1 -0
  34. package/dist/routes/scheduler/schedulerRequestsRoutes.d.ts +2 -0
  35. package/dist/routes/scheduler/schedulerRequestsRoutes.js +13 -0
  36. package/dist/routes/scheduler/schedulerRequestsRoutes.js.map +1 -0
  37. package/dist/routes/scheduler/schedulersRoutes.js +5 -0
  38. package/dist/routes/scheduler/schedulersRoutes.js.map +1 -1
  39. package/dist/schema/middleware/route/index.d.ts +2 -2
  40. package/dist/schema/middleware/route/index.js +4 -3
  41. package/dist/schema/middleware/route/index.js.map +1 -1
  42. package/dist/schema/middleware/route/schemaScheduler.d.ts +7 -0
  43. package/dist/schema/middleware/route/schemaScheduler.js +15 -0
  44. package/dist/schema/middleware/route/schemaScheduler.js.map +1 -0
  45. package/dist/schema/payload/index.d.ts +2 -0
  46. package/dist/schema/payload/index.js +5 -1
  47. package/dist/schema/payload/index.js.map +1 -1
  48. package/dist/schema/payload/scheduler/schemaSchedulerRequest.d.ts +254 -0
  49. package/dist/schema/payload/scheduler/schemaSchedulerRequest.js +46 -0
  50. package/dist/schema/payload/scheduler/schemaSchedulerRequest.js.map +1 -0
  51. package/dist/services/auth/AuthService.js +2 -2
  52. package/dist/services/auth/AuthService.js.map +1 -1
  53. package/dist/services/file/FileService.js +4 -4
  54. package/dist/services/file/FileService.js.map +1 -1
  55. package/dist/services/gateway/SmtpEmailService.js +5 -4
  56. package/dist/services/gateway/SmtpEmailService.js.map +1 -1
  57. package/dist/services/index.d.ts +2 -0
  58. package/dist/services/index.js +3 -1
  59. package/dist/services/index.js.map +1 -1
  60. package/dist/services/reset_password/ResetPasswordService.js +4 -4
  61. package/dist/services/reset_password/ResetPasswordService.js.map +1 -1
  62. package/dist/services/scheduler/SchedulerRequestService.d.ts +109 -0
  63. package/dist/services/scheduler/SchedulerRequestService.js +141 -0
  64. package/dist/services/scheduler/SchedulerRequestService.js.map +1 -0
  65. package/dist/services/user/UserMeService.js +29 -8
  66. package/dist/services/user/UserMeService.js.map +1 -1
  67. package/dist/utils/featureUtils.d.ts +3 -0
  68. package/dist/utils/featureUtils.js +11 -0
  69. package/dist/utils/featureUtils.js.map +1 -1
  70. package/dist/utils/index.d.ts +1 -0
  71. package/dist/utils/index.js +3 -1
  72. package/dist/utils/index.js.map +1 -1
  73. package/dist/utils/serviceUtils.d.ts +1 -0
  74. package/dist/utils/serviceUtils.js +2 -1
  75. package/dist/utils/serviceUtils.js.map +1 -1
  76. package/package.json +1 -1
  77. package/prisma/schema.prisma +80 -54
@@ -1 +1 @@
1
- {"version":3,"file":"ResetPasswordService.js","sourceRoot":"","sources":["../../../src/services/reset_password/ResetPasswordService.ts"],"names":[],"mappings":"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","sourcesContent":["import { DefaultServiceProps, validateFormatEmailAddress, validateFormatMobileNumber, throwError } from \"@/utils\";\n\n// import { QueryList, QueryGet } from \"@/schema/common\";\n\n// import { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nimport { dayjs } from \"@/utils\";\n\nimport { ModelAccountFields, ModelOneTimeCodeFields, ModelUserFields } from \"@/models\";\nimport { UserService, AccountService, OneTimeCodeService, OneTimeCodeType, OneTimeCodeCreateProps, oneTimeCodeStatus, oneTimeCodePurposeTypes, AccountListProps } from \"@/services\"\n\nimport { ResetPasswordHook } from \"@/features\"\n\nexport const resetPasswordMethods = {\n email: \"email\",\n sms: \"sms\",\n whatapps: \"whatapps\",\n} as const\n\nexport type ResetPasswordMethod = typeof resetPasswordMethods[keyof typeof resetPasswordMethods]\n\nexport type ResetPasswordServiceProps = DefaultServiceProps & {\n};\n\ntype defaultResetPasswordProps = {\n isOperator: boolean\n accountId: string\n accountCode: string\n}\n\nexport type ResetPasswordRequestProps = {\n data: defaultResetPasswordProps & {\n emailAddress?: string\n mobileNumber?: string\n }\n}\n\nexport type ResetPasswordValidateCodeProps = {\n data: defaultResetPasswordProps & {\n oneTimeCode: string\n }\n}\n\nexport type ResetPasswordPerformProps = {\n data: defaultResetPasswordProps & {\n oneTimeCode: string\n newPassword: string\n }\n}\n\nexport const ResetPasswordService = (props: ResetPasswordServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const globalAccountService = AccountService({ ...rest, isOperator: true })\n\n const validateAccount = async ({ accountId, accountCode }: {\n accountId: string,\n accountCode: string\n }) => {\n\n if (!accountId && !accountCode) {\n throwError(`AccountId or AccountCode is required`)\n }\n\n let filters: AccountListProps[\"filters\"] = []\n\n if (accountId !== \"\") {\n filters = [{\n field: `${ModelAccountFields.account_id}`,\n operator: \"=\",\n value: `${accountId}`\n }]\n }\n\n if (accountCode !== \"\") {\n filters = [{\n field: `${ModelAccountFields.account_code}`,\n operator: \"=\",\n value: `${accountCode}`\n }]\n }\n\n const { data: dataAccounts } = await globalAccountService.listAccounts({\n limit: 1,\n offset: 0,\n filters,\n sortfield: `${ModelAccountFields.account_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n const dataAccount = dataAccounts.length > 0 ? dataAccounts[0] : {}\n\n if (!dataAccount?.account_id) {\n throwError(`Unable to retrieve account`)\n }\n\n return {\n accountId: dataAccount?.account_id ?? \"\",\n accountCode: dataAccount?.account_code ?? \"\"\n }\n\n }\n\n // get the user by email (non operator)\n const getUserByEmailNonOperator = async (\n accountId: ResetPasswordRequestProps[\"data\"][\"accountId\"],\n emailAddress: ResetPasswordRequestProps[\"data\"][\"emailAddress\"]\n ) => {\n\n const globalUserService = UserService({\n ...rest,\n accountId: Number(accountId), // need to override the account id,\n isOperator: false,\n userType: \"administrator\"\n })\n\n // get the user by email\n let { data: dataUser } = await globalUserService.listUsers({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `${ModelUserFields.email}`,\n operator: \"=\",\n value: `${emailAddress}`\n }\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n includePassword: false,\n skipFilterUserType: true,\n datatypes: []\n })\n\n return dataUser.length > 0 ? dataUser[0] : {}\n }\n\n // get the user by email (operator)\n const getUserByEmailOperator = async (\n emailAddress: ResetPasswordRequestProps[\"data\"][\"emailAddress\"]\n ) => {\n\n const globalUserService = UserService({\n ...rest,\n accountId: 0, // not important\n isOperator: true,\n userType: \"operator\"\n })\n\n // get the user by email\n let { data: dataUser } = await globalUserService.listUsers({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `${ModelUserFields.email}`,\n operator: \"=\",\n value: `${emailAddress}`\n },\n {\n field: `${ModelUserFields.user_type}`,\n operator: \"=\",\n value: `operator`\n }\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n includePassword: false,\n // skipFilterUserType: true,\n datatypes: []\n })\n\n return dataUser.length > 0 ? dataUser[0] : {}\n }\n\n // get the user by mobile (non operator)\n const getUserByMobileNonOperator = async (\n accountId: ResetPasswordRequestProps[\"data\"][\"accountId\"],\n mobileNumber: ResetPasswordRequestProps[\"data\"][\"mobileNumber\"]\n ) => {\n\n const globalUserService = UserService({\n ...rest,\n accountId: Number(accountId), // need to override the account id,\n isOperator: false,\n userType: \"administrator\"\n })\n\n // get the user by contact\n let { data: dataUser } = await globalUserService.listUsers({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `contact`,\n operator: \"=\",\n value: `${mobileNumber}`\n }\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n includePassword: false,\n skipFilterUserType: true,\n datatypes: []\n })\n\n return dataUser.length > 0 ? dataUser[0] : {}\n\n }\n\n // get the user by mobile (operator)\n const getUserByMobileOperator = async (\n mobileNumber: ResetPasswordRequestProps[\"data\"][\"mobileNumber\"]\n ) => {\n\n const globalUserService = UserService({\n ...rest,\n accountId: 0, // not important\n isOperator: true,\n userType: \"operator\"\n })\n\n // get the user by contact\n let { data: dataUser } = await globalUserService.listUsers({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `contact`,\n operator: \"=\",\n value: `${mobileNumber}`\n },\n {\n field: `${ModelUserFields.user_type}`,\n operator: \"=\",\n value: `operator`\n }\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n includePassword: false,\n skipFilterUserType: true,\n datatypes: []\n })\n\n return dataUser.length > 0 ? dataUser[0] : {}\n\n }\n\n const requestResetPassword = async ({ data }: ResetPasswordRequestProps) => {\n\n const isOperator = Boolean(data.isOperator) // check if reset password for operator user or other users(account related)\n const accountId = data.accountId ?? \"\"\n const accountCode = data.accountCode ?? \"\"\n\n let validatedAccountId = ``\n\n // only non operator will check the account\n if (isOperator === false) {\n let acc = await validateAccount({ accountCode, accountId })\n validatedAccountId = acc.accountId\n }\n\n // get the onSetup from hook\n const hookSetup = ResetPasswordHook.onSetup()\n\n const codeType: OneTimeCodeType = hookSetup.oneTimeCodeType\n const resetPasswordMethod: ResetPasswordMethod = hookSetup.resetPasswordMethod\n const emailAddress = data?.emailAddress ?? \"\"\n const mobileNumber = data?.mobileNumber ?? \"\"\n\n let user: any = {}\n\n const oneTimeCodeService = OneTimeCodeService({\n ...rest,\n accountId: isOperator ? 0 : Number(validatedAccountId),\n isOperator,\n field_ref: \"user\",\n field_module: \"administrator\"\n })\n\n if (!resetPasswordMethod) {\n throw new Error(`Invalid reset password method: ${hookSetup?.resetPasswordMethod ?? \"\"}`);\n }\n\n if (resetPasswordMethod === \"email\") {\n if (validateFormatEmailAddress(emailAddress) === false) {\n throw new Error(`Invalid email address: ${emailAddress}`);\n }\n\n // get the user by email\n user = isOperator ?\n await getUserByEmailOperator(emailAddress)\n :\n await getUserByEmailNonOperator(validatedAccountId, emailAddress)\n\n }\n\n if (resetPasswordMethod === \"sms\" || resetPasswordMethod === \"whatapps\") {\n if (validateFormatMobileNumber(mobileNumber) === false) {\n throw new Error(`Invalid mobile number: ${mobileNumber}`);\n }\n\n // get the user by email\n user = isOperator ?\n await getUserByMobileOperator(mobileNumber)\n :\n await getUserByMobileNonOperator(validatedAccountId, mobileNumber)\n\n }\n\n if (emailAddress === \"\" && mobileNumber === \"\") {\n throw new Error(`Either email address or mobile number is required`);\n }\n\n // verify the user\n if (!user?.user_id) {\n throw new Error(`Cannot find the user by ${resetPasswordMethod}: ${emailAddress ? emailAddress : mobileNumber}`);\n }\n\n // verify the user active\n if (Boolean(user?.status) === false) {\n throw new Error(`User is invalid status: ${user?.user_id ?? 0}`);\n }\n\n const userId = Number(user?.user_id ?? 0)\n const userType = user?.user_type ?? \"\"\n\n const codePayload: OneTimeCodeCreateProps = {\n field_ref: \"user\",\n field_module: userType,\n data: {\n purposeType: \"reset_password\",\n codeType,\n emailAddress,\n mobileNumber,\n userId,\n userType\n }\n }\n\n // generate the code \n const oneTimeCode = await oneTimeCodeService.createOneTimeCode(codePayload)\n\n // console.log('oneTimeCode', oneTimeCode)\n\n let responseOneTimeCode = await oneTimeCodeService.getOneTimeCode({ id: Number(oneTimeCode?.one_time_code_id ?? 0), datatypes: [] })\n\n // Call the consumer hook, if registered\n if (ResetPasswordHook.onRequest) {\n\n const responseCustomHook = await ResetPasswordHook.onRequest({\n defaultServiceProps: rest,\n callbackParams: {\n userId,\n userType,\n resetPasswordMethod,\n emailAddress,\n mobileNumber,\n oneTimeCode: oneTimeCode?.code ?? \"\",\n user\n }\n })\n\n responseOneTimeCode = { ...responseOneTimeCode, custom: responseCustomHook }\n\n }\n\n return responseOneTimeCode\n }\n\n const validateResetPasscodeCode = async ({ data }: ResetPasswordValidateCodeProps) => {\n\n const isOperator = Boolean(data.isOperator) // check if reset password for operator user or other users(account related)\n const accountId = data.accountId ?? \"\"\n const accountCode = data.accountCode ?? \"\"\n\n let validatedAccountId = ``\n\n // only non operator will check the account\n if (isOperator === false) {\n let acc = await validateAccount({ accountCode, accountId })\n validatedAccountId = acc.accountId\n }\n\n const oneTimeCode = data.oneTimeCode ?? \"\"\n\n if (!oneTimeCode) {\n throw new Error(`Reset passcode code cannot be empty`);\n }\n\n const oneTimeCodeService = OneTimeCodeService({\n ...rest,\n accountId: isOperator ? 0 : Number(validatedAccountId),\n isOperator,\n field_ref: \"user\",\n field_module: \"administrator\"\n })\n\n // check code exist\n const { data: existOneTimeCodes } = await oneTimeCodeService.listOneTimeCodes({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `${ModelOneTimeCodeFields.code}`,\n operator: \"=\",\n value: `${oneTimeCode}`\n },\n {\n field: `${ModelOneTimeCodeFields.purpose_type}`,\n operator: \"=\",\n value: `${oneTimeCodePurposeTypes.reset_password}`\n },\n ],\n sortfield: `${ModelOneTimeCodeFields.one_time_code_id}`,\n sortorder: \"ASC\",\n datatypes: [],\n revealCode: true // return the code as well\n })\n\n if (existOneTimeCodes.length <= 0) {\n throw new Error(`Invalid reset password code: ${oneTimeCode}`);\n }\n\n const existOneTimeCode = existOneTimeCodes[0]\n\n // check is not used before\n if (existOneTimeCode?.code_status !== oneTimeCodeStatus.active) {\n throw new Error(`Reset password code is not active/used: ${oneTimeCode}`);\n }\n\n const expiresAt = dayjs(existOneTimeCode?.expires_at)\n const codeIsExpired = dayjs().isAfter(expiresAt)\n\n // check code is expired\n if (codeIsExpired) {\n throw new Error(`Reset password code is expired: ${oneTimeCode}`);\n }\n\n // console.log('existOneTimeCode', existOneTimeCode)\n\n return existOneTimeCode\n }\n\n const performResetPassword = async ({ data }: ResetPasswordPerformProps) => {\n\n const isOperator = Boolean(data.isOperator) // check if reset password for operator user or other users(account related)\n const accountId = data.accountId ?? \"\"\n const accountCode = data.accountCode ?? \"\"\n\n let validatedAccountId = ``\n let validatedAccountCode = ``\n\n // only non operator will check the account\n if (isOperator === false) {\n let acc = await validateAccount({ accountCode, accountId })\n validatedAccountId = acc.accountId\n validatedAccountCode = acc.accountCode\n }\n\n // get the onSetup from hook\n const hookSetup = ResetPasswordHook.onSetup()\n\n // const codeType: OneTimeCodeType = hookSetup.oneTimeCodeType\n const resetPasswordMethod: ResetPasswordMethod = hookSetup.resetPasswordMethod\n const oneTimeCode = data?.oneTimeCode ?? \"\"\n const newPassword = data?.newPassword ?? \"\"\n\n if (!oneTimeCode) {\n throw new Error(`One Time Code is required`);\n }\n\n if (!newPassword) {\n throw new Error(`New password is required`);\n }\n\n const oneTimeCodeService = OneTimeCodeService({\n ...rest,\n accountId: isOperator ? 0 : Number(validatedAccountId),\n isOperator,\n field_ref: \"user\",\n field_module: \"administrator\"\n })\n\n\n // validate the one time code\n const validateOneTimeCode = await validateResetPasscodeCode({\n data: {\n isOperator,\n accountCode: validatedAccountCode,\n accountId: `${validatedAccountId}`,\n oneTimeCode\n }\n })\n\n // retrieve the user by the one time code\n const oneTimeCodeUserId = validateOneTimeCode?.user_id ?? \"\"\n const oneTimeCodeUserType = validateOneTimeCode?.user_type ?? \"\"\n\n if (!oneTimeCodeUserId) {\n throw new Error(`Invalid one time code userId: ${oneTimeCode}`);\n }\n\n if (!oneTimeCodeUserType) {\n throw new Error(`Invalid one time code userId Type: ${oneTimeCode}`);\n }\n\n // retrive the user information\n const userService = UserService({\n ...rest,\n isOperator: true, // skip the account id\n accountId: Number(validatedAccountId),\n userType: oneTimeCodeUserType\n })\n\n const user = await userService.getUser({\n id: Number(oneTimeCodeUserId),\n datatypes: [],\n skipFilterUserType: true,\n })\n\n // verify the user\n if (!user?.user_id) {\n throw new Error(`Cannot find the userId: ${Number(oneTimeCodeUserId)}`);\n }\n\n // verify the user active\n if (Boolean(user?.status) === false) {\n throw new Error(`User is invalid status: ${user?.user_id ?? 0}`);\n }\n\n const userId = Number(user?.user_id ?? 0)\n const userType = user?.user_type ?? \"\"\n\n // consume the one time code\n let responseConsume = await oneTimeCodeService.consumeOneTimeCode({\n field_ref: \"user\",\n field_module: userType,\n data: {\n oneTimeCode,\n purposeType: \"reset_password\",\n userId,\n userType\n }\n })\n\n // change password for user\n let responseOnSuccess = await userService.replacePassword({\n id: userId,\n data: {\n unhashLoginPassword: newPassword\n },\n isOperator: Boolean(isOperator)\n })\n\n // Call the consumer hook, if registered\n if (ResetPasswordHook.onSuccess) {\n\n const responseCustomHook = await ResetPasswordHook.onSuccess({\n defaultServiceProps: rest,\n callbackParams: {\n userId,\n userType,\n resetPasswordMethod,\n oneTimeCode,\n user\n }\n })\n\n responseOnSuccess = { ...responseOnSuccess, custom: responseCustomHook }\n\n }\n\n return {\n ...responseOnSuccess,\n consumeOneTimeCode: responseConsume\n }\n }\n\n return {\n requestResetPassword,\n validateResetPasscodeCode,\n performResetPassword\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"ResetPasswordService.js","sourceRoot":"","sources":["../../../src/services/reset_password/ResetPasswordService.ts"],"names":[],"mappings":"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","sourcesContent":["import { DefaultServiceProps, validateFormatEmailAddress, validateFormatMobileNumber, throwError, buildFeatureCallbackProps } from \"@/utils\";\n\n// import { QueryList, QueryGet } from \"@/schema/common\";\n\n// import { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\n\nimport { dayjs } from \"@/utils\";\n\nimport { ModelAccountFields, ModelOneTimeCodeFields, ModelUserFields } from \"@/models\";\nimport { UserService, AccountService, OneTimeCodeService, OneTimeCodeType, OneTimeCodeCreateProps, oneTimeCodeStatus, oneTimeCodePurposeTypes, AccountListProps } from \"@/services\"\n\nimport { ResetPasswordHook } from \"@/features\"\n\nexport const resetPasswordMethods = {\n email: \"email\",\n sms: \"sms\",\n whatapps: \"whatapps\",\n} as const\n\nexport type ResetPasswordMethod = typeof resetPasswordMethods[keyof typeof resetPasswordMethods]\n\nexport type ResetPasswordServiceProps = DefaultServiceProps & {\n};\n\ntype defaultResetPasswordProps = {\n isOperator: boolean\n accountId: string\n accountCode: string\n}\n\nexport type ResetPasswordRequestProps = {\n data: defaultResetPasswordProps & {\n emailAddress?: string\n mobileNumber?: string\n }\n}\n\nexport type ResetPasswordValidateCodeProps = {\n data: defaultResetPasswordProps & {\n oneTimeCode: string\n }\n}\n\nexport type ResetPasswordPerformProps = {\n data: defaultResetPasswordProps & {\n oneTimeCode: string\n newPassword: string\n }\n}\n\nexport const ResetPasswordService = (props: ResetPasswordServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const globalAccountService = AccountService({ ...rest, isOperator: true })\n\n const validateAccount = async ({ accountId, accountCode }: {\n accountId: string,\n accountCode: string\n }) => {\n\n if (!accountId && !accountCode) {\n throwError(`AccountId or AccountCode is required`)\n }\n\n let filters: AccountListProps[\"filters\"] = []\n\n if (accountId !== \"\") {\n filters = [{\n field: `${ModelAccountFields.account_id}`,\n operator: \"=\",\n value: `${accountId}`\n }]\n }\n\n if (accountCode !== \"\") {\n filters = [{\n field: `${ModelAccountFields.account_code}`,\n operator: \"=\",\n value: `${accountCode}`\n }]\n }\n\n const { data: dataAccounts } = await globalAccountService.listAccounts({\n limit: 1,\n offset: 0,\n filters,\n sortfield: `${ModelAccountFields.account_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n const dataAccount = dataAccounts.length > 0 ? dataAccounts[0] : {}\n\n if (!dataAccount?.account_id) {\n throwError(`Unable to retrieve account`)\n }\n\n return {\n accountId: dataAccount?.account_id ?? \"\",\n accountCode: dataAccount?.account_code ?? \"\"\n }\n\n }\n\n // get the user by email (non operator)\n const getUserByEmailNonOperator = async (\n accountId: ResetPasswordRequestProps[\"data\"][\"accountId\"],\n emailAddress: ResetPasswordRequestProps[\"data\"][\"emailAddress\"]\n ) => {\n\n const globalUserService = UserService({\n ...rest,\n accountId: Number(accountId), // need to override the account id,\n isOperator: false,\n userType: \"administrator\"\n })\n\n // get the user by email\n let { data: dataUser } = await globalUserService.listUsers({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `${ModelUserFields.email}`,\n operator: \"=\",\n value: `${emailAddress}`\n }\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n includePassword: false,\n skipFilterUserType: true,\n datatypes: []\n })\n\n return dataUser.length > 0 ? dataUser[0] : {}\n }\n\n // get the user by email (operator)\n const getUserByEmailOperator = async (\n emailAddress: ResetPasswordRequestProps[\"data\"][\"emailAddress\"]\n ) => {\n\n const globalUserService = UserService({\n ...rest,\n accountId: 0, // not important\n isOperator: true,\n userType: \"operator\"\n })\n\n // get the user by email\n let { data: dataUser } = await globalUserService.listUsers({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `${ModelUserFields.email}`,\n operator: \"=\",\n value: `${emailAddress}`\n },\n {\n field: `${ModelUserFields.user_type}`,\n operator: \"=\",\n value: `operator`\n }\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n includePassword: false,\n // skipFilterUserType: true,\n datatypes: []\n })\n\n return dataUser.length > 0 ? dataUser[0] : {}\n }\n\n // get the user by mobile (non operator)\n const getUserByMobileNonOperator = async (\n accountId: ResetPasswordRequestProps[\"data\"][\"accountId\"],\n mobileNumber: ResetPasswordRequestProps[\"data\"][\"mobileNumber\"]\n ) => {\n\n const globalUserService = UserService({\n ...rest,\n accountId: Number(accountId), // need to override the account id,\n isOperator: false,\n userType: \"administrator\"\n })\n\n // get the user by contact\n let { data: dataUser } = await globalUserService.listUsers({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `contact`,\n operator: \"=\",\n value: `${mobileNumber}`\n }\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n includePassword: false,\n skipFilterUserType: true,\n datatypes: []\n })\n\n return dataUser.length > 0 ? dataUser[0] : {}\n\n }\n\n // get the user by mobile (operator)\n const getUserByMobileOperator = async (\n mobileNumber: ResetPasswordRequestProps[\"data\"][\"mobileNumber\"]\n ) => {\n\n const globalUserService = UserService({\n ...rest,\n accountId: 0, // not important\n isOperator: true,\n userType: \"operator\"\n })\n\n // get the user by contact\n let { data: dataUser } = await globalUserService.listUsers({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `contact`,\n operator: \"=\",\n value: `${mobileNumber}`\n },\n {\n field: `${ModelUserFields.user_type}`,\n operator: \"=\",\n value: `operator`\n }\n ],\n sortfield: `${ModelUserFields.user_id}`,\n sortorder: \"ASC\",\n includePassword: false,\n skipFilterUserType: true,\n datatypes: []\n })\n\n return dataUser.length > 0 ? dataUser[0] : {}\n\n }\n\n const requestResetPassword = async ({ data }: ResetPasswordRequestProps) => {\n\n const isOperator = Boolean(data.isOperator) // check if reset password for operator user or other users(account related)\n const accountId = data.accountId ?? \"\"\n const accountCode = data.accountCode ?? \"\"\n\n let validatedAccountId = ``\n\n // only non operator will check the account\n if (isOperator === false) {\n let acc = await validateAccount({ accountCode, accountId })\n validatedAccountId = acc.accountId\n }\n\n // get the onSetup from hook\n const hookSetup = ResetPasswordHook.onSetup()\n\n const codeType: OneTimeCodeType = hookSetup.oneTimeCodeType\n const resetPasswordMethod: ResetPasswordMethod = hookSetup.resetPasswordMethod\n const emailAddress = data?.emailAddress ?? \"\"\n const mobileNumber = data?.mobileNumber ?? \"\"\n\n let user: any = {}\n\n const oneTimeCodeService = OneTimeCodeService({\n ...rest,\n accountId: isOperator ? 0 : Number(validatedAccountId),\n isOperator,\n field_ref: \"user\",\n field_module: \"administrator\"\n })\n\n if (!resetPasswordMethod) {\n throw new Error(`Invalid reset password method: ${hookSetup?.resetPasswordMethod ?? \"\"}`);\n }\n\n if (resetPasswordMethod === \"email\") {\n if (validateFormatEmailAddress(emailAddress) === false) {\n throw new Error(`Invalid email address: ${emailAddress}`);\n }\n\n // get the user by email\n user = isOperator ?\n await getUserByEmailOperator(emailAddress)\n :\n await getUserByEmailNonOperator(validatedAccountId, emailAddress)\n\n }\n\n if (resetPasswordMethod === \"sms\" || resetPasswordMethod === \"whatapps\") {\n if (validateFormatMobileNumber(mobileNumber) === false) {\n throw new Error(`Invalid mobile number: ${mobileNumber}`);\n }\n\n // get the user by email\n user = isOperator ?\n await getUserByMobileOperator(mobileNumber)\n :\n await getUserByMobileNonOperator(validatedAccountId, mobileNumber)\n\n }\n\n if (emailAddress === \"\" && mobileNumber === \"\") {\n throw new Error(`Either email address or mobile number is required`);\n }\n\n // verify the user\n if (!user?.user_id) {\n throw new Error(`Cannot find the user by ${resetPasswordMethod}: ${emailAddress ? emailAddress : mobileNumber}`);\n }\n\n // verify the user active\n if (Boolean(user?.status) === false) {\n throw new Error(`User is invalid status: ${user?.user_id ?? 0}`);\n }\n\n const userId = Number(user?.user_id ?? 0)\n const userType = user?.user_type ?? \"\"\n\n const codePayload: OneTimeCodeCreateProps = {\n field_ref: \"user\",\n field_module: userType,\n data: {\n purposeType: \"reset_password\",\n codeType,\n emailAddress,\n mobileNumber,\n userId,\n userType\n }\n }\n\n // generate the code \n const oneTimeCode = await oneTimeCodeService.createOneTimeCode(codePayload)\n\n // console.log('oneTimeCode', oneTimeCode)\n\n let responseOneTimeCode = await oneTimeCodeService.getOneTimeCode({ id: Number(oneTimeCode?.one_time_code_id ?? 0), datatypes: [] })\n\n // Call the consumer hook, if registered\n if (ResetPasswordHook.onRequest) {\n\n const responseCustomHook = await ResetPasswordHook.onRequest(buildFeatureCallbackProps({\n defaultServiceProps: rest,\n callbackParams: {\n userId,\n userType,\n resetPasswordMethod,\n emailAddress,\n mobileNumber,\n oneTimeCode: oneTimeCode?.code ?? \"\",\n user\n }\n }))\n\n responseOneTimeCode = { ...responseOneTimeCode, custom: responseCustomHook }\n\n }\n\n return responseOneTimeCode\n }\n\n const validateResetPasscodeCode = async ({ data }: ResetPasswordValidateCodeProps) => {\n\n const isOperator = Boolean(data.isOperator) // check if reset password for operator user or other users(account related)\n const accountId = data.accountId ?? \"\"\n const accountCode = data.accountCode ?? \"\"\n\n let validatedAccountId = ``\n\n // only non operator will check the account\n if (isOperator === false) {\n let acc = await validateAccount({ accountCode, accountId })\n validatedAccountId = acc.accountId\n }\n\n const oneTimeCode = data.oneTimeCode ?? \"\"\n\n if (!oneTimeCode) {\n throw new Error(`Reset passcode code cannot be empty`);\n }\n\n const oneTimeCodeService = OneTimeCodeService({\n ...rest,\n accountId: isOperator ? 0 : Number(validatedAccountId),\n isOperator,\n field_ref: \"user\",\n field_module: \"administrator\"\n })\n\n // check code exist\n const { data: existOneTimeCodes } = await oneTimeCodeService.listOneTimeCodes({\n limit: 1,\n offset: 0,\n filters: [\n {\n field: `${ModelOneTimeCodeFields.code}`,\n operator: \"=\",\n value: `${oneTimeCode}`\n },\n {\n field: `${ModelOneTimeCodeFields.purpose_type}`,\n operator: \"=\",\n value: `${oneTimeCodePurposeTypes.reset_password}`\n },\n ],\n sortfield: `${ModelOneTimeCodeFields.one_time_code_id}`,\n sortorder: \"ASC\",\n datatypes: [],\n revealCode: true // return the code as well\n })\n\n if (existOneTimeCodes.length <= 0) {\n throw new Error(`Invalid reset password code: ${oneTimeCode}`);\n }\n\n const existOneTimeCode = existOneTimeCodes[0]\n\n // check is not used before\n if (existOneTimeCode?.code_status !== oneTimeCodeStatus.active) {\n throw new Error(`Reset password code is not active/used: ${oneTimeCode}`);\n }\n\n const expiresAt = dayjs(existOneTimeCode?.expires_at)\n const codeIsExpired = dayjs().isAfter(expiresAt)\n\n // check code is expired\n if (codeIsExpired) {\n throw new Error(`Reset password code is expired: ${oneTimeCode}`);\n }\n\n // console.log('existOneTimeCode', existOneTimeCode)\n\n return existOneTimeCode\n }\n\n const performResetPassword = async ({ data }: ResetPasswordPerformProps) => {\n\n const isOperator = Boolean(data.isOperator) // check if reset password for operator user or other users(account related)\n const accountId = data.accountId ?? \"\"\n const accountCode = data.accountCode ?? \"\"\n\n let validatedAccountId = ``\n let validatedAccountCode = ``\n\n // only non operator will check the account\n if (isOperator === false) {\n let acc = await validateAccount({ accountCode, accountId })\n validatedAccountId = acc.accountId\n validatedAccountCode = acc.accountCode\n }\n\n // get the onSetup from hook\n const hookSetup = ResetPasswordHook.onSetup()\n\n // const codeType: OneTimeCodeType = hookSetup.oneTimeCodeType\n const resetPasswordMethod: ResetPasswordMethod = hookSetup.resetPasswordMethod\n const oneTimeCode = data?.oneTimeCode ?? \"\"\n const newPassword = data?.newPassword ?? \"\"\n\n if (!oneTimeCode) {\n throw new Error(`One Time Code is required`);\n }\n\n if (!newPassword) {\n throw new Error(`New password is required`);\n }\n\n const oneTimeCodeService = OneTimeCodeService({\n ...rest,\n accountId: isOperator ? 0 : Number(validatedAccountId),\n isOperator,\n field_ref: \"user\",\n field_module: \"administrator\"\n })\n\n\n // validate the one time code\n const validateOneTimeCode = await validateResetPasscodeCode({\n data: {\n isOperator,\n accountCode: validatedAccountCode,\n accountId: `${validatedAccountId}`,\n oneTimeCode\n }\n })\n\n // retrieve the user by the one time code\n const oneTimeCodeUserId = validateOneTimeCode?.user_id ?? \"\"\n const oneTimeCodeUserType = validateOneTimeCode?.user_type ?? \"\"\n\n if (!oneTimeCodeUserId) {\n throw new Error(`Invalid one time code userId: ${oneTimeCode}`);\n }\n\n if (!oneTimeCodeUserType) {\n throw new Error(`Invalid one time code userId Type: ${oneTimeCode}`);\n }\n\n // retrive the user information\n const userService = UserService({\n ...rest,\n isOperator: true, // skip the account id\n accountId: Number(validatedAccountId),\n userType: oneTimeCodeUserType\n })\n\n const user = await userService.getUser({\n id: Number(oneTimeCodeUserId),\n datatypes: [],\n skipFilterUserType: true,\n })\n\n // verify the user\n if (!user?.user_id) {\n throw new Error(`Cannot find the userId: ${Number(oneTimeCodeUserId)}`);\n }\n\n // verify the user active\n if (Boolean(user?.status) === false) {\n throw new Error(`User is invalid status: ${user?.user_id ?? 0}`);\n }\n\n const userId = Number(user?.user_id ?? 0)\n const userType = user?.user_type ?? \"\"\n\n // consume the one time code\n let responseConsume = await oneTimeCodeService.consumeOneTimeCode({\n field_ref: \"user\",\n field_module: userType,\n data: {\n oneTimeCode,\n purposeType: \"reset_password\",\n userId,\n userType\n }\n })\n\n // change password for user\n let responseOnSuccess = await userService.replacePassword({\n id: userId,\n data: {\n unhashLoginPassword: newPassword\n },\n isOperator: Boolean(isOperator)\n })\n\n // Call the consumer hook, if registered\n if (ResetPasswordHook.onSuccess) {\n\n const responseCustomHook = await ResetPasswordHook.onSuccess(buildFeatureCallbackProps({\n defaultServiceProps: rest,\n callbackParams: {\n userId,\n userType,\n resetPasswordMethod,\n oneTimeCode,\n user\n }\n }))\n\n responseOnSuccess = { ...responseOnSuccess, custom: responseCustomHook }\n\n }\n\n return {\n ...responseOnSuccess,\n consumeOneTimeCode: responseConsume\n }\n }\n\n return {\n requestResetPassword,\n validateResetPasscodeCode,\n performResetPassword\n }\n\n}\n\n"]}
@@ -0,0 +1,109 @@
1
+ import { QueryList, QueryGet } from "../../schema/common";
2
+ import { DefaultServiceProps } from "../../utils";
3
+ import { InjectionFieldModuleRef } from "../../services";
4
+ export type SchedulerRequestModuleRef = InjectionFieldModuleRef;
5
+ export type SchedulerRequestServiceProps = DefaultServiceProps & {};
6
+ export type SchedulerRequestGetProps = Omit<QueryGet, "datatypes"> & {
7
+ id: number;
8
+ };
9
+ export type SchedulerRequestListProps = Omit<QueryList, "datatypes"> & {};
10
+ export type SchedulerRequestRemoveProps = {
11
+ schedulerRequestIds: BigInt[];
12
+ };
13
+ export type SchedulerRequest = {};
14
+ export type SchedulerRequestCreateProps = {
15
+ data: SchedulerRequest & {
16
+ fieldRef: SchedulerRequestModuleRef["field_ref"];
17
+ fieldModule: SchedulerRequestModuleRef["field_module"];
18
+ integrationId: string;
19
+ sourceEntityId: string;
20
+ sourceEntityLabel: string;
21
+ sourceEntityData: string | null;
22
+ requestAction: string;
23
+ };
24
+ };
25
+ export type SchedulerRequestExecuteProps = {
26
+ schedulerRequestId: number;
27
+ data: SchedulerRequest & {
28
+ destinationEntityId: string | null;
29
+ destinationEntityLabel: string | null;
30
+ attemptStatus: boolean;
31
+ attemptResult: string | null;
32
+ };
33
+ };
34
+ export declare const SchedulerRequestService: (props: SchedulerRequestServiceProps) => {
35
+ getSchedulerRequest: ({ id }: SchedulerRequestGetProps) => Promise<any>;
36
+ createSchedulerRequest: ({ data }: SchedulerRequestCreateProps) => Promise<{
37
+ createdatetime: Date | null;
38
+ createuserid: bigint;
39
+ updatedatetime: Date | null;
40
+ updateuserid: bigint;
41
+ isdelete: boolean | null;
42
+ istrash: boolean | null;
43
+ accountid: bigint;
44
+ field_ref: string;
45
+ field_module: string;
46
+ source_entity_id: string | null;
47
+ source_entity_label: string | null;
48
+ source_entity_data: string | null;
49
+ destination_entity_id: string | null;
50
+ destination_entity_label: string | null;
51
+ scheduler_request_id: bigint;
52
+ integration_id: string;
53
+ request_action: string;
54
+ attempt_no: bigint | null;
55
+ attempt_status: boolean;
56
+ attempt_result: string | null;
57
+ attempt_datetime: Date | null;
58
+ }>;
59
+ executeSchedulerRequest: ({ schedulerRequestId, data }: SchedulerRequestExecuteProps) => Promise<{
60
+ createdatetime: Date | null;
61
+ createuserid: bigint;
62
+ updatedatetime: Date | null;
63
+ updateuserid: bigint;
64
+ isdelete: boolean | null;
65
+ istrash: boolean | null;
66
+ accountid: bigint;
67
+ field_ref: string;
68
+ field_module: string;
69
+ source_entity_id: string | null;
70
+ source_entity_label: string | null;
71
+ source_entity_data: string | null;
72
+ destination_entity_id: string | null;
73
+ destination_entity_label: string | null;
74
+ scheduler_request_id: bigint;
75
+ integration_id: string;
76
+ request_action: string;
77
+ attempt_no: bigint | null;
78
+ attempt_status: boolean;
79
+ attempt_result: string | null;
80
+ attempt_datetime: Date | null;
81
+ }>;
82
+ removeSchedulerRequests: ({ schedulerRequestIds }: SchedulerRequestRemoveProps) => Promise<{
83
+ createdatetime: Date | null;
84
+ createuserid: bigint;
85
+ updatedatetime: Date | null;
86
+ updateuserid: bigint;
87
+ isdelete: boolean | null;
88
+ istrash: boolean | null;
89
+ accountid: bigint;
90
+ field_ref: string;
91
+ field_module: string;
92
+ source_entity_id: string | null;
93
+ source_entity_label: string | null;
94
+ source_entity_data: string | null;
95
+ destination_entity_id: string | null;
96
+ destination_entity_label: string | null;
97
+ scheduler_request_id: bigint;
98
+ integration_id: string;
99
+ request_action: string;
100
+ attempt_no: bigint | null;
101
+ attempt_status: boolean;
102
+ attempt_result: string | null;
103
+ attempt_datetime: Date | null;
104
+ }[]>;
105
+ listSchedulerRequests: ({ limit, offset, filters, sortfield, sortorder }: SchedulerRequestListProps) => Promise<{
106
+ data: any;
107
+ total: number;
108
+ }>;
109
+ };
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SchedulerRequestService = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const models_1 = require("../../models");
6
+ const utils_2 = require("../../utils");
7
+ const lib_1 = require("../../lib");
8
+ const lib_2 = require("../../lib");
9
+ const { relationKeys, sqlRelationMaps } = (0, lib_1.getSchedulerRequestSqlRelationMaps)();
10
+ const getCreatePayload = (data) => {
11
+ return {
12
+ [`${models_1.ModelSchedulerRequestFields.field_module}`]: data.fieldRef,
13
+ [`${models_1.ModelSchedulerRequestFields.field_ref}`]: data.fieldModule,
14
+ [`${models_1.ModelSchedulerRequestFields.integration_id}`]: data.integrationId,
15
+ [`${models_1.ModelSchedulerRequestFields.request_action}`]: data.requestAction,
16
+ [`${models_1.ModelSchedulerRequestFields.source_entity_id}`]: data.sourceEntityId,
17
+ [`${models_1.ModelSchedulerRequestFields.source_entity_label}`]: data.sourceEntityLabel,
18
+ [`${models_1.ModelSchedulerRequestFields.source_entity_data}`]: data.sourceEntityData,
19
+ };
20
+ };
21
+ const getExecutePayload = (data) => {
22
+ return {
23
+ [`${models_1.ModelSchedulerRequestFields.attempt_datetime}`]: (0, utils_2.getCurrentDateTimeISO)(),
24
+ // [`${ModelSchedulerRequestFields.attempt_no}`]: `${ModelSchedulerRequestFields.attempt_no} + 1`,
25
+ [`${models_1.ModelSchedulerRequestFields.attempt_result}`]: data.attemptResult,
26
+ [`${models_1.ModelSchedulerRequestFields.attempt_status}`]: data.attemptStatus,
27
+ [`${models_1.ModelSchedulerRequestFields.destination_entity_id}`]: data.destinationEntityId,
28
+ [`${models_1.ModelSchedulerRequestFields.destination_entity_label}`]: data.destinationEntityLabel,
29
+ };
30
+ };
31
+ let mainSqlSelect = (0, lib_2.buildSchedulerRequestMainSqlSelect)();
32
+ let defaultSqlSelect = (0, lib_2.buildSchedulerRequestDefaultSqlSelect)();
33
+ const SchedulerRequestService = (props) => {
34
+ const { ...rest } = props;
35
+ const schedulerLogModel = (0, models_1.SchedulerRequestModel)({ ...rest });
36
+ const createSchedulerRequest = async ({ data }) => {
37
+ const _data = getCreatePayload(data);
38
+ if (!_data) {
39
+ throw new Error(`Invalid create scheduler request payload: ${JSON.stringify(_data)}`);
40
+ }
41
+ let response = await schedulerLogModel.create({ data: _data });
42
+ return response;
43
+ };
44
+ const executeSchedulerRequest = async ({ schedulerRequestId, data }) => {
45
+ const _data = getExecutePayload(data);
46
+ if (!_data) {
47
+ throw new Error(`Invalid execute scheduler request payload: ${JSON.stringify(_data)}`);
48
+ }
49
+ let response = await schedulerLogModel.update({
50
+ id: schedulerRequestId,
51
+ data: {
52
+ ..._data,
53
+ [`${models_1.ModelSchedulerRequestFields.attempt_no}`]: {
54
+ increment: 1
55
+ }
56
+ }
57
+ });
58
+ return response;
59
+ };
60
+ const getSchedulerRequest = async ({ id }) => {
61
+ let { data } = await listSchedulerRequests({
62
+ limit: 1,
63
+ offset: 0,
64
+ filters: [{ field: `${models_1.ModelSchedulerRequestFields.scheduler_request_id}`, operator: "=", value: id }],
65
+ sortfield: `${models_1.ModelSchedulerRequestFields.scheduler_request_id}`,
66
+ sortorder: "ASC",
67
+ });
68
+ return data[0] ?? null;
69
+ };
70
+ const listSchedulerRequests = async ({ limit, offset, filters = [], sortfield, sortorder }) => {
71
+ let sqlSelect = [
72
+ (0, lib_1.buildSqlSelect)(``, mainSqlSelect),
73
+ (0, lib_1.buildSqlSelect)(``, defaultSqlSelect)
74
+ ];
75
+ let sqlRelation = [
76
+ (0, lib_1.buildSqlRelation)("left", "sreq", "users", "creator", ["sreq.createuserid = creator.user_id", "creator.isdelete = false", "creator.istrash = false"]),
77
+ (0, lib_1.buildSqlRelation)("left", "sreq", "users", "updater", ["sreq.updateuserid = updater.user_id", "updater.isdelete = false", "updater.istrash = false"])
78
+ ];
79
+ let sqlGroupBy = [
80
+ ...Object.keys(mainSqlSelect),
81
+ ...Object.keys(defaultSqlSelect)
82
+ ];
83
+ let filterColumns = {
84
+ ...mainSqlSelect,
85
+ ...defaultSqlSelect
86
+ };
87
+ let sqlWhere = [
88
+ `sreq.isdelete = false`,
89
+ `sreq.istrash = false`,
90
+ ...(filters.length ? [(0, lib_1.buildSqlWhere)(filters, filterColumns)?.where] : []),
91
+ ];
92
+ let sqlOrderby = (0, lib_1.buildSqlOrderBy)(sortfield, sortorder);
93
+ let sqlLimitOffset = (0, lib_1.buildSqlLimitOffset)(limit, offset);
94
+ // get the listing data & count
95
+ const { data, total } = await (0, lib_1.getListWithCount)({
96
+ model: schedulerLogModel,
97
+ tableName: "scheduler_requests",
98
+ mainAlias: "sreq",
99
+ countKey: `${models_1.ModelSchedulerRequestFields.scheduler_request_id}`,
100
+ accountId: rest.accountId,
101
+ sqlRelationMaps,
102
+ filters,
103
+ filterColumns,
104
+ sqlSelect,
105
+ sqlSelectAgg: [],
106
+ sqlRelation,
107
+ sqlRelationAgg: [],
108
+ sqlWhere,
109
+ sqlGroupBy,
110
+ sqlOrderby,
111
+ sqlLimitOffset
112
+ });
113
+ const response = {
114
+ data,
115
+ total
116
+ };
117
+ return response;
118
+ };
119
+ const removeSchedulerRequests = async ({ schedulerRequestIds }) => {
120
+ if (!schedulerRequestIds.length)
121
+ (0, utils_1.throwError)('schedulerRequestIds is required');
122
+ const response = await schedulerLogModel.remove({
123
+ where: {
124
+ [`${models_1.ModelSchedulerRequestFields.scheduler_request_id}`]: {
125
+ in: schedulerRequestIds
126
+ },
127
+ [`${models_1.ModelSchedulerRequestFields.attempt_status}`]: false
128
+ }
129
+ });
130
+ return response;
131
+ };
132
+ return {
133
+ getSchedulerRequest,
134
+ createSchedulerRequest,
135
+ executeSchedulerRequest,
136
+ removeSchedulerRequests,
137
+ listSchedulerRequests
138
+ };
139
+ };
140
+ exports.SchedulerRequestService = SchedulerRequestService;
141
+ //# sourceMappingURL=SchedulerRequestService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchedulerRequestService.js","sourceRoot":"","sources":["../../../src/services/scheduler/SchedulerRequestService.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAE/C,qCAGkB;AAIlB,mCAAqE;AAIrE,+BAAoK;AAEpK,+BAGe;AA4Cf,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,IAAA,wCAAkC,GAAE,CAAA;AAE9E,MAAM,gBAAgB,GAAG,CAAC,IAAyC,EAAE,EAAE;IAEnE,OAAO;QACH,CAAC,GAAG,oCAA2B,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ;QAC9D,CAAC,GAAG,oCAA2B,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW;QAE9D,CAAC,GAAG,oCAA2B,CAAC,cAAc,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa;QACrE,CAAC,GAAG,oCAA2B,CAAC,cAAc,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa;QAErE,CAAC,GAAG,oCAA2B,CAAC,gBAAgB,EAAE,CAAC,EAAE,IAAI,CAAC,cAAc;QACxE,CAAC,GAAG,oCAA2B,CAAC,mBAAmB,EAAE,CAAC,EAAE,IAAI,CAAC,iBAAiB;QAC9E,CAAC,GAAG,oCAA2B,CAAC,kBAAkB,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB;KAC/E,CAAA;AAEL,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,IAA0C,EAAE,EAAE;IAErE,OAAO;QACH,CAAC,GAAG,oCAA2B,CAAC,gBAAgB,EAAE,CAAC,EAAE,IAAA,6BAAqB,GAAE;QAC5E,kGAAkG;QAClG,CAAC,GAAG,oCAA2B,CAAC,cAAc,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa;QACrE,CAAC,GAAG,oCAA2B,CAAC,cAAc,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa;QACrE,CAAC,GAAG,oCAA2B,CAAC,qBAAqB,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB;QAClF,CAAC,GAAG,oCAA2B,CAAC,wBAAwB,EAAE,CAAC,EAAE,IAAI,CAAC,sBAAsB;KAC3F,CAAA;AAEL,CAAC,CAAA;AAED,IAAI,aAAa,GAAG,IAAA,wCAAkC,GAAE,CAAA;AACxD,IAAI,gBAAgB,GAAG,IAAA,2CAAqC,GAAE,CAAA;AAEvD,MAAM,uBAAuB,GAAG,CAAC,KAAmC,EAAE,EAAE;IAE3E,MAAM,EACF,GAAG,IAAI,EACV,GAAG,KAAK,CAAA;IAET,MAAM,iBAAiB,GAAG,IAAA,8BAAqB,EAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAE5D,MAAM,sBAAsB,GAAG,KAAK,EAAE,EAAE,IAAI,EAA+B,EAAE,EAAE;QAE3E,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,6CAA6C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAE9D,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,uBAAuB,GAAG,KAAK,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAgC,EAAE,EAAE;QAEjG,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAErC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;QAED,IAAI,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC;YAC1C,EAAE,EAAE,kBAAkB;YACtB,IAAI,EAAE;gBACF,GAAG,KAAK;gBACR,CAAC,GAAG,oCAA2B,CAAC,UAAU,EAAE,CAAC,EAAE;oBAC3C,SAAS,EAAE,CAAC;iBACf;aACJ;SACJ,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,mBAAmB,GAAG,KAAK,EAAE,EAAE,EAAE,EAA4B,EAAE,EAAE;QAEnE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,qBAAqB,CAAC;YACvC,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,oCAA2B,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACrG,SAAS,EAAE,GAAG,oCAA2B,CAAC,oBAAoB,EAAE;YAChE,SAAS,EAAE,KAAK;SACnB,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAE3B,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAA6B,EAAE,EAAE;QAErH,IAAI,SAAS,GAAG;YACZ,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,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,qCAAqC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;YACpJ,IAAA,sBAAgB,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,qCAAqC,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;SACvJ,CAAA;QAED,IAAI,UAAU,GAAa;YACvB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAC7B,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;SACnC,CAAA;QAED,IAAI,aAAa,GAAG;YAChB,GAAG,aAAa;YAChB,GAAG,gBAAgB;SACtB,CAAA;QAED,IAAI,QAAQ,GAAG;YACX,uBAAuB;YACvB,sBAAsB;YACtB,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,+BAA+B;QAC/B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,sBAAgB,EAAC;YAC3C,KAAK,EAAE,iBAAiB;YACxB,SAAS,EAAE,oBAAoB;YAC/B,SAAS,EAAE,MAAM;YACjB,QAAQ,EAAE,GAAG,oCAA2B,CAAC,oBAAoB,EAAE;YAC/D,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,eAAe;YACf,OAAO;YACP,aAAa;YACb,SAAS;YACT,YAAY,EAAE,EAAE;YAChB,WAAW;YACX,cAAc,EAAE,EAAE;YAClB,QAAQ;YACR,UAAU;YACV,UAAU;YACV,cAAc;SACjB,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG;YACb,IAAI;YACJ,KAAK;SACR,CAAA;QAED,OAAO,QAAQ,CAAA;IAEnB,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,KAAK,EAAE,EAAE,mBAAmB,EAA+B,EAAE,EAAE;QAE3F,IAAI,CAAC,mBAAmB,CAAC,MAAM;YAAE,IAAA,kBAAU,EAAC,iCAAiC,CAAC,CAAC;QAE/E,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC;YAC5C,KAAK,EAAE;gBACH,CAAC,GAAG,oCAA2B,CAAC,oBAAoB,EAAE,CAAC,EAAE;oBACrD,EAAE,EAAE,mBAAmB;iBAC1B;gBACD,CAAC,GAAG,oCAA2B,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK;aAC3D;SACJ,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAA;IACnB,CAAC,CAAC;IAEF,OAAO;QACH,mBAAmB;QACnB,sBAAsB;QACtB,uBAAuB;QACvB,uBAAuB;QACvB,qBAAqB;KACxB,CAAA;AAEL,CAAC,CAAA;AA5IY,QAAA,uBAAuB,2BA4InC","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n SchedulerRequestModel,\n ModelSchedulerRequestFields\n} from \"@/models\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps, getCurrentDateTimeISO } from \"@/utils\";\n\nimport { InjectionFieldModuleRef } from \"@/services\"\n\nimport { getSchedulerRequestSqlRelationMaps, buildSqlRelation, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, getListWithCount } from \"@/lib\";\n\nimport {\n buildSchedulerRequestDefaultSqlSelect,\n buildSchedulerRequestMainSqlSelect\n} from \"@/lib\";\n\nexport type SchedulerRequestModuleRef = InjectionFieldModuleRef\n\nexport type SchedulerRequestServiceProps = DefaultServiceProps & {};\n\nexport type SchedulerRequestGetProps = Omit<QueryGet, \"datatypes\"> & {\n id: number,\n};\n\nexport type SchedulerRequestListProps = Omit<QueryList, \"datatypes\"> & {\n};\n\nexport type SchedulerRequestRemoveProps = {\n schedulerRequestIds: BigInt[]\n};\n\nexport type SchedulerRequest = {\n\n}\n\nexport type SchedulerRequestCreateProps = {\n data: SchedulerRequest & {\n fieldRef: SchedulerRequestModuleRef[\"field_ref\"],\n fieldModule: SchedulerRequestModuleRef[\"field_module\"],\n integrationId: string;\n sourceEntityId: string;\n sourceEntityLabel: string;\n sourceEntityData: string | null;\n requestAction: string;\n\n }\n}\n\nexport type SchedulerRequestExecuteProps = {\n schedulerRequestId: number,\n data: SchedulerRequest & {\n destinationEntityId: string | null;\n destinationEntityLabel: string | null;\n attemptStatus: boolean;\n attemptResult: string | null;\n }\n}\n\nconst { relationKeys, sqlRelationMaps } = getSchedulerRequestSqlRelationMaps()\n\nconst getCreatePayload = (data: SchedulerRequestCreateProps[\"data\"]) => {\n\n return {\n [`${ModelSchedulerRequestFields.field_module}`]: data.fieldRef,\n [`${ModelSchedulerRequestFields.field_ref}`]: data.fieldModule,\n\n [`${ModelSchedulerRequestFields.integration_id}`]: data.integrationId,\n [`${ModelSchedulerRequestFields.request_action}`]: data.requestAction,\n\n [`${ModelSchedulerRequestFields.source_entity_id}`]: data.sourceEntityId,\n [`${ModelSchedulerRequestFields.source_entity_label}`]: data.sourceEntityLabel,\n [`${ModelSchedulerRequestFields.source_entity_data}`]: data.sourceEntityData,\n }\n\n}\n\nconst getExecutePayload = (data: SchedulerRequestExecuteProps[\"data\"]) => {\n\n return {\n [`${ModelSchedulerRequestFields.attempt_datetime}`]: getCurrentDateTimeISO(),\n // [`${ModelSchedulerRequestFields.attempt_no}`]: `${ModelSchedulerRequestFields.attempt_no} + 1`,\n [`${ModelSchedulerRequestFields.attempt_result}`]: data.attemptResult,\n [`${ModelSchedulerRequestFields.attempt_status}`]: data.attemptStatus,\n [`${ModelSchedulerRequestFields.destination_entity_id}`]: data.destinationEntityId,\n [`${ModelSchedulerRequestFields.destination_entity_label}`]: data.destinationEntityLabel,\n }\n\n}\n\nlet mainSqlSelect = buildSchedulerRequestMainSqlSelect()\nlet defaultSqlSelect = buildSchedulerRequestDefaultSqlSelect()\n\nexport const SchedulerRequestService = (props: SchedulerRequestServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const schedulerLogModel = SchedulerRequestModel({ ...rest })\n\n const createSchedulerRequest = async ({ data }: SchedulerRequestCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create scheduler request payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await schedulerLogModel.create({ data: _data })\n\n return response\n }\n\n const executeSchedulerRequest = async ({ schedulerRequestId, data }: SchedulerRequestExecuteProps) => {\n\n const _data = getExecutePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid execute scheduler request payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await schedulerLogModel.update({\n id: schedulerRequestId,\n data: {\n ..._data,\n [`${ModelSchedulerRequestFields.attempt_no}`]: {\n increment: 1\n }\n }\n })\n\n return response\n }\n\n const getSchedulerRequest = async ({ id }: SchedulerRequestGetProps) => {\n\n let { data } = await listSchedulerRequests({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelSchedulerRequestFields.scheduler_request_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelSchedulerRequestFields.scheduler_request_id}`,\n sortorder: \"ASC\",\n })\n\n return data[0] ?? null;\n\n };\n\n const listSchedulerRequests = async ({ limit, offset, filters = [], sortfield, sortorder }: SchedulerRequestListProps) => {\n\n let sqlSelect = [\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"sreq\", \"users\", \"creator\", [\"sreq.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"sreq\", \"users\", \"updater\", [\"sreq.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...defaultSqlSelect\n }\n\n let sqlWhere = [\n `sreq.isdelete = false`,\n `sreq.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 // get the listing data & count\n const { data, total } = await getListWithCount({\n model: schedulerLogModel,\n tableName: \"scheduler_requests\",\n mainAlias: \"sreq\",\n countKey: `${ModelSchedulerRequestFields.scheduler_request_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 removeSchedulerRequests = async ({ schedulerRequestIds }: SchedulerRequestRemoveProps) => {\n\n if (!schedulerRequestIds.length) throwError('schedulerRequestIds is required');\n\n const response = await schedulerLogModel.remove({\n where: {\n [`${ModelSchedulerRequestFields.scheduler_request_id}`]: {\n in: schedulerRequestIds\n },\n [`${ModelSchedulerRequestFields.attempt_status}`]: false\n }\n });\n\n return response\n };\n\n return {\n getSchedulerRequest,\n createSchedulerRequest,\n executeSchedulerRequest,\n removeSchedulerRequests,\n listSchedulerRequests\n }\n\n}\n\n"]}
@@ -6,6 +6,7 @@ const utils_1 = require("../../utils");
6
6
  const lib_1 = require("../../lib");
7
7
  const services_1 = require("../../services");
8
8
  const features_1 = require("../../features");
9
+ const utils_2 = require("../../utils");
9
10
  exports.userTypes = {
10
11
  operator: "operator",
11
12
  administrator: "administrator",
@@ -50,7 +51,18 @@ const UserMeService = (props) => {
50
51
  const userModel = (0, models_1.UserModel)({ ...rest });
51
52
  const getUserMe = async () => {
52
53
  const id = userId;
53
- const data = await userService.getUser({ id: userId, datatypes: [] });
54
+ let data = await userService.getUser({ id: userId, datatypes: [] });
55
+ // Call the consumer hook, if registered
56
+ if (features_1.UserMeHook?.onRequestGetMe) {
57
+ let customData = await features_1.UserMeHook.onRequestGetMe((0, utils_2.buildFeatureCallbackProps)({
58
+ defaultServiceProps: rest,
59
+ callbackParams: {
60
+ userMe: data
61
+ }
62
+ }));
63
+ if (customData)
64
+ data = customData;
65
+ }
54
66
  return data;
55
67
  };
56
68
  const updateUserMe = async ({ firstName = "", lastName = "", address = "" }) => {
@@ -60,6 +72,15 @@ const UserMeService = (props) => {
60
72
  if (!user?.user_id) {
61
73
  (0, utils_1.throwError)(`Invalid user id in auth token`);
62
74
  }
75
+ // Call the consumer hook, if registered
76
+ if (features_1.UserMeHook?.onRequestUpdateMe) {
77
+ await features_1.UserMeHook.onRequestUpdateMe((0, utils_2.buildFeatureCallbackProps)({
78
+ defaultServiceProps: rest,
79
+ callbackParams: {
80
+ userMe: user
81
+ }
82
+ }));
83
+ }
63
84
  // change user information
64
85
  await userModel.update({
65
86
  id: Number(userId),
@@ -71,13 +92,13 @@ const UserMeService = (props) => {
71
92
  });
72
93
  const userMe = await userService.getUser({ id: Number(userId), datatypes: [] });
73
94
  // Call the consumer hook, if success
74
- if (features_1.UserMeHook.onSuccessUpdateMe) {
75
- await features_1.UserMeHook.onSuccessUpdateMe({
95
+ if (features_1.UserMeHook?.onSuccessUpdateMe) {
96
+ await features_1.UserMeHook.onSuccessUpdateMe((0, utils_2.buildFeatureCallbackProps)({
76
97
  defaultServiceProps: rest,
77
98
  callbackParams: {
78
99
  userMe
79
100
  }
80
- });
101
+ }));
81
102
  }
82
103
  return userMe;
83
104
  };
@@ -85,13 +106,13 @@ const UserMeService = (props) => {
85
106
  const currentMe = await userService.getUser({ id: Number(userId), datatypes: [] });
86
107
  const response = await userService.suspendUsers({ ids: [BigInt(userId)] });
87
108
  // Call the consumer hook, if remove
88
- if (features_1.UserMeHook.onSuccessRemoveMe) {
89
- await features_1.UserMeHook.onSuccessRemoveMe({
109
+ if (features_1.UserMeHook?.onSuccessRemoveMe) {
110
+ await features_1.UserMeHook.onSuccessRemoveMe((0, utils_2.buildFeatureCallbackProps)({
90
111
  defaultServiceProps: rest,
91
112
  callbackParams: {
92
113
  userMe: currentMe
93
114
  }
94
- });
115
+ }));
95
116
  }
96
117
  return response;
97
118
  };
@@ -139,7 +160,7 @@ const UserMeService = (props) => {
139
160
  isOperator: Boolean(userType === "operator")
140
161
  });
141
162
  // Call the consumer hook, if change password
142
- if (features_1.UserMeHook.onSuccessChangePasswordMe) {
163
+ if (features_1.UserMeHook?.onSuccessChangePasswordMe) {
143
164
  // remove the password
144
165
  delete user.password;
145
166
  await features_1.UserMeHook.onSuccessChangePasswordMe({
@@ -1 +1 @@
1
- {"version":3,"file":"UserMeService.js","sourceRoot":"","sources":["../../../src/services/user/UserMeService.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n UserModel,\n ModelUserFields\n} from \"@/models\";\n\nimport { verifyPassword, validateLoginPasswordFormat, DefaultServiceProps, throwError } from \"@/utils\";\n\nimport { ServiceFactory } from \"@/lib\";\n\nimport { UserService, AccountService } from \"@/services\";\n\nimport { UserMeHook, FeatureUserMeSuccessUpdateProps, FeatureUserMeSuccessChangePasswordProps, FeatureUserMeSuccessRemoveProps } from \"@/features\"\n\nexport const userTypes = {\n operator: \"operator\",\n administrator: \"administrator\",\n worker: \"worker\",\n supplier: \"supplier\",\n customer: \"customer\",\n driver: \"driver\",\n retailer: \"retailer\",\n member: \"member\",\n agent: \"agent\",\n} as const\n\nexport type UserType = typeof userTypes[keyof typeof userTypes]\n\nexport type UserMeServiceProps = DefaultServiceProps & {\n // userType: UserType\n};\n\nexport type UserMeChangePasswordProps = {\n currentPassword: string\n newPassword: string\n confirmPassword: string\n};\n\nexport type UserMeUpdateProps = {\n firstName: string\n lastName: string\n address: string\n};\n\n// const getUpdatePayload = async (\n// userType: UserType,\n// data: UserMeUpdateProps[\"data\"],\n// contact: {\n// countryCode: number,\n// phoneNumber: string\n// }\n// ) => {\n\n// if (\"user\" in data) {\n\n// const newHashPassword = data?.user?.loginPassword ? await hashPassword(data.user.loginPassword) : \"\"\n\n// return {\n// [`${ModelUserFields.login_username}`]: data.user.loginUsername,\n// ...(newHashPassword ? { [`${ModelUserFields.login_password}`]: newHashPassword } : {}),\n// [`${ModelUserFields.address}`]: data.user.address,\n// [`${ModelUserFields.contact_country_code}`]: contact.countryCode,\n// [`${ModelUserFields.contact_phone_number}`]: contact.phoneNumber,\n// [`${ModelUserFields.email}`]: data.user.email,\n// [`${ModelUserFields.firstname}`]: data.user.firstname,\n// [`${ModelUserFields.lastname}`]: data.user.lastname,\n// [`${ModelUserFields.status}`]: Boolean(data.user.status),\n// [`${ModelUserFields.user_type}`]: `${userType}`\n// }\n// }\n\n// return false\n\n// }\n\nexport const UserMeService = (props: UserMeServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const userType = rest.actionUserType as UserType\n const userId = rest.actionUserId\n\n const userService = UserService({ ...rest, userType })\n const userModel = UserModel({ ...rest })\n\n const getUserMe = async () => {\n\n const id = userId\n\n const data = await userService.getUser({ id: userId, datatypes: [] })\n\n return data\n };\n\n const updateUserMe = async ({\n firstName = \"\",\n lastName = \"\",\n address = \"\"\n }: UserMeUpdateProps) => {\n\n const user = await userService.getUser({ id: Number(userId), datatypes: [] })\n\n // console.log('user', user)\n\n // check the userId is valid\n if (!user?.user_id) {\n throwError(`Invalid user id in auth token`)\n }\n\n // change user information\n await userModel.update({\n id: Number(userId),\n data: {\n [`${ModelUserFields.firstname}`]: firstName,\n [`${ModelUserFields.lastname}`]: lastName,\n [`${ModelUserFields.address}`]: address,\n }\n })\n\n const userMe = await userService.getUser({ id: Number(userId), datatypes: [] })\n\n // Call the consumer hook, if success\n if (UserMeHook.onSuccessUpdateMe) {\n await UserMeHook.onSuccessUpdateMe({\n defaultServiceProps: rest,\n callbackParams: {\n userMe\n }\n })\n }\n\n return userMe\n\n }\n\n const removeUserMe = async () => {\n\n const currentMe = await userService.getUser({ id: Number(userId), datatypes: [] })\n\n const response = await userService.suspendUsers({ ids: [BigInt(userId)] })\n\n // Call the consumer hook, if remove\n if (UserMeHook.onSuccessRemoveMe) {\n await UserMeHook.onSuccessRemoveMe({\n defaultServiceProps: rest,\n callbackParams: {\n userMe: currentMe\n }\n })\n }\n\n return response\n };\n\n const changePasswordUserMe = async ({\n currentPassword,\n confirmPassword,\n newPassword\n }: UserMeChangePasswordProps) => {\n\n const accountId = rest?.accountId ?? 0\n const accountService = AccountService({ ...rest, isOperator: true })\n\n const user = await userService.getUser({ id: Number(userId), datatypes: [], includePassword: true })\n const account = await accountService.getAccount({ id: Number(accountId), datatypes: [] })\n\n // console.log('user', user)\n // console.log('account', account)\n\n // check the accountId / userId is valid\n if (!user?.user_id) {\n throwError(`Invalid user id in auth token`)\n }\n\n if (Object.keys(account).length <= 0) { // must have account id record\n throwError(`Invalid account id in auth token`)\n }\n\n // new password cannot same with current password\n if (newPassword === currentPassword) {\n throwError(`New and current password cannot be same`)\n }\n\n // new password must same with confirm\n if (newPassword !== confirmPassword) {\n throwError(`New and confirm password not matched`)\n }\n\n // validate the login password new format\n validateLoginPasswordFormat(newPassword);\n\n // check the current password\n try {\n const decryptedPass = await verifyPassword(currentPassword, user?.password)\n // console.log('decryptedPass', decryptedPass)\n\n if (!decryptedPass) {\n throw Error(`Invalid current password`)\n }\n\n } catch (error: any) {\n throwError(`Auth Token: ${error?.message}`)\n }\n\n // perform update credential\n const responseUser = await userService.replacePassword({\n id: Number(userId),\n data: {\n unhashLoginPassword: newPassword\n },\n isOperator: Boolean(userType === \"operator\")\n })\n\n // Call the consumer hook, if change password\n if (UserMeHook.onSuccessChangePasswordMe) {\n\n // remove the password\n delete user.password\n\n await UserMeHook.onSuccessChangePasswordMe({\n defaultServiceProps: rest,\n callbackParams: {\n userMe: user\n }\n })\n }\n\n return responseUser\n\n }\n\n const allowUserTypes = [\"any\"] as const\n\n const methodConfigs = {\n getUserMe: { fn: getUserMe, allowUserTypes, actionName: \"get user/me\" },\n updateUserMe: { fn: updateUserMe, allowUserTypes, actionName: \"update user/me\" },\n changePasswordUserMe: { fn: changePasswordUserMe, allowUserTypes, actionName: \"change password user/me\" },\n removeUserMe: { fn: removeUserMe, allowUserTypes, actionName: \"remove user/me\" },\n };\n\n return ServiceFactory(\"UserMeService\", rest, methodConfigs);\n\n}\n\n"]}
1
+ {"version":3,"file":"UserMeService.js","sourceRoot":"","sources":["../../../src/services/user/UserMeService.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n UserModel,\n ModelUserFields\n} from \"@/models\";\n\nimport { verifyPassword, validateLoginPasswordFormat, DefaultServiceProps, throwError } from \"@/utils\";\n\nimport { ServiceFactory } from \"@/lib\";\n\nimport { UserService, AccountService } from \"@/services\";\n\nimport { UserMeHook, FeatureUserMeSuccessUpdateProps, FeatureUserMeSuccessChangePasswordProps, FeatureUserMeSuccessRemoveProps } from \"@/features\"\n\nimport { buildFeatureCallbackProps } from \"@/utils\"\n\nexport const userTypes = {\n operator: \"operator\",\n administrator: \"administrator\",\n worker: \"worker\",\n supplier: \"supplier\",\n customer: \"customer\",\n driver: \"driver\",\n retailer: \"retailer\",\n member: \"member\",\n agent: \"agent\",\n} as const\n\nexport type UserType = typeof userTypes[keyof typeof userTypes]\n\nexport type UserMeServiceProps = DefaultServiceProps & {\n // userType: UserType\n};\n\nexport type UserMeChangePasswordProps = {\n currentPassword: string\n newPassword: string\n confirmPassword: string\n};\n\nexport type UserMeUpdateProps = {\n firstName: string\n lastName: string\n address: string\n};\n\n// const getUpdatePayload = async (\n// userType: UserType,\n// data: UserMeUpdateProps[\"data\"],\n// contact: {\n// countryCode: number,\n// phoneNumber: string\n// }\n// ) => {\n\n// if (\"user\" in data) {\n\n// const newHashPassword = data?.user?.loginPassword ? await hashPassword(data.user.loginPassword) : \"\"\n\n// return {\n// [`${ModelUserFields.login_username}`]: data.user.loginUsername,\n// ...(newHashPassword ? { [`${ModelUserFields.login_password}`]: newHashPassword } : {}),\n// [`${ModelUserFields.address}`]: data.user.address,\n// [`${ModelUserFields.contact_country_code}`]: contact.countryCode,\n// [`${ModelUserFields.contact_phone_number}`]: contact.phoneNumber,\n// [`${ModelUserFields.email}`]: data.user.email,\n// [`${ModelUserFields.firstname}`]: data.user.firstname,\n// [`${ModelUserFields.lastname}`]: data.user.lastname,\n// [`${ModelUserFields.status}`]: Boolean(data.user.status),\n// [`${ModelUserFields.user_type}`]: `${userType}`\n// }\n// }\n\n// return false\n\n// }\n\nexport const UserMeService = (props: UserMeServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const userType = rest.actionUserType as UserType\n const userId = rest.actionUserId\n\n const userService = UserService({ ...rest, userType })\n const userModel = UserModel({ ...rest })\n\n const getUserMe = async () => {\n\n const id = userId\n\n let data = await userService.getUser({ id: userId, datatypes: [] })\n\n // Call the consumer hook, if registered\n if (UserMeHook?.onRequestGetMe) {\n let customData = await UserMeHook.onRequestGetMe(buildFeatureCallbackProps({\n defaultServiceProps: rest,\n callbackParams: {\n userMe: data\n }\n }))\n if (customData) data = customData\n }\n\n return data\n };\n\n const updateUserMe = async ({\n firstName = \"\",\n lastName = \"\",\n address = \"\"\n }: UserMeUpdateProps) => {\n\n const user = await userService.getUser({ id: Number(userId), datatypes: [] })\n\n // console.log('user', user)\n\n // check the userId is valid\n if (!user?.user_id) {\n throwError(`Invalid user id in auth token`)\n }\n\n // Call the consumer hook, if registered\n if (UserMeHook?.onRequestUpdateMe) {\n await UserMeHook.onRequestUpdateMe(buildFeatureCallbackProps({\n defaultServiceProps: rest,\n callbackParams: {\n userMe: user\n }\n }))\n }\n\n // change user information\n await userModel.update({\n id: Number(userId),\n data: {\n [`${ModelUserFields.firstname}`]: firstName,\n [`${ModelUserFields.lastname}`]: lastName,\n [`${ModelUserFields.address}`]: address,\n }\n })\n\n const userMe = await userService.getUser({ id: Number(userId), datatypes: [] })\n\n // Call the consumer hook, if success\n if (UserMeHook?.onSuccessUpdateMe) {\n await UserMeHook.onSuccessUpdateMe(buildFeatureCallbackProps({\n defaultServiceProps: rest,\n callbackParams: {\n userMe\n }\n }))\n }\n\n return userMe\n\n }\n\n const removeUserMe = async () => {\n\n const currentMe = await userService.getUser({ id: Number(userId), datatypes: [] })\n\n const response = await userService.suspendUsers({ ids: [BigInt(userId)] })\n\n // Call the consumer hook, if remove\n if (UserMeHook?.onSuccessRemoveMe) {\n await UserMeHook.onSuccessRemoveMe(buildFeatureCallbackProps({\n defaultServiceProps: rest,\n callbackParams: {\n userMe: currentMe\n }\n }))\n }\n\n return response\n };\n\n const changePasswordUserMe = async ({\n currentPassword,\n confirmPassword,\n newPassword\n }: UserMeChangePasswordProps) => {\n\n const accountId = rest?.accountId ?? 0\n const accountService = AccountService({ ...rest, isOperator: true })\n\n const user = await userService.getUser({ id: Number(userId), datatypes: [], includePassword: true })\n const account = await accountService.getAccount({ id: Number(accountId), datatypes: [] })\n\n // console.log('user', user)\n // console.log('account', account)\n\n // check the accountId / userId is valid\n if (!user?.user_id) {\n throwError(`Invalid user id in auth token`)\n }\n\n if (Object.keys(account).length <= 0) { // must have account id record\n throwError(`Invalid account id in auth token`)\n }\n\n // new password cannot same with current password\n if (newPassword === currentPassword) {\n throwError(`New and current password cannot be same`)\n }\n\n // new password must same with confirm\n if (newPassword !== confirmPassword) {\n throwError(`New and confirm password not matched`)\n }\n\n // validate the login password new format\n validateLoginPasswordFormat(newPassword);\n\n // check the current password\n try {\n const decryptedPass = await verifyPassword(currentPassword, user?.password)\n // console.log('decryptedPass', decryptedPass)\n\n if (!decryptedPass) {\n throw Error(`Invalid current password`)\n }\n\n } catch (error: any) {\n throwError(`Auth Token: ${error?.message}`)\n }\n\n // perform update credential\n const responseUser = await userService.replacePassword({\n id: Number(userId),\n data: {\n unhashLoginPassword: newPassword\n },\n isOperator: Boolean(userType === \"operator\")\n })\n\n // Call the consumer hook, if change password\n if (UserMeHook?.onSuccessChangePasswordMe) {\n\n // remove the password\n delete user.password\n\n await UserMeHook.onSuccessChangePasswordMe({\n defaultServiceProps: rest,\n callbackParams: {\n userMe: user\n }\n })\n }\n\n return responseUser\n\n }\n\n const allowUserTypes = [\"any\"] as const\n\n const methodConfigs = {\n getUserMe: { fn: getUserMe, allowUserTypes, actionName: \"get user/me\" },\n updateUserMe: { fn: updateUserMe, allowUserTypes, actionName: \"update user/me\" },\n changePasswordUserMe: { fn: changePasswordUserMe, allowUserTypes, actionName: \"change password user/me\" },\n removeUserMe: { fn: removeUserMe, allowUserTypes, actionName: \"remove user/me\" },\n };\n\n return ServiceFactory(\"UserMeService\", rest, methodConfigs);\n\n}\n\n"]}
@@ -1,5 +1,8 @@
1
1
  import { DefaultServiceProps } from "./serviceUtils";
2
+ import { Request } from "express";
2
3
  export type FeatureCallbackProps<T> = {
3
4
  defaultServiceProps: DefaultServiceProps;
4
5
  callbackParams: T;
6
+ req?: Request;
5
7
  };
8
+ export declare const buildFeatureCallbackProps: <T>(props: FeatureCallbackProps<T>) => FeatureCallbackProps<T>;
@@ -1,3 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildFeatureCallbackProps = void 0;
4
+ const buildFeatureCallbackProps = (props) => {
5
+ const { callbackParams, defaultServiceProps } = props;
6
+ const { req, ...rest } = defaultServiceProps;
7
+ return {
8
+ defaultServiceProps: rest,
9
+ callbackParams,
10
+ req,
11
+ };
12
+ };
13
+ exports.buildFeatureCallbackProps = buildFeatureCallbackProps;
3
14
  //# sourceMappingURL=featureUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"featureUtils.js","sourceRoot":"","sources":["../../src/utils/featureUtils.ts"],"names":[],"mappings":"","sourcesContent":["import { DefaultServiceProps } from \"./serviceUtils\";\n\nexport type FeatureCallbackProps<T> = {\n defaultServiceProps: DefaultServiceProps,\n callbackParams: T\n}"]}
1
+ {"version":3,"file":"featureUtils.js","sourceRoot":"","sources":["../../src/utils/featureUtils.ts"],"names":[],"mappings":";;;AASO,MAAM,yBAAyB,GAAG,CACrC,KAA8B,EACP,EAAE;IAEzB,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAA;IACrD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,mBAAmB,CAAA;IAE5C,OAAO;QACH,mBAAmB,EAAE,IAAI;QACzB,cAAc;QACd,GAAG;KACN,CAAC;AACN,CAAC,CAAC;AAZW,QAAA,yBAAyB,6BAYpC","sourcesContent":["import { DefaultServiceProps } from \"./serviceUtils\";\nimport { Request } from \"express\";\n\nexport type FeatureCallbackProps<T> = {\n defaultServiceProps: DefaultServiceProps,\n callbackParams: T,\n req?: Request\n}\n\nexport const buildFeatureCallbackProps = <T>(\n props: FeatureCallbackProps<T>\n): FeatureCallbackProps<T> => {\n\n const { callbackParams, defaultServiceProps } = props\n const { req, ...rest } = defaultServiceProps\n\n return {\n defaultServiceProps: rest,\n callbackParams,\n req,\n };\n};"]}
@@ -9,6 +9,7 @@ export { throwError, logError } from "./exceptionUtils";
9
9
  export { getFormattedZodErrors, getFormattedZodErrorsIntoString, buildCommonStatusSchema, zodEnumFromObjectValues } from "./zodUtils";
10
10
  export type { DefaultServiceProps } from "./serviceUtils";
11
11
  export { getDefaultServiceProps, generateServiceProps } from "./serviceUtils";
12
+ export { buildFeatureCallbackProps } from "./featureUtils";
12
13
  export type { FeatureCallbackProps } from "./featureUtils";
13
14
  export { buildFullFieldName, groupPayloadInjectionFields } from "./injectionFieldUtils";
14
15
  export { generateAuthToken, verifyAuthToken } from "./authUtils";