diff options
Diffstat (limited to 'app/finders/bulk_imports/entities_finder.rb')
-rw-r--r-- | app/finders/bulk_imports/entities_finder.rb | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/app/finders/bulk_imports/entities_finder.rb b/app/finders/bulk_imports/entities_finder.rb index 2947d155668..78446f104d0 100644 --- a/app/finders/bulk_imports/entities_finder.rb +++ b/app/finders/bulk_imports/entities_finder.rb @@ -2,10 +2,10 @@ module BulkImports class EntitiesFinder - def initialize(user:, bulk_import: nil, status: nil) + def initialize(user:, bulk_import: nil, params: {}) @user = user @bulk_import = bulk_import - @status = status + @params = params end def execute @@ -14,6 +14,7 @@ module BulkImports .by_user_id(user.id) .then(&method(:filter_by_bulk_import)) .then(&method(:filter_by_status)) + .then(&method(:sort)) end private @@ -23,13 +24,19 @@ module BulkImports def filter_by_bulk_import(entities) return entities unless bulk_import - entities.where(bulk_import_id: bulk_import.id) # rubocop: disable CodeReuse/ActiveRecord + entities.by_bulk_import_id(bulk_import.id) end def filter_by_status(entities) - return entities unless ::BulkImports::Entity.all_human_statuses.include?(status) + return entities unless ::BulkImports::Entity.all_human_statuses.include?(@params[:status]) - entities.with_status(status) + entities.with_status(@params[:status]) + end + + def sort(entities) + return entities unless @params[:sort] + + entities.order_by_created_at(@params[:sort]) end end end |