37 lines
867 B
Ruby
37 lines
867 B
Ruby
class Pushover
|
|
# these need to be overridden in config/initializers/production.rb
|
|
cattr_accessor :API_TOKEN
|
|
cattr_accessor :SUBSCRIPTION_CODE
|
|
|
|
def self.enabled?
|
|
self.API_TOKEN.present?
|
|
end
|
|
|
|
def self.push(user, params)
|
|
if !self.enabled?
|
|
return
|
|
end
|
|
|
|
begin
|
|
if params[:message].to_s == ""
|
|
params[:message] = "(No message)"
|
|
end
|
|
|
|
s = Sponge.new
|
|
s.fetch("https://api.pushover.net/1/messages.json", :post, {
|
|
:token => self.API_TOKEN,
|
|
:user => user,
|
|
}.merge(params))
|
|
rescue => e
|
|
Rails.logger.error "error sending to pushover: #{e.inspect}"
|
|
end
|
|
end
|
|
|
|
def self.subscription_url(params)
|
|
u = "https://pushover.net/subscribe/#{self.SUBSCRIPTION_CODE}"
|
|
u << "?success=#{CGI.escape(params[:success])}"
|
|
u << "&failure=#{CGI.escape(params[:failure])}"
|
|
u
|
|
end
|
|
end
|