diff --git a/backend/src/services/UserServices/UnlinkUserRight.ts b/backend/src/services/UserServices/UnlinkUserRight.ts new file mode 100644 index 0000000..13850ac --- /dev/null +++ b/backend/src/services/UserServices/UnlinkUserRight.ts @@ -0,0 +1,33 @@ +import * as Yup from "yup"; +import AppError from "../../errors/AppError"; +import ShowUserService from "./ShowUserService"; + +interface UnlinkUserRightServiceRequest { + userProfile: string; + userId: string | number; +} +const UnlinkUserRightService = async ({userProfile, userId}: UnlinkUserRightServiceRequest): Promise => { + try { + const user = await ShowUserService(userId); + const schema = Yup.object().shape({ + userId: Yup.string().required(), + userProfile: Yup.string().oneOf(['user']) + }); + try { + await schema.validate({ userId, userProfile }); + } catch (err: any) { + throw new AppError(err.message); + } + + await user.update({ + profile: userProfile || "user" + }); + + await user.reload(); + } catch (error: any) { + console.error('===> Error on UnlinkUserRightService.ts file: \n', error) + throw new AppError(error.message); + } +}; + +export default UnlinkUserRightService;