diff --git a/app/controllers/customers_controller.rb b/app/controllers/customers_controller.rb index f95299c..3dce949 100644 --- a/app/controllers/customers_controller.rb +++ b/app/controllers/customers_controller.rb @@ -13,11 +13,6 @@ module DiscourseSubscriptions source: params[:source] ) - DiscourseSubscriptions::Customer.create_customer( - current_user, - customer - ) - render_json_dump customer rescue ::Stripe::InvalidRequestError => e diff --git a/assets/javascripts/discourse/controllers/s-subscribe-show.js.es6 b/assets/javascripts/discourse/controllers/s-subscribe-show.js.es6 index 065df34..be8233e 100644 --- a/assets/javascripts/discourse/controllers/s-subscribe-show.js.es6 +++ b/assets/javascripts/discourse/controllers/s-subscribe-show.js.es6 @@ -1,4 +1,5 @@ -import { ajax } from "discourse/lib/ajax"; +import Customer from "discourse/plugins/discourse-subscriptions/discourse/models/customer"; +import Subscription from "discourse/plugins/discourse-subscriptions/discourse/models/subscription"; export default Ember.Controller.extend({ init() { @@ -35,17 +36,10 @@ export default Ember.Controller.extend({ bootbox.alert(result.error.message); this.set("loading", false); } else { - const customerData = { - source: result.token.id - }; + const customer = Customer.create({ source: result.token.id }); - return ajax("/s/customers", { - method: "post", - data: customerData - }).then(customer => { - const subscription = this.get("model.subscription"); - - subscription.setProperties({ + customer.save().then(customer => { + const subscription = Subscription.create({ customer: customer.id, plan: plan.get("id") }); diff --git a/assets/javascripts/discourse/models/customer.js.es6 b/assets/javascripts/discourse/models/customer.js.es6 new file mode 100644 index 0000000..b8eb126 --- /dev/null +++ b/assets/javascripts/discourse/models/customer.js.es6 @@ -0,0 +1,13 @@ +import { ajax } from "discourse/lib/ajax"; + +const Customer = Discourse.Model.extend({ + save() { + const data = { + source: this.source + }; + + return ajax("/s/customers", { method: "post", data }); + } +}); + +export default Customer; diff --git a/assets/javascripts/discourse/routes/s-subscribe-show.js.es6 b/assets/javascripts/discourse/routes/s-subscribe-show.js.es6 index d3a21d8..82e92d9 100644 --- a/assets/javascripts/discourse/routes/s-subscribe-show.js.es6 +++ b/assets/javascripts/discourse/routes/s-subscribe-show.js.es6 @@ -1,15 +1,13 @@ import Product from "discourse/plugins/discourse-subscriptions/discourse/models/product"; import Plan from "discourse/plugins/discourse-subscriptions/discourse/models/plan"; -import Subscription from "discourse/plugins/discourse-subscriptions/discourse/models/subscription"; export default Discourse.Route.extend({ model(params) { const product_id = params["subscription-id"]; const product = Product.find(product_id); - const subscription = Subscription.create(); const plans = Plan.findAll({ product_id: product_id }); - return Ember.RSVP.hash({ plans, product, subscription }); + return Ember.RSVP.hash({ plans, product }); } }); diff --git a/assets/javascripts/discourse/patrons-route-map.js.es6 b/assets/javascripts/discourse/subscriptions-route-map.js.es6 similarity index 100% rename from assets/javascripts/discourse/patrons-route-map.js.es6 rename to assets/javascripts/discourse/subscriptions-route-map.js.es6 diff --git a/assets/javascripts/discourse/templates/components/payment-options.hbs b/assets/javascripts/discourse/templates/components/payment-options.hbs index 8003a41..62dbd42 100644 --- a/assets/javascripts/discourse/templates/components/payment-options.hbs +++ b/assets/javascripts/discourse/templates/components/payment-options.hbs @@ -1,10 +1,19 @@ - -{{!-- --}} +{{/ds-button}} + +{{#ds-button + id="discourse-subscriptions-payment-type-payment" + selected=false + class="btn-discourse-subscriptions-payment-type" +}} + {{i18n "discourse_subscriptions.payment.purchase"}} +{{/ds-button}}