diff --git a/app/controllers/discourse_donations/charges_controller.rb b/app/controllers/discourse_donations/charges_controller.rb index c26d96c..201a63e 100644 --- a/app/controllers/discourse_donations/charges_controller.rb +++ b/app/controllers/discourse_donations/charges_controller.rb @@ -9,20 +9,23 @@ module DiscourseDonations def create output = { 'messages' => [], 'rewards' => [] } - if create_account && (email.nil? || email.empty?) - output['messages'] << 'Please enter your email address' - elsif create_account && params[:username].nil? - output['messages'] << 'Please enter a username' - else - payment = DiscourseDonations::Stripe.new(secret_key, stripe_options) - charge = payment.charge(email, params) - output['messages'] = [charge['outcome']['seller_message']] + if create_account + if (email.nil? || email.empty?) + output['messages'] << 'Please enter your email address' + end + if params[:username].nil? + output['messages'] << 'Please enter a username' + end end - if payment.nil? + if output['messages'].present? render(:json => output) and return end + payment = DiscourseDonations::Stripe.new(secret_key, stripe_options) + charge = payment.charge(email, params) + output['messages'] = [charge['outcome']['seller_message']] + if reward?(payment) if current_user.present? reward = DiscourseDonations::Rewards.new(current_user)