From 192e8b632f0c4c0a02155062c75c462f38dcf9a6 Mon Sep 17 00:00:00 2001 From: Dominic Grimm Date: Thu, 20 Jan 2022 21:00:37 +0100 Subject: [PATCH] Added update password method --- docker/backend/src/mw/schema/mutation.cr | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docker/backend/src/mw/schema/mutation.cr b/docker/backend/src/mw/schema/mutation.cr index 2ae8a96..9762ba2 100644 --- a/docker/backend/src/mw/schema/mutation.cr +++ b/docker/backend/src/mw/schema/mutation.cr @@ -15,6 +15,22 @@ module MW ) end + @[GraphQL::Field] + def update_password(context : Context, password : String) : LoginPayload + context.authenticated! + + if Auth.verify_password?(password, context.user.not_nil!.password) + raise "New password must be different from old password" + end + + context.user.not_nil!.update!(password: Auth.hash_password(password)) + + LoginPayload.new( + user: User.new(context.user.not_nil!), + token: Auth.create_user_jwt(context.user.not_nil!.id.not_nil!.to_i), + ) + end + @[GraphQL::Field] def create_user(context : Context, input : UserCreateInput) : User context.admin!