Class: Import::PlaceholderReferences::PushService

Inherits:
BaseService
  • Object
show all
Defined in:
app/services/import/placeholder_references/push_service.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Services::ReturnServiceResponses

#error, #success

Constructor Details

#initialize(import_source:, import_uid:, source_user_id:, source_user_namespace_id:, model:, user_reference_column:, numeric_key: nil, composite_key: nil) ⇒ PushService

Returns a new instance of PushService.



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'app/services/import/placeholder_references/push_service.rb', line 29

def initialize(
  import_source:, import_uid:, source_user_id:, source_user_namespace_id:, model:,
  user_reference_column:, numeric_key: nil, composite_key: nil)
  super(import_source: import_source, import_uid: import_uid)

  @reference = Import::SourceUserPlaceholderReference.new(
    model: model.name,
    source_user_id: source_user_id,
    namespace_id: source_user_namespace_id,
    user_reference_column: user_reference_column,
    numeric_key: numeric_key,
    composite_key: composite_key,
    alias_version: PlaceholderReferences::AliasResolver.version_for_model(model.name)
  )
end

Class Method Details

.from_record(import_source:, import_uid:, source_user:, record:, user_reference_column:) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/services/import/placeholder_references/push_service.rb', line 9

def from_record(import_source:, import_uid:, source_user:, record:, user_reference_column:)
  if record.is_a?(IssueAssignee)
    composite_key = { 'issue_id' => record.issue_id, 'user_id' => record.user_id }
  elsif record.respond_to?(:id) && record.id.is_a?(Integer)
    numeric_key = record.id
  end

  new(
    import_source: import_source,
    import_uid: import_uid,
    model: record.class,
    composite_key: composite_key,
    numeric_key: numeric_key,
    source_user_id: source_user.id,
    source_user_namespace_id: source_user.namespace_id,
    user_reference_column: user_reference_column
  )
end

Instance Method Details

#executeObject



45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'app/services/import/placeholder_references/push_service.rb', line 45

def execute
  if reference.invalid?
    track_error(reference)

    return error(reference.errors.full_messages, :bad_request)
  end

  serialized_reference = reference.to_serialized

  store.add(serialized_reference)

  success(serialized_reference: serialized_reference)
end