-
Notifications
You must be signed in to change notification settings - Fork 36
/
send_password_reset.rb
34 lines (29 loc) · 1.06 KB
/
send_password_reset.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
module GraphqlDevise
module Mutations
class SendPasswordReset < Base
argument :email, String, required: true
argument :redirect_url, String, required: true
field :message, String, null: false
def resolve(email:, redirect_url:)
resource = find_resource(:email, get_case_insensitive_field(:email, email))
if resource
yield resource if block_given?
resource.send_reset_password_instructions(
email: email,
provider: 'email',
redirect_url: redirect_url,
template_path: ['graphql_devise/mailer'],
schema_url: controller.full_url_without_params
)
if resource.errors.empty?
{ message: I18n.t('graphql_devise.passwords.send_instructions') }
else
raise_user_error_list(I18n.t('graphql_devise.invalid_resource'), errors: resource.errors.full_messages)
end
else
raise_user_error(I18n.t('graphql_devise.user_not_found'))
end
end
end
end
end