Skip to content

Commit 521fc1d

Browse files
committed
Add missing logout specs
1 parent b5a1438 commit 521fc1d

14 files changed

Lines changed: 73 additions & 24 deletions

File tree

app/controllers/graphql_devise/graphql_controller.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ def auth
1818
render json: result
1919
end
2020

21+
attr_accessor :client_id, :token, :resource
22+
2123
private
2224

2325
def execute_params(item)
@@ -26,7 +28,6 @@ def execute_params(item)
2628
variables: ensure_hash(item[:variables]),
2729
context: {
2830
current_resource: @resource,
29-
token: @token,
3031
controller: self,
3132
resource_class: resource_class
3233
}

app/graphql/graphql_devise/mutations/base.rb

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
1+
require 'devise_token_auth/version'
2+
13
module GraphqlDevise
24
module Mutations
35
class Base < GraphQL::Schema::Mutation
46
private
57

8+
def remove_resource
9+
controller.resource = nil
10+
controller.client_id = nil
11+
controller.token = nil
12+
end
13+
614
def single_error_object(error)
715
{ success: false, errors: [error] }
816
end
@@ -27,8 +35,12 @@ def current_resource
2735
context[:current_resource]
2836
end
2937

30-
def token
31-
context[:token]
38+
def client
39+
if Gem::Version.new(DeviseTokenAuth::VERSION) <= Gem::Version.new('1.1.0')
40+
controller.client_id
41+
else
42+
controller.token.client if controller.token.present?
43+
end
3244
end
3345
end
3446
end

app/graphql/graphql_devise/mutations/logout.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ class Logout < Base
55
field :errors, [String], null: false
66

77
def resolve
8-
client = token.client if token.client
8+
if current_resource && client && current_resource.tokens[client]
9+
current_resource.tokens.delete(client)
10+
current_resource.save!
911

10-
if current_user && token.client && current_user.tokens[client]
11-
user.tokens.delete(client)
12-
user.save!
12+
remove_resource
1313

14-
yield user if block_given?
14+
yield current_resource if block_given?
1515

16-
{ success: true, errors: [] }
16+
{ success: true, errors: [], authenticable: current_resource }
1717
else
1818
{ success: false, errors: [I18n.t('graphql_devise.user_not_found')] }
1919
end

gemfiles/rails4.2_graphql1.8.gemfile

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

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

5-
gem "listen"
65
gem "bundler", "~> 1.17"
76
gem "rails", github: "rails/rails", branch: "4-2-stable"
87
gem "graphql", "~> 1.8.0"

gemfiles/rails5.0_graphql1.8.gemfile

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

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

5-
gem "listen"
65
gem "rails", github: "rails/rails", branch: "5-0-stable"
76
gem "graphql", "~> 1.8.0"
87
gem "devise_token_auth", "0.1.37"

gemfiles/rails5.0_graphql1.9.gemfile

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

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

5-
gem "listen"
65
gem "rails", github: "rails/rails", branch: "5-0-stable"
76
gem "graphql", "~> 1.9.0"
87

gemfiles/rails5.1_graphql1.8.gemfile

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

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

5-
gem "listen"
65
gem "rails", github: "rails/rails", branch: "5-1-stable"
76
gem "graphql", "~> 1.8.0"
87
gem "devise_token_auth", "0.1.42"

gemfiles/rails5.1_graphql1.9.gemfile

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

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

5-
gem "listen"
65
gem "rails", github: "rails/rails", branch: "5-1-stable"
76
gem "graphql", "~> 1.9.0"
87

gemfiles/rails5.2_graphql1.8.gemfile

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

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

5-
gem "listen"
65
gem "rails", github: "rails/rails", branch: "5-2-stable"
76
gem "graphql", "~> 1.8.0"
87
gem "devise_token_auth", "0.1.43"

gemfiles/rails5.2_graphql1.9.gemfile

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

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

5-
gem "listen"
65
gem "rails", github: "rails/rails", branch: "5-2-stable"
76
gem "graphql", "~> 1.9.0"
87

0 commit comments

Comments
 (0)