diff options
-rw-r--r-- | app/finders/applications_finder.rb | 26 | ||||
-rw-r--r-- | lib/api/applications.rb | 9 |
2 files changed, 29 insertions, 6 deletions
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 |