summaryrefslogtreecommitdiff
path: root/app/services/bulk_imports/export_service.rb
blob: 33b3a8e187f150c8e52518a21ef3d144c046856a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# frozen_string_literal: true

module BulkImports
  class ExportService
    def initialize(portable:, user:)
      @portable = portable
      @current_user = user
    end

    def execute
      FileTransfer.config_for(portable).portable_relations.each do |relation|
        RelationExportWorker.perform_async(current_user.id, portable.id, portable.class.name, relation)
      end

      ServiceResponse.success
    rescue StandardError => e
      ServiceResponse.error(
        message: e.class,
        http_status: :unprocessable_entity
      )
    end

    private

    attr_reader :portable, :current_user
  end
end