class Dude::ProjectManagement::Jira::MoveTaskToList

Attributes

client[R]
id[R]
list_name[R]

Public Class Methods

new(client, id:, list_name:) click to toggle source
# File lib/dude/project_management/jira/move_task_to_list.rb, line 7
def initialize(client, id:, list_name:)
  @client = client
  @id = id
  @list_name = list_name
end

Public Instance Methods

call() click to toggle source
# File lib/dude/project_management/jira/move_task_to_list.rb, line 13
def call
  issue = client.Issue.find(id)
  available_transitions = client.Transition.all(issue: issue)
  transition_id = generate_transition_id(issue, available_transitions)
  transition = issue.transitions.build
  transition.save!(transition: { id: transition_id })
end

Private Instance Methods

generate_transition_id(issue, available_transitions) click to toggle source
# File lib/dude/project_management/jira/move_task_to_list.rb, line 25
def generate_transition_id(issue, available_transitions)
  if list_name
    available_transitions.find { |transition| transition.name == list_name }.id
  else
    select_list_for_moving(issue, available_transitions).id
  end
end
select_list_for_moving(_issue, available_transitions) click to toggle source
# File lib/dude/project_management/jira/move_task_to_list.rb, line 33
def select_list_for_moving(_issue, available_transitions)
  puts 'Please, select list for moving:'.green.bold

  available_transitions.each_with_index do |ea, index|
    puts "#{index + 1}: #{ea.name.bold}"
  end

  print "\nList index: ".bold
  list_index = $stdin.gets.chomp
  available_transitions[list_index.to_i - 1]
end