Use application finder for Doorkeeper Applications

This commit is contained in:
JB Vasseur 2018-10-15 23:03:08 +09:00
parent c47aea7576
commit 1ae9aefe55
2 changed files with 29 additions and 6 deletions

View File

@ -0,0 +1,26 @@
# frozen_string_literal: true
class ApplicationsFinder
attr_reader :params
def initialize(params = {})
@params = params
end
# rubocop: disable CodeReuse/ActiveRecord
def execute
applications = Doorkeeper::Application.where("owner_id IS NULL")
by_id(applications)
end
# rubocop: enable CodeReuse/ActiveRecord
private
# rubocop: disable CodeReuse/ActiveRecord
def by_id(applications)
return applications unless params[:id]
Doorkeeper::Application.find_by(id: params[:id])
end
# rubocop: enable CodeReuse/ActiveRecord
end

View File

@ -25,24 +25,21 @@ module API
end
end
# rubocop: disable CodeReuse/ActiveRecord
desc 'Get applications' do
success Entities::Application
end
get do
applications = Doorkeeper::Application.where("owner_id IS NULL")
applications = ApplicationsFinder.new.execute
present applications, with: Entities::Application
end
# rubocop: enable CodeReuse/ActiveRecord
# rubocop: disable CodeReuse/ActiveRecord
desc 'Delete an application'
delete ':id' do
Doorkeeper::Application.find_by(id: params[:id]).destroy
application = ApplicationsFinder.new(params).execute
application.destroy
status 204
end
# rubocop: enable CodeReuse/ActiveRecord
end
end
end