class Dingding::Notifier

Constants

VERSION

Attributes

atMobiles[R]
atUserIds[R]
client[R]
isAtAll[R]
middleware_name[R]
webhook_url[R]

Public Class Methods

new(options={}) click to toggle source
# File lib/dingding-notifier.rb, line 17
def initialize(options={})
  @webhook_url =  options.delete(:webhook_url)
  @client = config.http_client
  @atMobiles = options.delete(:atMobiles) || []
  @atUserIds = options.delete(:atUserIds) || []
  @isAtAll =  options.delete(:isAtAll) || false
  @middleware_name = config.middleware(options.delete(:middleware))
  if @middleware_name.is_a?(Array)
    @middleware_name = @middleware_name.first
  end
  middleware.set (@middleware_name)
end

Public Instance Methods

call(message, options={}) click to toggle source
# File lib/dingding-notifier.rb, line 34
def call message, options={}
  options[:format_text] ||= {}
  options[:format_text][:text] = message.to_json
  post options
end
config() click to toggle source
# File lib/dingding-notifier.rb, line 30
def config
  @_config ||= Config.new
end
post(payload={}) click to toggle source
# File lib/dingding-notifier.rb, line 40
def post payload={}
  payload = {middleware_name.to_sym => payload} unless payload.key?(middleware_name)
  payload.merge!({atMobiles: atMobiles, atUserIds: atUserIds,isAtAll: isAtAll})
  client.post webhook_url, middleware.call(payload).to_json
end

Private Instance Methods

middleware() click to toggle source
# File lib/dingding-notifier.rb, line 48
def middleware
  @middleware ||= PayloadMiddleware::Stack.new(self)
end