mirror of
https://github.com/discourse/discourse-subscriptions.git
synced 2025-07-09 07:33:28 +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
|
:currency => currency
|
||||||
)
|
)
|
||||||
|
|
||||||
create_user(params) if current_user.nil?
|
|
||||||
|
|
||||||
render :json => charge
|
render :json => charge
|
||||||
end
|
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
|
||||||
end
|
end
|
||||||
|
@ -55,15 +55,30 @@ export default Ember.Component.extend({
|
|||||||
stripeToken: data.token.id,
|
stripeToken: data.token.id,
|
||||||
amount: self.get('amount') * 100,
|
amount: self.get('amount') * 100,
|
||||||
email: self.get('email'),
|
email: self.get('email'),
|
||||||
username: self.get('username'),
|
|
||||||
name: self.get('name'),
|
|
||||||
password: self.get('password')
|
|
||||||
};
|
};
|
||||||
|
|
||||||
ajax('/charges', { data: params, method: 'post' }).then(data => {
|
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);
|
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="control-group save-button">
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
{{#d-button action="submitStripeCard" disabled=transactionInProgress class="btn btn-primary btn-payment"}}
|
{{#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}}
|
{{/d-button}}
|
||||||
|
|
||||||
{{#if transactionInProgress}}
|
{{#if transactionInProgress}}
|
||||||
|
@ -6,5 +6,6 @@ en:
|
|||||||
amount: Amount
|
amount: Amount
|
||||||
card: Credit or debit card
|
card: Credit or debit card
|
||||||
submit: Make Payment
|
submit: Make Payment
|
||||||
|
submit_with_create_account: Make Payment and Create Account
|
||||||
messages:
|
messages:
|
||||||
success: Thank you for your donation!
|
success: Thank you for your donation!
|
||||||
|
@ -9,19 +9,15 @@ module DiscourseDonations
|
|||||||
SiteSetting.stubs(:discourse_donations_secret_key).returns('secret-key-yo')
|
SiteSetting.stubs(:discourse_donations_secret_key).returns('secret-key-yo')
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'creating user accounts' do
|
it 'responds ok for anonymous users' do
|
||||||
it 'creates a new user account' do
|
post :create, { email: 'foobar@example.com' }
|
||||||
controller.expects(:create_user).once
|
expect(response).to have_http_status(200)
|
||||||
post :create, { email: 'foobar@example.com' }
|
end
|
||||||
expect(response).to have_http_status(200)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'does not create a new user account' do
|
it 'responds ok for logged in user' do
|
||||||
controller.expects(:create_user).never
|
current_user = log_in(:coding_horror)
|
||||||
current_user = log_in(:coding_horror)
|
post :create
|
||||||
post :create
|
expect(response).to have_http_status(200)
|
||||||
expect(response).to have_http_status(200)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user