diff --git a/website/server/libs/payments/amazon.js b/website/server/libs/payments/amazon.js index b190dd5a7f..3425fd6127 100644 --- a/website/server/libs/payments/amazon.js +++ b/website/server/libs/payments/amazon.js @@ -18,7 +18,6 @@ import { // eslint-disable-line import/no-cycle } from '../../models/group'; import { model as Coupon } from '../../models/coupon'; import { getGemsBlock } from './gems'; // eslint-disable-line import/no-cycle -import promoSubscription from './promoSubscription'; // eslint-disable-line import/no-cycle // TODO better handling of errors @@ -186,8 +185,6 @@ api.checkout = async function checkout (options = {}) { gift.member = await User.findById(gift.uuid).exec(); data.gift = gift; data.paymentMethod = this.constants.PAYMENT_METHOD_GIFT; - - promoSubscription(data); } await payments[method](data); diff --git a/website/server/libs/payments/apple.js b/website/server/libs/payments/apple.js index 021c590387..c9517784fe 100644 --- a/website/server/libs/payments/apple.js +++ b/website/server/libs/payments/apple.js @@ -9,7 +9,6 @@ import { } from '../errors'; import { model as IapPurchaseReceipt } from '../../models/iapPurchaseReceipt'; import { model as User } from '../../models/user'; -import promoSubscription from './promoSubscription'; // eslint-disable-line import/no-cycle const api = {}; @@ -237,8 +236,6 @@ api.noRenewSubscribe = async function noRenewSubscribe (options) { gift.subscription = sub; data.gift = gift; data.paymentMethod = this.constants.PAYMENT_METHOD_GIFT; - - promoSubscription(data); } await payments.createSubscription(data); diff --git a/website/server/libs/payments/google.js b/website/server/libs/payments/google.js index 6cb70b7470..346dae981e 100644 --- a/website/server/libs/payments/google.js +++ b/website/server/libs/payments/google.js @@ -9,7 +9,6 @@ import { import { model as IapPurchaseReceipt } from '../../models/iapPurchaseReceipt'; import { model as User } from '../../models/user'; import { getGemsBlock } from './gems'; -import promoSubscription from './promoSubscription'; // eslint-disable-line import/no-cycle const api = {}; @@ -219,8 +218,6 @@ api.noRenewSubscribe = async function noRenewSubscribe (options) { gift.subscription = sub; data.gift = gift; data.paymentMethod = this.constants.PAYMENT_METHOD_GIFT; - - promoSubscription(data); } await payments.createSubscription(data); diff --git a/website/server/libs/payments/paypal.js b/website/server/libs/payments/paypal.js index 8191a3644a..e87fa5e99c 100644 --- a/website/server/libs/payments/paypal.js +++ b/website/server/libs/payments/paypal.js @@ -11,7 +11,6 @@ import payments from './payments'; // eslint-disable-line import/no-cycle import { getGemsBlock } from './gems'; // eslint-disable-line import/no-cycle import { model as Coupon } from '../../models/coupon'; import { model as User } from '../../models/user'; // eslint-disable-line import/no-cycle -import promoSubscription from './promoSubscription'; // eslint-disable-line import/no-cycle import { // eslint-disable-line import/no-cycle model as Group, basicFields as basicGroupFields, @@ -163,8 +162,6 @@ api.checkoutSuccess = async function checkoutSuccess (options = {}) { data.paymentMethod = 'PayPal (Gift)'; data.gift = gift; - - promoSubscription(data); } else { data.gemsBlock = getGemsBlock(gemsBlockKey); } diff --git a/website/server/libs/payments/promoSubscription.js b/website/server/libs/payments/promoSubscription.js deleted file mode 100644 index c16fedd99d..0000000000 --- a/website/server/libs/payments/promoSubscription.js +++ /dev/null @@ -1,22 +0,0 @@ -import { getCurrentEvent } from '../worldState'; // eslint-disable-line import/no-cycle -import createSubscription from './payments'; // eslint-disable-line import/no-cycle - -const currentEvent = getCurrentEvent(); - -export default async function promoSubscription (data) { - if (currentEvent && currentEvent.promo && currentEvent.promo === 'g1g1') { - const promoData = { - user: data.user, - gift: { - member: data.user, - subscription: { - key: data.gift.subscription.key, - }, - }, - paymentMethod: data.paymentMethod, - promo: 'Winter', - promoUsername: data.gift.member.auth.local.username, - }; - await createSubscription(promoData); - } -} diff --git a/website/server/libs/payments/stripe/checkout.js b/website/server/libs/payments/stripe/checkout.js index a727571a91..fc225493ac 100644 --- a/website/server/libs/payments/stripe/checkout.js +++ b/website/server/libs/payments/stripe/checkout.js @@ -15,7 +15,6 @@ import { import payments from '../payments'; // eslint-disable-line import/no-cycle import { getGemsBlock } from '../gems'; // eslint-disable-line import/no-cycle import stripeConstants from './constants'; -import promoSubscription from '../promoSubscription'; // eslint-disable-line import/no-cycle function getGiftAmount (gift) { if (gift.type === 'subscription') { @@ -99,8 +98,6 @@ async function applyGemPayment (user, response, gemsBlock, gift) { if (gift) { if (gift.type === 'subscription') method = 'createSubscription'; data.paymentMethod = 'Gift'; - - promoSubscription(data); } await payments[method](data); diff --git a/website/server/libs/payments/subscriptions.js b/website/server/libs/payments/subscriptions.js index aef10bb191..72e120e9ff 100644 --- a/website/server/libs/payments/subscriptions.js +++ b/website/server/libs/payments/subscriptions.js @@ -18,6 +18,7 @@ import { import shared from '../../../common'; import { sendNotification as sendPushNotification } from '../pushNotifications'; // eslint-disable-line import/no-cycle import calculateSubscriptionTerminationDate from './calculateSubscriptionTerminationDate'; +import { getCurrentEvent } from '../worldState'; // eslint-disable-line import/no-cycle // @TODO: Abstract to shared/constant const JOINED_GROUP_PLAN = 'joined group plan'; @@ -243,6 +244,23 @@ async function createSubscription (data) { // Only send push notifications if sending to a user other than yourself if (data.gift.member._id !== data.user._id) { + const currentEvent = getCurrentEvent(); + if (currentEvent && currentEvent.promo && currentEvent.promo === 'g1g1') { + const promoData = { + user: data.user, + gift: { + member: data.user, + subscription: { + key: data.gift.subscription.key, + }, + }, + paymentMethod: data.paymentMethod, + promo: 'Winter', + promoUsername: data.gift.member.auth.local.username, + }; + await this.createSubscription(promoData); + } + if (data.gift.member.preferences.pushNotifications.giftedSubscription !== false) { sendPushNotification(data.gift.member, {