class Jira::Command::Link
Attributes
ticket[RW]
Public Class Methods
new(ticket)
click to toggle source
# File lib/jira/commands/link.rb, line 16 def initialize(ticket) self.ticket = ticket end
Public Instance Methods
run()
click to toggle source
# File lib/jira/commands/link.rb, line 20 def run return if ticket.empty? return if metadata.empty? return if issue_link_type.empty? return if outward_ticket.empty? return unless invalid_ticket? begin api.post "issueLink", params: params, success: on_success, failure: on_failure rescue CommandException end end
Private Instance Methods
invalid_ticket?()
click to toggle source
# File lib/jira/commands/link.rb, line 84 def invalid_ticket? !Jira::Core.ticket?(outward_ticket) end
issue_link_type()
click to toggle source
# File lib/jira/commands/link.rb, line 52 def issue_link_type return @issue_link_type unless @issue_link_type.nil? types = {} metadata['issueLinkTypes'].each do |type| data = { id: type['id'], name: type['name'], inward: type['inward'], outward: type['outward'] } types[type['name']] = data end choice = io.select("Select a link type:", types.keys) @issue_link_type = types[choice] end
metadata()
click to toggle source
# File lib/jira/commands/link.rb, line 88 def metadata @metadata ||= api.get("issueLinkType") end
on_failure()
click to toggle source
# File lib/jira/commands/link.rb, line 76 def on_failure ->{ puts "No ticket linked." } end
on_success()
click to toggle source
# File lib/jira/commands/link.rb, line 69 def on_success ->{ puts "Successfully linked ticket #{ticket} to"\ " ticket #{outward_ticket}." } end
outward_ticket()
click to toggle source
# File lib/jira/commands/link.rb, line 80 def outward_ticket @outward_ticket ||= io.ask("Outward ticket:").strip end
params()
click to toggle source
# File lib/jira/commands/link.rb, line 38 def params { type: { name: issue_link_type[:name] }, inwardIssue: { key: ticket }, outwardIssue: { key: outward_ticket } } end