Module: Supabase::Rails::Controller

Defined in:
lib/supabase/rails/controller.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



9
10
11
12
# File 'lib/supabase/rails/controller.rb', line 9

def self.included(base)
  base.helper_method(:supabase_context) if base.respond_to?(:helper_method)
  base.rescue_from(AuthError, with: :render_supabase_auth_error) if base.respond_to?(:rescue_from)
end

Instance Method Details

#supabase_contextObject



14
15
16
# File 'lib/supabase/rails/controller.rb', line 14

def supabase_context
  request.env[Rails::CONTEXT_KEY]
end

#verify_supabase_auth(auth: nil, env: nil, supabase_options: nil) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/supabase/rails/controller.rb', line 18

def verify_supabase_auth(auth: nil, env: nil, supabase_options: nil)
  if auth.nil? && env.nil? && supabase_options.nil?
    raise AuthError.invalid_credentials if supabase_context.nil?

    return supabase_context
  end

  result = Rails.create_context(
    request,
    auth: auth || :user,
    env: env,
    supabase_options: supabase_options
  )

  raise result.error if result.failure?

  request.env[Rails::CONTEXT_KEY] = result.value
end