diff --git a/app/controllers/project/donate.js b/app/controllers/project/donate.js index 08e149c1d..9f540d080 100644 --- a/app/controllers/project/donate.js +++ b/app/controllers/project/donate.js @@ -6,6 +6,7 @@ const { Controller, computed: { alias, bool, not }, get, + getProperties, inject: { service }, set, RSVP @@ -119,11 +120,9 @@ export default Controller.extend({ // subscription _createSubscription(quantity) { - let user = get(this, 'user'); - let stripeConnectPlan = get(this, 'project.stripeConnectPlan'); - let store = get(this, 'store'); + let { project, store, user } = getProperties(this, 'project', 'store', 'user'); - return store.createRecord('stripe-connect-subscription', { quantity, user, stripeConnectPlan }) + return store.createRecord('stripe-connect-subscription', { project, quantity, user }) .save() .then((record) =>RSVP.resolve(record)) .catch((response) => this._handleSubscriptionCreationError(response)); diff --git a/app/models/stripe-connect-subscription.js b/app/models/stripe-connect-subscription.js index 4c3ab14f0..a323d456c 100644 --- a/app/models/stripe-connect-subscription.js +++ b/app/models/stripe-connect-subscription.js @@ -5,6 +5,6 @@ import { belongsTo } from 'ember-data/relationships'; export default Model.extend({ quantity: attr('dollar-cents'), - stripeConnectPlan: belongsTo('stripe-connect-plan', { async: true }), + project: belongsTo('project', { async: true }), user: belongsTo('user', { async: true }) }); diff --git a/app/services/user-subscriptions.js b/app/services/user-subscriptions.js index eb43f38d0..dad72b131 100644 --- a/app/services/user-subscriptions.js +++ b/app/services/user-subscriptions.js @@ -17,11 +17,9 @@ export default Service.extend({ let user = this.get('user'); if (user) { - let subscriptions = user.get('stripeConnectSubscriptions'); - let planId = project.belongsTo('stripeConnectPlan').id(); - return RSVP.hash({ subscriptions, planId }).then(({ subscriptions, planId }) => { + return user.get('stripeConnectSubscriptions').then((subscriptions) => { let subscription = subscriptions.find((subscription) => { - return subscription.belongsTo('stripeConnectPlan').id() === planId; + return subscription.belongsTo('project').id() === project.id; }); return RSVP.resolve(subscription); }); diff --git a/config/environment.js b/config/environment.js index f84b21cb2..fa3da8569 100644 --- a/config/environment.js +++ b/config/environment.js @@ -84,7 +84,7 @@ module.exports = function(environment) { ENV.sentry.development = true; - ENV.stripe.publishableKey = 'pk_test_uulykWQvn6axvKzslwN8lqby'; + ENV.stripe.publishableKey = 'pk_test_POrczFzlcBoJtYlOj6dFLNOl'; ENV['ember-cli-mirage'] = { enabled: false diff --git a/mirage/models/stripe-connect-subscription.js b/mirage/models/stripe-connect-subscription.js index 58d5eb137..c0ec8e611 100644 --- a/mirage/models/stripe-connect-subscription.js +++ b/mirage/models/stripe-connect-subscription.js @@ -2,6 +2,5 @@ import { Model, belongsTo } from 'ember-cli-mirage'; export default Model.extend({ project: belongsTo(), - stripeConnectPlan: belongsTo(), user: belongsTo() }); diff --git a/tests/acceptance/project-donate-test.js b/tests/acceptance/project-donate-test.js index 401b70cfc..895bb77f5 100644 --- a/tests/acceptance/project-donate-test.js +++ b/tests/acceptance/project-donate-test.js @@ -95,9 +95,9 @@ test('It redirects to project route if already a subscriber, with a flash', func let organization = createOrganizationWithSluggedRoute(); let project = server.create('project', { organization }); - let stripeConnectPlan = project.createStripeConnectPlan({ project }); + project.createStripeConnectPlan({ project }); - server.create('stripeConnectSubscription', { stripeConnectPlan, user }); + server.create('stripeConnectSubscription', { project, user }); projectDonatePage.visit({ amount: 10, @@ -121,7 +121,7 @@ test('Allows creating a card and donating (creating a subscription)', function(a let organization = createOrganizationWithSluggedRoute(); let project = server.create('project', { organization }); - let plan = project.createStripeConnectPlan(); + project.createStripeConnectPlan(); projectDonatePage.visit({ amount: 10, @@ -154,7 +154,7 @@ test('Allows creating a card and donating (creating a subscription)', function(a let subscription = server.schema.stripeConnectSubscriptions.findBy({ quantity: 1000 }); assert.ok(subscription, 'Subscription was created sucessfully.'); assert.equal(subscription.userId, user.id, 'User was set to current user.'); - assert.equal(subscription.stripeConnectPlanId, plan.id, 'Plan was set.'); + assert.equal(subscription.projectId, project.id, 'Project was set.'); assert.equal(currentRouteName(), 'project.thank-you', 'User was redirected to the thank you route.'); }); }); diff --git a/tests/unit/models/stripe-connect-subscription-test.js b/tests/unit/models/stripe-connect-subscription-test.js index fe985490d..170b68e7d 100644 --- a/tests/unit/models/stripe-connect-subscription-test.js +++ b/tests/unit/models/stripe-connect-subscription-test.js @@ -4,7 +4,7 @@ import { testForBelongsTo } from 'code-corps-ember/tests/helpers/relationship'; moduleForModel('stripe-connect-subscription', 'Unit | Model | stripe connect subscription', { needs: [ - 'model:stripe-connect-plan', + 'model:project', 'model:user' ] }); @@ -16,5 +16,5 @@ test('it exists', function(assert) { testForAttributes('stripe-connect-subscription', ['quantity']); -testForBelongsTo('stripe-connect-subscription', 'stripeConnectPlan'); +testForBelongsTo('stripe-connect-subscription', 'project'); testForBelongsTo('stripe-connect-subscription', 'user'); diff --git a/yarn.lock b/yarn.lock index 60363b39e..df71fea53 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2272,9 +2272,9 @@ ember-autoresize@0.5.20: dependencies: ember-cli-babel "^5.1.6" -ember-can@0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/ember-can/-/ember-can-0.8.1.tgz#f2000b7bdfa8b4a278b941d4e72cea06df5560ef" +ember-can@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/ember-can/-/ember-can-0.8.2.tgz#02eb6ffdb0df9064cb0b6cab63c1c8c5da537fba" dependencies: ember-cli-babel "^5.1.5"