Skip to content

Commit 1a42184

Browse files
committed
wip
1 parent 5f91785 commit 1a42184

17 files changed

Lines changed: 102 additions & 5 deletions

Appraisals

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,53 @@
11
appraise 'rails4.2-graphql1.8' do
2+
gem 'sqlite3', '~> 1.3.6'
23
gem 'bundler', '~> 1.17'
34
gem 'rails', github: 'rails/rails', branch: '4-2-stable'
45
gem 'graphql', '~> 1.8.0'
56
end
67

78
appraise 'rails5.0-graphql1.8' do
9+
gem 'sqlite3', '~> 1.3.6'
810
gem 'rails', github: 'rails/rails', branch: '5-0-stable'
911
gem 'graphql', '~> 1.8.0'
1012
gem 'devise_token_auth', '0.1.43'
1113
gem 'devise', '>= 4.0'
1214
end
1315

1416
appraise 'rails5.0-graphql1.9' do
17+
gem 'sqlite3', '~> 1.3.6'
1518
gem 'rails', github: 'rails/rails', branch: '5-0-stable'
1619
gem 'graphql', '~> 1.9.0'
1720
end
1821

1922
appraise 'rails5.1-graphql1.8' do
23+
gem 'sqlite3', '~> 1.3.6'
2024
gem 'rails', github: 'rails/rails', branch: '5-1-stable'
2125
gem 'graphql', '~> 1.8.0'
2226
gem 'devise_token_auth', '0.1.43'
2327
gem 'devise', '>= 4.3'
2428
end
2529

2630
appraise 'rails5.1-graphql1.9' do
31+
gem 'sqlite3', '~> 1.3.6'
2732
gem 'rails', github: 'rails/rails', branch: '5-1-stable'
2833
gem 'graphql', '~> 1.9.0'
2934
end
3035

3136
appraise 'rails5.2-graphql1.8' do
37+
gem 'sqlite3', '~> 1.3.6'
3238
gem 'rails', github: 'rails/rails', branch: '5-2-stable'
3339
gem 'graphql', '~> 1.8.0'
3440
gem 'devise_token_auth', '0.1.43'
3541
gem 'devise', '>= 4.4.2'
3642
end
3743

3844
appraise 'rails5.2-graphql1.9' do
45+
gem 'sqlite3', '~> 1.3.6'
3946
gem 'rails', github: 'rails/rails', branch: '5-2-stable'
4047
gem 'graphql', '~> 1.9.0'
4148
end
4249

4350
appraise 'rails_edge-graphql_edge' do
44-
gem 'sqlite3', '~> 1.4'
4551
gem 'devise_token_auth', github: 'lynndylanhurley/devise_token_auth', branch: 'master'
4652
gem 'devise', '>= 4.7'
4753
gem 'rails', github: 'rails/rails', branch: 'master'
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
module GraphqlDevise
2+
module Mutations
3+
class SendPasswordReset < Base
4+
argument :email, String, required: true, prepare: ->(email, _) { email.downcase }
5+
argument :redirect_url, String, required: true
6+
7+
def resolve(email:, redirect_url:)
8+
resource = controller.find_resource(:uid, email)
9+
10+
if resource
11+
yield resource if block_given?
12+
resource.send_reset_password_instructions(
13+
email: email,
14+
provider: 'email',
15+
redirect_url: redirect_url
16+
)
17+
18+
if resource.errors.empty?
19+
{ authenticable: resource }
20+
else
21+
raise_user_error_list(I18n.t('graphql_devise.invalid_resource'), errors: resource.errors.full_messages)
22+
end
23+
else
24+
raise_user_error(I18n.t('graphql_devise.user_not_found'))
25+
end
26+
end
27+
end
28+
end
29+
end

app/helpers/graphql_devise/mailer_helper.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,20 @@ def confirmation_query(resource_name)
99
}
1010
}
1111
GRAPHQL
12+
13+
raw.delete("\n").delete(' ')
14+
end
15+
16+
def password_reset_query(token:, redirect_url:, resource_name:)
17+
raw = <<-GRAPHQL
18+
mutation($token:ID!,redirectUrl:String!){
19+
#{resource_name.camelize(:lower)}CheckPasswordToken(token:$token,redirectUrl:$redirectUrl
20+
){
21+
authenticable{ email }
22+
}
23+
}&variables={token:"#{token}",redirectUrl:"#{redirect_url}"}
24+
GRAPHQL
25+
1226
raw.delete("\n").delete(' ')
1327
end
1428
end
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<p><%= t(:hello).capitalize %> <%= @resource.email %>!</p>
2+
3+
<p><%= t '.request_reset_link_msg' %></p>
4+
5+
<p><%= link_to t('.password_change_link'), url_for(controller: 'graphql_devise/graphql', action: :auth, query: password_reset_query(token: @token, redirect_url: message['redirect-url'], resource_name: @resource.class.to_s).html_safe) %></p>
6+
7+
<p><%= t '.ignore_mail_msg' %></p>
8+
<p><%= t '.no_changes_msg' %></p>

config/locales/en.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ en:
44
resource_build_failed: "Resource couldn't be built, execution stopped."
55
not_authenticated: "User is not logged in."
66
user_not_found: "User was not found or was not logged in."
7+
invalid_resource: "Errors present in the resource."
78
passwords:
89
update_password_error: "Unable to update user password"
910
missing_passwords: "You must fill out the fields labeled 'Password' and 'Password confirmation'."

gemfiles/rails4.2_graphql1.8.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
source "https://rubygems.org"
44

5+
gem "sqlite3", "~> 1.3.6"
56
gem "bundler", "~> 1.17"
67
gem "rails", github: "rails/rails", branch: "4-2-stable"
78
gem "graphql", "~> 1.8.0"

gemfiles/rails5.0_graphql1.8.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
source "https://rubygems.org"
44

5+
gem "sqlite3", "~> 1.3.6"
56
gem "rails", github: "rails/rails", branch: "5-0-stable"
67
gem "graphql", "~> 1.8.0"
78
gem "devise_token_auth", "0.1.43"

gemfiles/rails5.0_graphql1.9.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
source "https://rubygems.org"
44

5+
gem "sqlite3", "~> 1.3.6"
56
gem "rails", github: "rails/rails", branch: "5-0-stable"
67
gem "graphql", "~> 1.9.0"
78

gemfiles/rails5.1_graphql1.8.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
source "https://rubygems.org"
44

5+
gem "sqlite3", "~> 1.3.6"
56
gem "rails", github: "rails/rails", branch: "5-1-stable"
67
gem "graphql", "~> 1.8.0"
78
gem "devise_token_auth", "0.1.43"

gemfiles/rails5.1_graphql1.9.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
source "https://rubygems.org"
44

5+
gem "sqlite3", "~> 1.3.6"
56
gem "rails", github: "rails/rails", branch: "5-1-stable"
67
gem "graphql", "~> 1.9.0"
78

0 commit comments

Comments
 (0)