Example for hook controller of doorkeeper
Add the hook feature for [issue#]472(doorkeeper-gem/doorkeeper#472)
bundle install
rails g doorkeeper:install
rails g doorkeeper:migration
rails g model User name:string
rake db:migrate
Using the resource owner credentials flow for example
resource_owner_from_credentials do |routes|
User.find_by_name(params[:name])
end
module DoorkeeperMethods
extend ActiveSupport::Concern
ENABLE_LOG = {
:"doorkeeper/tokens" => [:create, :revoke]
}
included do
after_action do
ENABLE_LOG.has_key?(controller_path.to_sym) and
ENABLE_LOG[controller_path.to_sym].include?(action_name.to_sym) and
dummy_logger "Proccessed the action: #{action_name}"
end
def dummy_logger(a)
# Do someting?
end
end
end
ActiveSupport.on_load(:doorkeeper_metal_controller) do
include AbstractController::Callbacks
include DoorkeeperMethods
end
describe Doorkeeper::TokensController do
it 'hits the dummy logger in action :create' do
expect(controller).to receive(:dummy_logger)
post :create
end
it 'hits the dummy logger in action :revoke' do
expect(controller).to receive(:dummy_logger)
post :revoke
end
end