From 895ce83b5be8a0871f5eac6e146501a5bed0de48 Mon Sep 17 00:00:00 2001 From: Henrriky Date: Tue, 12 Mar 2024 17:18:41 -0300 Subject: [PATCH] feat: add reset password service --- .../services/UserServices/ResetPassword.ts | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 backend/src/services/UserServices/ResetPassword.ts diff --git a/backend/src/services/UserServices/ResetPassword.ts b/backend/src/services/UserServices/ResetPassword.ts new file mode 100644 index 0000000..b396a26 --- /dev/null +++ b/backend/src/services/UserServices/ResetPassword.ts @@ -0,0 +1,32 @@ +import * as Yup from "yup"; +import AppError from "../../errors/AppError"; +import ShowUserService from "./ShowUserService"; + +interface ResetPasswordServiceRequest { + userPassword: string; + userId: string | number; +} +const ResetPasswordService = async ({userPassword, userId}: ResetPasswordServiceRequest): Promise => { + try { + const user = await ShowUserService(userId); + const schema = Yup.object().shape({ + password: Yup.string(), + }); + try { + await schema.validate({ password: userPassword }); + } catch (err: any) { + throw new AppError(err.message); + } + + await user.update({ + userPassword, + }); + + await user.reload(); + } catch (error: any) { + console.error('===> Error on ResetPasswordService.ts file: \n', error) + throw new AppError(error.message); + } +}; + +export default ResetPasswordService;