52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
module Gitlab
 | 
						|
  module InternalPostReceive
 | 
						|
    class Response
 | 
						|
      attr_accessor :reference_counter_decreased
 | 
						|
      attr_reader :messages
 | 
						|
 | 
						|
      Message = Struct.new(:message, :type) do
 | 
						|
        def self.basic(text)
 | 
						|
          new(text, :basic)
 | 
						|
        end
 | 
						|
 | 
						|
        def self.alert(text)
 | 
						|
          new(text, :alert)
 | 
						|
        end
 | 
						|
      end
 | 
						|
 | 
						|
      def initialize
 | 
						|
        @messages = []
 | 
						|
        @reference_counter_decreased = false
 | 
						|
      end
 | 
						|
 | 
						|
      def add_merge_request_urls(urls_data)
 | 
						|
        urls_data.each do |url_data|
 | 
						|
          add_merge_request_url(url_data)
 | 
						|
        end
 | 
						|
      end
 | 
						|
 | 
						|
      def add_merge_request_url(url_data)
 | 
						|
        message = if url_data[:new_merge_request]
 | 
						|
                    "To create a merge request for #{url_data[:branch_name]}, visit:"
 | 
						|
                  else
 | 
						|
                    "View merge request for #{url_data[:branch_name]}:"
 | 
						|
                  end
 | 
						|
 | 
						|
        message += "\n  #{url_data[:url]}"
 | 
						|
 | 
						|
        add_basic_message(message)
 | 
						|
      end
 | 
						|
 | 
						|
      def add_basic_message(text)
 | 
						|
        @messages << Message.basic(text) if text.present?
 | 
						|
      end
 | 
						|
 | 
						|
      def add_alert_message(text)
 | 
						|
        @messages.unshift(Message.alert(text)) if text.present?
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |