BigW Consortium Gitlab

issue.rb 879 Bytes
Newer Older
1 2 3 4 5 6 7 8 9
module Bitbucket
  module Representation
    class Issue < Representation::Base
      CLOSED_STATUS = %w(resolved invalid duplicate wontfix closed).freeze

      def iid
        raw['id']
      end

10 11 12 13
      def kind
        raw['kind']
      end

14
      def author
15
        raw.fetch('reporter', {}).fetch('username', nil)
16 17 18
      end

      def description
19
        raw.fetch('content', {}).fetch('raw', nil)
20 21 22 23 24 25 26 27 28 29
      end

      def state
        closed? ? 'closed' : 'opened'
      end

      def title
        raw['title']
      end

30
      def milestone
31
        raw['milestone']['name'] if raw['milestone'].present?
32 33
      end

34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
      def created_at
        raw['created_on']
      end

      def updated_at
        raw['edited_on']
      end

      def to_s
        iid
      end

      private

      def closed?
        CLOSED_STATUS.include?(raw['state'])
      end
    end
  end
end