31 lines
868 B
Ruby
31 lines
868 B
Ruby
class ApiRecurlyWebHookController < ApiController
|
|
|
|
http_basic_authenticate_with name: Rails.application.config.recurly_webhook_user, password: Rails.application.config.recurly_webhook_pass
|
|
|
|
before_filter :api_signed_in_user, only: []
|
|
#respond_to :xml
|
|
|
|
|
|
def on_hook
|
|
begin
|
|
|
|
document = Nokogiri::XML(request.body)
|
|
|
|
if RecurlyTransactionWebHook.is_transaction_web_hook?(document)
|
|
transaction = RecurlyTransactionWebHook.create_from_xml(document)
|
|
end
|
|
|
|
rescue Exception => e
|
|
Stats.write('web.recurly.webhook.transaction.error', {message: e.to_s, value: 1})
|
|
|
|
log.error("unable to process webhook: #{e.to_s}")
|
|
|
|
raise JamArgumentError.new("unable to parse webhook #{e.to_s}")
|
|
end
|
|
|
|
Stats.write('web.recurly.webhook.transaction.success', {value: 1})
|
|
|
|
render xml: { success: true }, :status => 200
|
|
end
|
|
end
|