Skip to content

Commit f5677b4

Browse files
author
David Revelo
committed
Add confirmation query a url params to email
1 parent 7ea3c72 commit f5677b4

9 files changed

Lines changed: 34 additions & 28 deletions

File tree

app/graphql/graphql_devise/mutations/base.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ def client
4242
controller.token.client if controller.token.present?
4343
end
4444
end
45+
46+
def set_auth_headers(resource)
47+
auth_headers = resource.create_new_auth_token
48+
response.headers.merge!(auth_headers)
49+
end
4550
end
4651
end
4752
end

app/graphql/graphql_devise/mutations/login.rb

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,6 @@ def resolve(email:, password:)
3434

3535
private
3636

37-
def set_auth_headers(resource)
38-
auth_headers = resource.create_new_auth_token
39-
response.headers.merge!(auth_headers)
40-
end
41-
4237
def invalid_for_authentication?(resource, password)
4338
valid_password = resource.valid_password?(password)
4439

app/graphql/graphql_devise/mutations/sign_up.rb

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,19 +60,10 @@ def active_for_authentication?(resource)
6060
resource.active_for_authentication?
6161
end
6262

63-
def resource_class
64-
context[:resource_class]
65-
end
66-
6763
def provider
6864
:email
6965
end
7066

71-
def set_auth_headers(resource)
72-
auth_headers = resource.create_new_auth_token
73-
response.headers.merge!(auth_headers)
74-
end
75-
7667
# NOTE: Devise controller method, find a way to re use it
7768
def clean_up_passwords(resource)
7869
resource.clean_up_passwords if object.respond_to?(:clean_up_passwords)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
module GraphqlDevise
2+
module MailerHelper
3+
extend ActiveSupport::Concern
4+
5+
protected
6+
7+
def confirmation_query(token:, config:, redirect_url:)
8+
raw = <<-GRAPHQL
9+
confirmAccount($token:ID!,$clientConfig:String,redirect:String!){
10+
userConfirmAccount(token:$token,clientConfig:$clientConfig,redirect:$redirect
11+
){
12+
success,errors
13+
}
14+
}&variables={token:"#{token}",clientConfig:"#{config}",redirect:"#{redirect_url}"}
15+
GRAPHQL
16+
17+
raw.gsub("\n", '').gsub(' ', '')
18+
end
19+
end
20+
end
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
<p><%= t(:welcome).capitalize + ' ' + @email %>!</p>
22

33
<p><%= t '.confirm_link_msg' %> </p>
4+
5+
<p><%= link_to t('.confirm_account_link'), graphql_url, query: confirmation_query(token: @token, config: message['client-config'].to_s, redirect_url: message['redirect-url']).html_safe %></p>

lib/graphql_devise/mailers/helpers.rb

Lines changed: 0 additions & 12 deletions
This file was deleted.

lib/graphql_devise/rails/routes.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
# frozen_string_literal: true
2-
31
module ActionDispatch::Routing
42
class Mapper
53
def mount_graphql_devise_for(resource, opts = {})
@@ -38,6 +36,8 @@ def mount_graphql_devise_for(resource, opts = {})
3836
GraphqlDevise::Types::MutationType.field("#{mapping_name}_#{action.to_s.underscore}", mutation: used_mutation)
3937
end
4038

39+
Devise.mailer.send(:add_template_helper, GraphqlDevise::MailerHelper)
40+
4141
devise_scope mapping_name.to_sym do
4242
post "#{path}/graphql_auth", to: 'graphql_devise/graphql#auth'
4343
end

spec/dummy/config/environments/test.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
# The :test delivery method accumulates sent emails in the
3636
# ActionMailer::Base.deliveries array.
3737
config.action_mailer.delivery_method = :test
38+
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
3839

3940
# Print deprecation notices to the stderr.
4041
config.active_support.deprecation = :stderr

spec/requests/mutations/sign_up_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,9 @@
4949
name: name
5050
}
5151
)
52+
53+
email = ActionMailer::Base.deliveries.last
54+
query = ERB::Util.url_encode("confirmAccount($token:ID!,$clientConfig:String,redirect:String!){userConfirmAccount(token:$token,clientConfig:$clientConfig,redirect:$redirect){success,errors}}&variables={token:\"#{user.confirmation_token}\",clientConfig:\"default\",redirect:\"#{redirect}\"}").html_safe
55+
expect(email.body.to_s).to match(/query=#{query}/)
5256
end
5357
end

0 commit comments

Comments
 (0)