class Smscru::Callback
Attributes
config[R]
Public Class Methods
new(options)
click to toggle source
# File lib/smscru/callback.rb, line 7 def initialize(options) @config = Smscru.config.dup @config.update(options) end
Public Instance Methods
on_message(&block)
click to toggle source
# File lib/smscru/callback.rb, line 22 def on_message(&block) @on_message = block end
on_status(&block)
click to toggle source
# File lib/smscru/callback.rb, line 26 def on_status(&block) @on_status = block end
run(params)
click to toggle source
# File lib/smscru/callback.rb, line 12 def run(params) return if params['sha1'] != signature(params) if params['mes'] @on_message.call(params) else @on_status.call(params) end end
signature(params)
click to toggle source
# File lib/smscru/callback.rb, line 30 def signature(params) keys = if params['mes'] %w(phone mes to) else %w(id phone status) end values = params.values_at(*keys) << config.secret Digest::SHA1.hexdigest(values.join(':')) end