Skip to content

Commit d6951f5

Browse files
author
David Revelo
committed
Add deprecation messages to legacy concerns and create new ones
1 parent 4e01e58 commit d6951f5

28 files changed

Lines changed: 325 additions & 163 deletions

app/controllers/graphql_devise/concerns/set_user_by_token.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ module SetUserByToken
77

88
included do
99
include DeviseTokenAuth::Concerns::SetUserByToken
10-
include GraphqlDevise::Concerns::AdditionalControllerMethods
10+
include AdditionalControllerMethods
1111
end
1212
end
1313
end

app/controllers/graphql_devise/graphql_controller.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,17 @@
44

55
module GraphqlDevise
66
class GraphqlController < ApplicationController
7-
include GraphqlDevise::Concerns::SetUserByToken
7+
include Concerns::SetUserByToken
88

99
def auth
1010
result = if params[:_json]
11-
GraphqlDevise::Schema.multiplex(
11+
Schema.multiplex(
1212
params[:_json].map do |param|
1313
{ query: param[:query] }.merge(execute_params(param))
1414
end
1515
)
1616
else
17-
GraphqlDevise::Schema.execute(params[:query], **execute_params(params))
17+
Schema.execute(params[:query], **execute_params(params))
1818
end
1919

2020
render json: result unless performed?

lib/graphql_devise.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@
1212
loader = Zeitwerk::Loader.for_gem
1313

1414
['additional_model_methods', 'controller_methods', 'model'].each do |concern_name|
15-
require_relative "graphql_devise/concerns/#{concern_name}"
16-
loader.ignore("#{__dir__}/graphql_devise/concerns/#{concern_name}.rb")
15+
require_relative "graphql_devise/concerns/legacy/#{concern_name}"
16+
loader.ignore("#{__dir__}/graphql_devise/concerns/legacy/#{concern_name}.rb")
1717
end
1818

19+
loader.collapse("#{__dir__}/graphql_devise/concerns")
1920
loader.collapse("#{__dir__}/graphql_devise/errors")
2021
loader.collapse("#{__dir__}/generators")
2122

@@ -29,7 +30,7 @@
2930
module GraphqlDevise
3031
class Error < StandardError; end
3132

32-
class InvalidMountOptionsError < GraphqlDevise::Error; end
33+
class InvalidMountOptionsError < Error; end
3334

3435
@schema_loaded = false
3536
@mounted_resources = []
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# frozen_string_literal: true
2+
3+
module GraphqlDevise
4+
module Authenticatable
5+
extend ActiveSupport::Concern
6+
7+
included do
8+
include DeviseTokenAuth::Concerns::User
9+
10+
::GraphqlDevise.configure_warden_serializer_for_model(self)
11+
end
12+
13+
class_methods do
14+
def reconfirmable
15+
devise_modules.include?(:confirmable) && column_names.include?('unconfirmed_email')
16+
end
17+
end
18+
19+
def update_with_email(attributes = {})
20+
Model::WithEmailUpdater.new(self, attributes).call
21+
end
22+
end
23+
end
Lines changed: 87 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,122 +1,120 @@
11
# frozen_string_literal: true
22

33
module GraphqlDevise
4-
module Concerns
5-
module ControllerMethods
6-
extend ActiveSupport::Concern
4+
module ControllerMethods
5+
extend ActiveSupport::Concern
76

8-
private
7+
private
98

10-
def check_redirect_url_whitelist!(redirect_url)
11-
if blacklisted_redirect_url?(redirect_url)
12-
raise_user_error(I18n.t('graphql_devise.redirect_url_not_allowed', redirect_url: redirect_url))
13-
end
9+
def check_redirect_url_whitelist!(redirect_url)
10+
if blacklisted_redirect_url?(redirect_url)
11+
raise_user_error(I18n.t('graphql_devise.redirect_url_not_allowed', redirect_url: redirect_url))
1412
end
13+
end
1514

16-
def raise_user_error(message)
17-
raise GraphqlDevise::UserError, message
18-
end
15+
def raise_user_error(message)
16+
raise UserError, message
17+
end
1918

20-
def raise_user_error_list(message, errors:)
21-
raise GraphqlDevise::DetailedUserError.new(message, errors: errors)
22-
end
19+
def raise_user_error_list(message, errors:)
20+
raise DetailedUserError.new(message, errors: errors)
21+
end
2322

24-
def remove_resource
25-
controller.resource = nil
26-
controller.client_id = nil
27-
controller.token = nil
28-
end
23+
def remove_resource
24+
controller.resource = nil
25+
controller.client_id = nil
26+
controller.token = nil
27+
end
2928

30-
def request
31-
controller.request
32-
end
29+
def request
30+
controller.request
31+
end
3332

34-
def response
35-
controller.response
36-
end
33+
def response
34+
controller.response
35+
end
3736

38-
def controller
39-
context[:controller]
40-
end
37+
def controller
38+
context[:controller]
39+
end
4140

42-
def resource_name
43-
GraphqlDevise.to_mapping_name(resource_class)
44-
end
41+
def resource_name
42+
::GraphqlDevise.to_mapping_name(resource_class)
43+
end
4544

46-
def resource_class
47-
self.class.instance_variable_get(:@resource_klass)
48-
end
45+
def resource_class
46+
self.class.instance_variable_get(:@resource_klass)
47+
end
4948

50-
def recoverable_enabled?
51-
resource_class.devise_modules.include?(:recoverable)
52-
end
49+
def recoverable_enabled?
50+
resource_class.devise_modules.include?(:recoverable)
51+
end
5352

54-
def confirmable_enabled?
55-
resource_class.devise_modules.include?(:confirmable)
56-
end
53+
def confirmable_enabled?
54+
resource_class.devise_modules.include?(:confirmable)
55+
end
5756

58-
def blacklisted_redirect_url?(redirect_url)
59-
DeviseTokenAuth.redirect_whitelist && !DeviseTokenAuth::Url.whitelisted?(redirect_url)
60-
end
57+
def blacklisted_redirect_url?(redirect_url)
58+
DeviseTokenAuth.redirect_whitelist && !DeviseTokenAuth::Url.whitelisted?(redirect_url)
59+
end
6160

62-
def current_resource
63-
@current_resource ||= controller.send(:set_resource_by_token, resource_class)
64-
end
61+
def current_resource
62+
@current_resource ||= controller.send(:set_resource_by_token, resource_class)
63+
end
6564

66-
def client
67-
if Gem::Version.new(DeviseTokenAuth::VERSION) <= Gem::Version.new('1.1.0')
68-
controller.client_id
69-
else
70-
controller.token.client if controller.token.present?
71-
end
65+
def client
66+
if Gem::Version.new(DeviseTokenAuth::VERSION) <= Gem::Version.new('1.1.0')
67+
controller.client_id
68+
else
69+
controller.token.client if controller.token.present?
7270
end
71+
end
7372

74-
def set_auth_headers(resource)
75-
auth_headers = resource.create_new_auth_token
76-
response.headers.merge!(auth_headers)
73+
def set_auth_headers(resource)
74+
auth_headers = resource.create_new_auth_token
75+
response.headers.merge!(auth_headers)
7776

78-
auth_headers
79-
end
77+
auth_headers
78+
end
8079

81-
def client_and_token(token)
82-
if Gem::Version.new(DeviseTokenAuth::VERSION) <= Gem::Version.new('1.1.0')
83-
{ client_id: token.first, token: token.last }
84-
else
85-
{ client_id: token.client, token: token.token }
86-
end
80+
def client_and_token(token)
81+
if Gem::Version.new(DeviseTokenAuth::VERSION) <= Gem::Version.new('1.1.0')
82+
{ client_id: token.first, token: token.last }
83+
else
84+
{ client_id: token.client, token: token.token }
8785
end
86+
end
8887

89-
def redirect_headers(token_info, redirect_header_options)
90-
controller.send(
91-
:build_redirect_headers,
92-
token_info.fetch(:token),
93-
token_info.fetch(:client_id),
94-
redirect_header_options
95-
)
96-
end
88+
def redirect_headers(token_info, redirect_header_options)
89+
controller.send(
90+
:build_redirect_headers,
91+
token_info.fetch(:token),
92+
token_info.fetch(:client_id),
93+
redirect_header_options
94+
)
95+
end
9796

98-
def find_resource(field, value)
99-
if resource_class.connection.adapter_name.downcase.include?('mysql')
100-
# fix for mysql default case insensitivity
101-
resource_class.where("BINARY #{field} = ? AND provider= ?", value, provider).first
102-
elsif Gem::Version.new(DeviseTokenAuth::VERSION) < Gem::Version.new('1.1.0')
103-
resource_class.find_by(field => value, :provider => provider)
104-
else
105-
resource_class.dta_find_by(field => value, :provider => provider)
106-
end
97+
def find_resource(field, value)
98+
if resource_class.connection.adapter_name.downcase.include?('mysql')
99+
# fix for mysql default case insensitivity
100+
resource_class.where("BINARY #{field} = ? AND provider= ?", value, provider).first
101+
elsif Gem::Version.new(DeviseTokenAuth::VERSION) < Gem::Version.new('1.1.0')
102+
resource_class.find_by(field => value, :provider => provider)
103+
else
104+
resource_class.dta_find_by(field => value, :provider => provider)
107105
end
106+
end
108107

109-
def get_case_insensitive_field(field, value)
110-
if resource_class.case_insensitive_keys.include?(field)
111-
value.downcase
112-
else
113-
value
114-
end
108+
def get_case_insensitive_field(field, value)
109+
if resource_class.case_insensitive_keys.include?(field)
110+
value.downcase
111+
else
112+
value
115113
end
114+
end
116115

117-
def provider
118-
:email
119-
end
116+
def provider
117+
:email
120118
end
121119
end
122120
end

lib/graphql_devise/concerns/additional_model_methods.rb renamed to lib/graphql_devise/concerns/legacy/additional_model_methods.rb

File renamed without changes.

0 commit comments

Comments
 (0)