lib/fluent/plugin/out_slack.rb in fluent-plugin-slack-0.5.1 vs lib/fluent/plugin/out_slack.rb in fluent-plugin-slack-0.5.2

- old
+ new

@@ -13,11 +13,12 @@ config_param :webhook_url, :string, default: nil # incoming webhook config_param :token, :string, default: nil # api token config_param :username, :string, default: 'fluentd' config_param :color, :string, default: 'good' - config_param :icon_emoji, :string, default: ':question:' + config_param :icon_emoji, :string, default: nil + config_param :icon_url, :string, default: nil config_param :auto_channels_create, :bool, default: false config_param :channel, :string config_param :channel_keys, default: nil do |val| val.split(',') @@ -89,10 +90,15 @@ rescue ArgumentError raise Fluent::ConfigError, "string specifier '%s' for `channel` and `channel_keys` specification mismatch" end end + if @icon_emoji and @icon_url + raise Fluent::ConfigError, "either of `icon_emoji` or `icon_url` can be specified" + end + @icon_emoji ||= ':question:' unless @icon_url + @post_message_opts = @auto_channels_create ? {auto_channels_create: true} : {} end def format(tag, time, record) [tag, time, record].to_msgpack @@ -122,14 +128,14 @@ end end def common_payload return @common_payload if @common_payload - @common_payload = { - username: @username, - icon_emoji: @icon_emoji, - } - @common_payload[:token] = @token if @token + @common_payload = {} + @common_payload[:username] = @username + @common_payload[:icon_emoji] = @icon_emoji if @icon_emoji + @common_payload[:icon_url] = @icon_url if @icon_url + @common_payload[:token] = @token if @token @common_payload end Field = Struct.new("Field", :title, :value)