Sha256: 1da22514b03228538ac125a4a92346033f8e3d88409702b3da761dbbac854bfa
Contents?: true
Size: 1.53 KB
Versions: 5
Compression:
Stored size: 1.53 KB
Contents
module Git::Whistles module Youtrack class Ticket class << self def build_from_remote(ticket_hash) return nil if ticket_hash.nil? return nil if issue_not_found? ticket_hash self.new.tap do |ticket| ticket.title = title_from ticket_hash ticket.id = id_from ticket_hash ticket.project = project_from ticket_hash ticket.description = description_from ticket_hash end end def title_from(ticket_hash) ticket_hash .dig('issue', 'field') .select { |f| f['name'] == 'summary' } .first.dig('value') end def id_from(ticket_hash) ticket_hash .dig('issue', 'field') .select { |f| f['name'] == 'numberInProject' } .first.dig('value').to_i end def project_from(ticket_hash) ticket_hash .dig('issue', 'field') .select { |f| f['name'] == 'projectShortName' } .first.dig('value') end def description_from(ticket_hash) ticket_hash .dig('issue', 'field') .select { |f| f['name'] == 'description' } .first.dig('value') end def issue_not_found?(ticket_hash) if ticket_hash["error"] true else false end end end attr_accessor :title attr_accessor :id attr_accessor :project attr_accessor :description end end end
Version data entries
5 entries across 5 versions & 1 rubygems