def push_to_chat(params)
raise InvalidParameterError, "Message must have :content" if blank?(params[:content])
@external_user_name = params[:external_user_name] unless blank?(params[:external_user_name])
if blank?(@external_user_name) || @external_user_name.match(/^[\S]+$/).nil? || @external_user_name.length > 16
raise InvalidParameterError, "Message must have :external_user_name that has no whitespace and maximum of 16 characters"
end
tags = (params[:tags].kind_of?(Array)) ? params[:tags] : []
tags.reject! { |tag| !tag.kind_of?(String) || blank?(tag) }
thread_id = params[:thread_id]
message_id = params[:message_id] || params[:message]
params = {
:content => params[:content],
:external_user_name => @external_user_name
}
params[:tags] = tags.join(",") if tags.size > 0
params[:thread_id] = thread_id if thread_id
params[:message_id] = message_id if message_id
resp = self.class.post(get_flowdock_api_url("messages/chat"), :body => params)
handle_response(resp)
true
end