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)