Class: RedmineRemotes::IssueFetch::Create

Inherits:
Base
  • Object
show all
Defined in:
app/tableless_models/redmine_remotes/issue_fetch/create.rb,
app/tableless_models/redmine_remotes/issue_fetch/create/local_issue.rb,
app/tableless_models/redmine_remotes/issue_fetch/create/remote_issue.rb

Defined Under Namespace

Modules: LocalIssue, RemoteIssue

Instance Method Summary collapse

Methods inherited from Base

#author_present, #provider_issue_present

Instance Method Details

#default_error_columnObject



21
22
23
# File 'app/tableless_models/redmine_remotes/issue_fetch/create.rb', line 21

def default_error_column
  :issue_remote_code
end

#saveObject



25
26
27
# File 'app/tableless_models/redmine_remotes/issue_fetch/create.rb', line 25

def save
  remote_issue_by_remote_code.present? ? update : super
end

#tracker_in_projectObject



29
30
31
32
33
34
# File 'app/tableless_models/redmine_remotes/issue_fetch/create.rb', line 29

def tracker_in_project
  return unless local_tracker.present? && project.present?
  return if project.trackers.include?(local_tracker)

  errors.add(:local_tracker, 'is not a tracker of project')
end

#updateObject



36
37
38
39
40
41
42
43
# File 'app/tableless_models/redmine_remotes/issue_fetch/create.rb', line 36

def update
  update_record = ::RedmineRemotes::IssueFetch::Update
                  .new(remote_issue: remote_issue_by_remote_code)
  return true if update_record.save

  fetch_record_errors(update_record, default_column: default_error_column)
  false
end