From 1ae9aefe5572cc62256f28e16163015f075b6c59 Mon Sep 17 00:00:00 2001 From: JB Vasseur Date: Mon, 15 Oct 2018 23:03:08 +0900 Subject: [PATCH] Use application finder for Doorkeeper Applications --- app/finders/applications_finder.rb | 26 ++++++++++++++++++++++++++ lib/api/applications.rb | 9 +++------ 2 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 app/finders/applications_finder.rb diff --git a/app/finders/applications_finder.rb b/app/finders/applications_finder.rb new file mode 100644 index 00000000000..14bd35105d2 --- /dev/null +++ b/app/finders/applications_finder.rb @@ -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 diff --git a/lib/api/applications.rb b/lib/api/applications.rb index 9d0f7a093d5..92717e04543 100644 --- a/lib/api/applications.rb +++ b/lib/api/applications.rb @@ -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