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
|
# File 'lib/flowdock.rb', line 26
def send_message(params)
raise InvalidParameterError, "Message must have both :subject and :content" if params[:subject].blank? || params[:content].blank?
from = (params[:from].kind_of?(Hash)) ? params[:from] : @from
raise InvalidParameterError, "Flow's :from attribute must have :address attribute" if from[:address].blank?
tags = (params[:tags].kind_of?(Array)) ? params[:tags] : []
tags.reject! { |tag| !tag.kind_of?(String) || tag.blank? }
link = (!params[:link].blank?) ? params[:link] : nil
params = {
:source => @source,
:format => 'html', :from_name => from[:name],
:from_address => from[:address],
:subject => params[:subject],
:content => params[:content],
}
params[:tags] = tags.join(",") if tags.size > 0
params[:project] = @project unless @project.blank?
params[:link] = link unless link.blank?
resp = self.class.post(get_flowdock_api_url, :body => params)
raise ApiError, (resp.code == 500 ? "Flowdock API returned error: #{resp.body}" : "HTTP Error #{resp.code}") unless resp.code == 200
true
end
|