class Jira::Command::Delete

Attributes

force[RW]
ticket[RW]

Public Class Methods

new(ticket, force) click to toggle source
# File lib/jira/commands/delete.rb, line 17
def initialize(ticket, force)
  self.ticket = ticket
  self.force = force
end

Public Instance Methods

run() click to toggle source
# File lib/jira/commands/delete.rb, line 22
def run
  return if ticket.empty?
  return if metadata.empty?
  return if metadata['fields'].nil?
  return if subtasks_failure?

  api.delete "issue/#{ticket}?deleteSubtasks=#{force}",
    success: ->{ puts "Ticket #{ticket} has been deleted." },
    failure: ->{ puts "No change made to ticket #{ticket}." }
end

Private Instance Methods

metadata() click to toggle source
# File lib/jira/commands/delete.rb, line 48
def metadata
  @metadata ||= api.get("issue/#{ticket}")
end
subtask?() click to toggle source
# File lib/jira/commands/delete.rb, line 44
def subtask?
  metadata['fields']['issuetype']['subtask']
end
subtasks_failure?() click to toggle source
# File lib/jira/commands/delete.rb, line 35
def subtasks_failure?
  return false unless subtask?
  if !metadata['fields']['subtasks'].empty? && !force
    self.force = io.yes?("Delete all sub-tasks for ticket #{ticket}?")
    return true unless force
  end
  false
end