summaryrefslogtreecommitdiff
path: root/lib/gitlab/jira_import/base_importer.rb
blob: afb443020b7e8716c7eb1a0e7680ef51008c2a00 (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
28
29
30
31
32
33
34
35
# frozen_string_literal: true

module Gitlab
  module JiraImport
    class BaseImporter
      attr_reader :project, :client, :formatter, :jira_project_key

      def initialize(project)
        raise Projects::ImportService::Error, _('Jira import feature is disabled.') unless Feature.enabled?(:jira_issue_import, project)
        raise Projects::ImportService::Error, _('Jira integration not configured.') unless project.jira_service&.active?

        @jira_project_key = project.latest_jira_import&.jira_project_key
        raise Projects::ImportService::Error, _('Unable to find Jira project to import data from.') unless @jira_project_key

        @project = project
        @client = project.jira_service.client
        @formatter = Gitlab::ImportFormatter.new
      end

      private

      def imported_items_cache_key
        raise NotImplementedError
      end

      def mark_as_imported(id)
        Gitlab::Cache::Import::Caching.set_add(imported_items_cache_key, id)
      end

      def already_imported?(id)
        Gitlab::Cache::Import::Caching.set_includes?(imported_items_cache_key, id)
      end
    end
  end
end