webhook_service.rb
598 Bytes
class NotificationServices::WebhookService < NotificationService
LABEL = "webhook"
FIELDS = [
[:api_token, {
:placeholder => 'URL to receive a POST request when an error occurs',
:label => 'URL'
}]
]
def check_params
if FIELDS.detect { |f| self[f[0]].blank? }
errors.add :base, 'You must specify the URL'
end
end
def message_for_webhook(problem)
{ :problem => { :url => problem_url(problem) }.merge(problem.as_json).to_json }
end
def create_notification(problem)
HTTParty.post(api_token, :body => message_for_webhook(problem))
end
end