storemw-core-api 1.0.157 → 1.0.159

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.
@@ -7,6 +7,9 @@ export type FeatureResetPasswordRequestProps = FeatureCallbackProps<{
7
7
  emailAddress: string;
8
8
  mobileNumber: string;
9
9
  oneTimeCode: string;
10
+ expiresInMinutes: number;
11
+ oneTimeCodeGeneratedAt: Date;
12
+ oneTimeCodeExpiredAt: Date;
10
13
  user: any;
11
14
  }>;
12
15
  export type FeatureResetPasswordSuccessProps = FeatureCallbackProps<{
@@ -1 +1 @@
1
- {"version":3,"file":"resetPasswordType.js","sourceRoot":"","sources":["../../../src/features/reset_password/resetPasswordType.ts"],"names":[],"mappings":"","sourcesContent":["import { OneTimeCodeType, ResetPasswordMethod } from \"../../services\";\n\nimport { FeatureCallbackProps } from \"@/utils\"\n\nexport type FeatureResetPasswordRequestProps = FeatureCallbackProps<{\n userId: number\n userType: string\n resetPasswordMethod: ResetPasswordMethod,\n emailAddress: string\n mobileNumber: string\n oneTimeCode: string\n user: any\n}>\n\nexport type FeatureResetPasswordSuccessProps = FeatureCallbackProps<{\n userId: number\n userType: string\n resetPasswordMethod: ResetPasswordMethod\n oneTimeCode: string\n user: any\n}>\n\nexport type FeatureResetPasswordProps = {\n onSetup: () => {\n oneTimeCodeType: OneTimeCodeType;\n resetPasswordMethod: ResetPasswordMethod;\n expiresInMinutes?: Number\n },\n onRequest: (props: FeatureResetPasswordRequestProps) => Promise<any>\n onSuccess: (props: FeatureResetPasswordSuccessProps) => Promise<any>\n}"]}
1
+ {"version":3,"file":"resetPasswordType.js","sourceRoot":"","sources":["../../../src/features/reset_password/resetPasswordType.ts"],"names":[],"mappings":"","sourcesContent":["import { OneTimeCodeType, ResetPasswordMethod } from \"../../services\";\n\nimport { FeatureCallbackProps } from \"@/utils\"\n\nexport type FeatureResetPasswordRequestProps = FeatureCallbackProps<{\n userId: number\n userType: string\n resetPasswordMethod: ResetPasswordMethod,\n emailAddress: string\n mobileNumber: string\n oneTimeCode: string\n expiresInMinutes: number,\n oneTimeCodeGeneratedAt: Date,\n oneTimeCodeExpiredAt: Date,\n user: any\n}>\n\nexport type FeatureResetPasswordSuccessProps = FeatureCallbackProps<{\n userId: number\n userType: string\n resetPasswordMethod: ResetPasswordMethod\n oneTimeCode: string\n user: any\n}>\n\nexport type FeatureResetPasswordProps = {\n onSetup: () => {\n oneTimeCodeType: OneTimeCodeType;\n resetPasswordMethod: ResetPasswordMethod;\n expiresInMinutes?: Number\n },\n onRequest: (props: FeatureResetPasswordRequestProps) => Promise<any>\n onSuccess: (props: FeatureResetPasswordSuccessProps) => Promise<any>\n}"]}
@@ -184,6 +184,7 @@ const ResetPasswordService = (props) => {
184
184
  const hookSetup = features_1.ResetPasswordHook.onSetup();
185
185
  const codeType = hookSetup.oneTimeCodeType;
186
186
  const resetPasswordMethod = hookSetup.resetPasswordMethod;
187
+ const expiresInMinutes = hookSetup?.expiresInMinutes ? Number(hookSetup.expiresInMinutes) : 15; // default 15 min
187
188
  const emailAddress = data?.emailAddress ?? "";
188
189
  const mobileNumber = data?.mobileNumber ?? "";
189
190
  let user = {};
@@ -230,6 +231,8 @@ const ResetPasswordService = (props) => {
230
231
  }
231
232
  const userId = Number(user?.user_id ?? 0);
232
233
  const userType = user?.user_type ?? "";
234
+ let oneTimeCodeGeneratedAt = (0, utils_2.dayjs)().toDate(); // now
235
+ let oneTimeCodeExpiredAt = (0, utils_2.dayjs)().add(Number(expiresInMinutes), "minute").toDate(); // convert to JS Date
233
236
  const codePayload = {
234
237
  field_ref: "user",
235
238
  field_module: userType,
@@ -240,9 +243,7 @@ const ResetPasswordService = (props) => {
240
243
  mobileNumber,
241
244
  userId,
242
245
  userType,
243
- ...(hookSetup?.expiresInMinutes ? {
244
- expiredAt: (0, utils_2.dayjs)().add(Number(hookSetup.expiresInMinutes), "minute").toDate() // convert to JS Date
245
- } : {})
246
+ expiredAt: oneTimeCodeExpiredAt
246
247
  }
247
248
  };
248
249
  // generate the code
@@ -260,6 +261,9 @@ const ResetPasswordService = (props) => {
260
261
  emailAddress,
261
262
  mobileNumber,
262
263
  oneTimeCode: oneTimeCode?.code ?? "",
264
+ expiresInMinutes,
265
+ oneTimeCodeGeneratedAt,
266
+ oneTimeCodeExpiredAt,
263
267
  user
264
268
  }
265
269
  }));
@@ -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, 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 ...(hookSetup?.expiresInMinutes ? {\n expiredAt: dayjs().add(Number(hookSetup.expiresInMinutes), \"minute\").toDate() // convert to JS Date\n } : {})\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"]}
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 expiresInMinutes = hookSetup?.expiresInMinutes ? Number(hookSetup.expiresInMinutes) : 15 // default 15 min\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 let oneTimeCodeGeneratedAt = dayjs().toDate() // now\n let oneTimeCodeExpiredAt = dayjs().add(Number(expiresInMinutes), \"minute\").toDate() // convert to JS Date\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 expiredAt: oneTimeCodeExpiredAt\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 expiresInMinutes,\n oneTimeCodeGeneratedAt,\n oneTimeCodeExpiredAt,\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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "storemw-core-api",
3
- "version": "1.0.157",
3
+ "version": "1.0.159",
4
4
  "description": "STOREMW Core API",
5
5
  "main": "dist/app.js",
6
6
  "types": "dist/app.d.ts",