1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
# frozen_string_literal: true
module Bitbucket
module Representation
class Issue < Representation::Base
CLOSED_STATUS = %w[resolved invalid duplicate wontfix closed].freeze
def iid
raw['id']
end
def kind
raw['kind']
end
def author
raw.dig('reporter', 'uuid')
end
def author_nickname
raw.dig('reporter', 'nickname')
end
def description
raw.fetch('content', {}).fetch('raw', nil)
end
def state
closed? ? 'closed' : 'opened'
end
def title
raw['title']
end
def milestone
raw['milestone']['name'] if raw['milestone'].present?
end
def created_at
raw['created_on']
end
def updated_at
raw['edited_on']
end
def to_s
iid
end
def to_hash
{
iid: iid,
title: title,
description: description,
state: state,
author: author,
author_nickname: author_nickname,
milestone: milestone,
created_at: created_at,
updated_at: updated_at
}
end
private
def closed?
CLOSED_STATUS.include?(raw['state'])
end
end
end
end
|