summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/finders/applications_finder.rb26
-rw-r--r--lib/api/applications.rb9
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