jam-cloud/web/app/controllers/api_recurly_web_hook_contro...

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_action :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