Module: GraphqlDevise::Concerns::AdditionalControllerMethods

Extended by:
ActiveSupport::Concern
Defined in:
app/controllers/graphql_devise/concerns/additional_controller_methods.rb

Instance Method Summary collapse

Instance Method Details

#authenticate_model(*models) ⇒ Object



19
20
21
22
23
24
25
26
# File 'app/controllers/graphql_devise/concerns/additional_controller_methods.rb', line 19

def authenticate_model(*models)
  models.each do |model|
    set_resource_by_token(model)
    return @resource if @resource.present?
  end

  nil
end

#build_redirect_headers(access_token, client, redirect_header_options = {}) ⇒ Object



61
62
63
64
65
66
67
68
69
# File 'app/controllers/graphql_devise/concerns/additional_controller_methods.rb', line 61

def build_redirect_headers(access_token, client, redirect_header_options = {})
  {
    DeviseTokenAuth.headers_names[:"access-token"] => access_token,
    DeviseTokenAuth.headers_names[:client] => client,
    :config => params[:config],
    :client_id => client,
    :token => access_token
  }.merge(redirect_header_options)
end

#full_url_without_paramsObject



35
36
37
# File 'app/controllers/graphql_devise/concerns/additional_controller_methods.rb', line 35

def full_url_without_params
  request.base_url + request.path
end

#gql_devise_context(*models) ⇒ Object



12
13
14
15
16
17
# File 'app/controllers/graphql_devise/concerns/additional_controller_methods.rb', line 12

def gql_devise_context(*models)
  {
    current_resource: authenticate_model(*models),
    controller:       self
  }
end

#graphql_context(resource_name) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'app/controllers/graphql_devise/concerns/additional_controller_methods.rb', line 43

def graphql_context(resource_name)
  ActiveSupport::Deprecation.warn(<<-DEPRECATION.strip_heredoc, caller)
    `graphql_context` is deprecated and will be removed in a future version of this gem.
     Use `gql_devise_context(model)` instead.

     EXAMPLE
     include GraphqlDevise::Concerns::SetUserByToken

     DummySchema.execute(params[:query], context: gql_devise_context(User))
     DummySchema.execute(params[:query], context: gql_devise_context(User, Admin))
  DEPRECATION

  {
    resource_name: resource_name,
    controller:    self
  }
end

#resource_class(resource = nil) ⇒ Object



28
29
30
31
32
33
# File 'app/controllers/graphql_devise/concerns/additional_controller_methods.rb', line 28

def resource_class(resource = nil)
  # Return the resource class instead of looking for a Devise mapping if resource is already a resource class
  return resource if resource.respond_to?(:find_by)

  super
end

#set_resource_by_token(resource) ⇒ Object



39
40
41
# File 'app/controllers/graphql_devise/concerns/additional_controller_methods.rb', line 39

def set_resource_by_token(resource)
  set_user_by_token(resource)
end