-
Notifications
You must be signed in to change notification settings - Fork 45
Expand file tree
/
Copy pathgraphql_devise.rb
More file actions
83 lines (65 loc) · 2.31 KB
/
graphql_devise.rb
File metadata and controls
83 lines (65 loc) · 2.31 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
# frozen_string_literal: true
require 'rails'
require 'graphql'
require 'devise_token_auth'
module GraphqlDevise
class Error < StandardError; end
class InvalidMountOptionsError < GraphqlDevise::Error; end
@schema_loaded = false
@mounted_resources = []
def self.schema_loaded?
@schema_loaded
end
def self.load_schema
@schema_loaded = true
end
def self.resource_mounted?(model)
@mounted_resources.include?(model)
end
def self.mount_resource(model)
@mounted_resources << model
end
def self.add_mapping(mapping_name, resource)
return if Devise.mappings.key?(mapping_name.to_sym)
Devise.add_mapping(
mapping_name.to_s.pluralize.to_sym,
module: :devise, class_name: resource.to_s
)
end
def self.to_mapping_name(resource)
resource.to_s.underscore.tr('/', '_')
end
def self.configure_warden_serializer_for_model(model)
Devise.warden_config.serialize_into_session(to_mapping_name(model)) do |record|
model.serialize_into_session(record)
end
Devise.warden_config.serialize_from_session(to_mapping_name(model)) do |args|
model.serialize_from_session(*args)
end
end
end
require 'graphql_devise/engine'
require 'graphql_devise/version'
require 'graphql_devise/errors/error_codes'
require 'graphql_devise/errors/execution_error'
require 'graphql_devise/errors/user_error'
require 'graphql_devise/errors/authentication_error'
require 'graphql_devise/errors/detailed_user_error'
# TODO: Remove when merged into master
require 'graphql_devise/concerns/authenticatable'
require 'graphql_devise/concerns/set_user_by_token.rb'
require 'graphql_devise/concerns/controller_methods'
require 'graphql_devise/schema'
require 'graphql_devise/types/authenticatable_type'
require 'graphql_devise/types/credential_type'
require 'graphql_devise/types/mutation_type'
require 'graphql_devise/types/query_type'
require 'graphql_devise/default_operations/mutations'
require 'graphql_devise/default_operations/resolvers'
require 'graphql_devise/resolvers/dummy'
require 'graphql_devise/mount_method/option_sanitizer'
require 'graphql_devise/mount_method/options_validator'
require 'graphql_devise/mount_method/operation_preparer'
require 'graphql_devise/mount_method/operation_sanitizer'
require 'graphql_devise/resource_loader'
require 'graphql_devise/schema_plugin'