summaryrefslogtreecommitdiff
path: root/app/finders
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-12 09:09:55 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-12 09:09:55 +0000
commit18f7828977b74bf6e5153594a098ef90e773b3b7 (patch)
tree49cb1e16d5341d773807ee583357ae6eb167d61f /app/finders
parent8191b1571c017378eac33b3ed296ad5216d0a410 (diff)
downloadgitlab-ce-18f7828977b74bf6e5153594a098ef90e773b3b7.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/finders')
-rw-r--r--app/finders/projects/export_job_finder.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/app/finders/projects/export_job_finder.rb b/app/finders/projects/export_job_finder.rb
new file mode 100644
index 00000000000..c26a7a3f1a6
--- /dev/null
+++ b/app/finders/projects/export_job_finder.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+module Projects
+ class ExportJobFinder
+ InvalidExportJobStatusError = Class.new(StandardError)
+ attr_reader :project, :params
+
+ def initialize(project, params = {})
+ @project = project
+ @params = params
+ end
+
+ def execute
+ export_jobs = project.export_jobs
+ export_jobs = by_status(export_jobs)
+
+ export_jobs
+ end
+
+ private
+
+ def by_status(export_jobs)
+ return export_jobs unless params[:status]
+ raise InvalidExportJobStatusError, 'Invalid export job status' unless ProjectExportJob.state_machines[:status].states.map(&:name).include?(params[:status])
+
+ export_jobs.with_status(params[:status])
+ end
+ end
+end