-
Notifications
You must be signed in to change notification settings - Fork 45
Expand file tree
/
Copy pathcontroller_methods.rb
More file actions
85 lines (69 loc) · 2.04 KB
/
controller_methods.rb
File metadata and controls
85 lines (69 loc) · 2.04 KB
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
module GraphqlDevise
module Concerns
module ControllerMethods
extend ActiveSupport::Concern
private
def raise_user_error(message)
raise GraphqlDevise::UserError, message
end
def raise_user_error_list(message, errors:)
raise GraphqlDevise::DetailedUserError.new(message, errors: errors)
end
def remove_resource
controller.resource = nil
controller.client_id = nil
controller.token = nil
end
def request
controller.request
end
def response
controller.response
end
def controller
context[:controller]
end
def resource_name
self.class.instance_variable_get(:@resource_name)
end
def resource_class
controller.send(:resource_class, resource_name)
end
def recoverable_enabled?
resource_class.devise_modules.include?(:recoverable)
end
def confirmable_enabled?
resource_class.devise_modules.include?(:confirmable)
end
def current_resource
@current_resource ||= controller.send(:set_user_by_token, resource_name)
end
def client
if Gem::Version.new(DeviseTokenAuth::VERSION) <= Gem::Version.new('1.1.0')
controller.client_id
else
controller.token.client if controller.token.present?
end
end
def set_auth_headers(resource)
auth_headers = resource.create_new_auth_token
response.headers.merge!(auth_headers)
end
def client_and_token(token)
if Gem::Version.new(DeviseTokenAuth::VERSION) <= Gem::Version.new('1.1.0')
{ client_id: token.first, token: token.last }
else
{ client_id: token.client, token: token.token }
end
end
def redirect_headers(token_info, redirect_header_options)
controller.send(
:build_redirect_headers,
token_info.fetch(:token),
token_info.fetch(:client_id),
redirect_header_options
)
end
end
end
end