Class: YiffSpace::Auth::WebhookController

Inherits:
ApplicationController show all
Defined in:
app/controllers/yiff_space/auth/webhook_controller.rb

Constant Summary collapse

HANDLED_EVENTS =
%w[
  User.Roles.Updated
  User.SuspensionStatus.Updated
  User.Deleted
  Role.Scopes.Updated
].freeze
DIRTY_FLAG_TTL =
24.hours

Constants included from Helper

Helper::DIRTY_FLAG_KEY

Instance Method Summary collapse

Methods included from Helper

#auth, #auth=, #auth?, #auth_client_config, #auth_raw, #client_name, #client_name=, #full_reset!, #has_permission?, #logged_in?, #require_auth, #reset_auth!, #reset_user!, #sync_auth_if_dirty!, #url_helpers, #user, #user=, #user?, #user_raw

Instance Method Details

#createObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/controllers/yiff_space/auth/webhook_controller.rb', line 19

def create
  unless verify_signature
    render(plain: "Unauthorized", status: :unauthorized)
    return
  end

  payload = JSON.parse(request.raw_post)
  event   = payload["event"]

  handle_event(event, payload) if HANDLED_EVENTS.include?(event)

  head(:ok)
rescue JSON::ParserError
  render(plain: "Bad Request", status: :bad_request)
end