mirror of
https://github.com/discourse/discourse-subscriptions.git
synced 2025-07-08 23:32:44 +00:00
send another ajax request to create account
This commit is contained in:
parent
61361bb69d
commit
3896866d5b
@ -22,21 +22,7 @@ module DiscourseDonations
|
||||
:currency => currency
|
||||
)
|
||||
|
||||
create_user(params) if current_user.nil?
|
||||
|
||||
render :json => charge
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def create_user(options)
|
||||
User.create(
|
||||
email: options[:email],
|
||||
username: options[:username],
|
||||
name: options[:name],
|
||||
password: options[:password],
|
||||
active: true
|
||||
).approve(-1, false)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -55,15 +55,30 @@ export default Ember.Component.extend({
|
||||
stripeToken: data.token.id,
|
||||
amount: self.get('amount') * 100,
|
||||
email: self.get('email'),
|
||||
username: self.get('username'),
|
||||
name: self.get('name'),
|
||||
password: self.get('password')
|
||||
};
|
||||
|
||||
ajax('/charges', { data: params, method: 'post' }).then(data => {
|
||||
if(data.status == 'succeeded') { self.set('success', true) };
|
||||
self.set('transactionInProgress', false);
|
||||
self.set('result', data.outcome.seller_message);
|
||||
|
||||
if(!this.get('create_accounts')) {
|
||||
if(data.status == 'succeeded') { self.set('success', true) };
|
||||
self.set('transactionInProgress', false);
|
||||
}
|
||||
else {
|
||||
|
||||
let params = {
|
||||
email: self.get('email'),
|
||||
username: self.get('username'),
|
||||
name: self.get('name'),
|
||||
password: self.get('password')
|
||||
};
|
||||
|
||||
ajax('/users', { data: params, method: 'post' }).then(data => {
|
||||
self.set('success', data.success);
|
||||
self.set('transactionInProgress', false);
|
||||
self.set('result', self.get('result') + data.message);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@ -50,7 +50,11 @@
|
||||
<div class="control-group save-button">
|
||||
<div class="controls">
|
||||
{{#d-button action="submitStripeCard" disabled=transactionInProgress class="btn btn-primary btn-payment"}}
|
||||
{{i18n 'discourse_donations.submit'}}
|
||||
{{#if create_accounts}}
|
||||
{{i18n 'discourse_donations.submit_with_create_account'}}
|
||||
{{else}}
|
||||
{{i18n 'discourse_donations.submit'}}
|
||||
{{/if}}
|
||||
{{/d-button}}
|
||||
|
||||
{{#if transactionInProgress}}
|
||||
|
@ -6,5 +6,6 @@ en:
|
||||
amount: Amount
|
||||
card: Credit or debit card
|
||||
submit: Make Payment
|
||||
submit_with_create_account: Make Payment and Create Account
|
||||
messages:
|
||||
success: Thank you for your donation!
|
||||
|
@ -9,19 +9,15 @@ module DiscourseDonations
|
||||
SiteSetting.stubs(:discourse_donations_secret_key).returns('secret-key-yo')
|
||||
end
|
||||
|
||||
describe 'creating user accounts' do
|
||||
it 'creates a new user account' do
|
||||
controller.expects(:create_user).once
|
||||
post :create, { email: 'foobar@example.com' }
|
||||
expect(response).to have_http_status(200)
|
||||
end
|
||||
it 'responds ok for anonymous users' do
|
||||
post :create, { email: 'foobar@example.com' }
|
||||
expect(response).to have_http_status(200)
|
||||
end
|
||||
|
||||
it 'does not create a new user account' do
|
||||
controller.expects(:create_user).never
|
||||
current_user = log_in(:coding_horror)
|
||||
post :create
|
||||
expect(response).to have_http_status(200)
|
||||
end
|
||||
it 'responds ok for logged in user' do
|
||||
current_user = log_in(:coding_horror)
|
||||
post :create
|
||||
expect(response).to have_http_status(200)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user