implement service

This commit is contained in:
Rimian Perkins 2017-04-06 14:22:22 +10:00
parent 316dc61af5
commit 392478adf3
2 changed files with 15 additions and 14 deletions

View File

@ -10,20 +10,8 @@ module DiscourseDonations
if email.nil? || email.empty? if email.nil? || email.empty?
response = {} response = {}
else else
Stripe.api_key = SiteSetting.discourse_donations_secret_key payment = DiscourseDonations::Stripe.new(secret_key, stripe_options)
currency = SiteSetting.discourse_donations_currency response = payment.charge(email, params)
customer = Stripe::Customer.create(
:email => email,
:source => params[:stripeToken]
)
response = Stripe::Charge.create(
:customer => customer.id,
:amount => params[:amount],
:description => SiteSetting.discourse_donations_description,
:currency => currency
)
end end
render :json => response render :json => response
@ -31,6 +19,17 @@ module DiscourseDonations
private private
def secret_key
SiteSetting.discourse_donations_secret_key
end
def stripe_options
{
description: SiteSetting.discourse_donations_description,
currency: SiteSetting.discourse_donations_currency
}
end
def email def email
params[:email] || current_user.try(:email) params[:email] || current_user.try(:email)
end end

View File

@ -7,6 +7,8 @@ module DiscourseDonations
before do before do
SiteSetting.stubs(:discourse_donations_secret_key).returns('secret-key-yo') SiteSetting.stubs(:discourse_donations_secret_key).returns('secret-key-yo')
SiteSetting.stubs(:discourse_donations_description).returns('charity begins at discourse plugin')
SiteSetting.stubs(:discourse_donations_currency).returns('AUD')
end end
it 'responds ok for anonymous users' do it 'responds ok for anonymous users' do