Revert "WIP: Buy-1-Get-1 Gift Subs (#9719)"

This reverts commit dc3d694d0e, with the exception of locale strings that need not be purged.
This commit is contained in:
SabreCat
2018-01-12 21:15:42 +00:00
parent 9545f692ef
commit 0ca2f9034f
6 changed files with 40 additions and 147 deletions

View File

@@ -209,7 +209,7 @@ describe('payments/index', () => {
await api.createSubscription(data); await api.createSubscription(data);
let msg = '\`Hello recipient, sender has sent you 3 months of subscription!\`'; let msg = '\`Hello recipient, sender has sent you 3 months of subscription!\`';
expect(user.sendMessage).to.be.calledTwice; expect(user.sendMessage).to.be.calledOnce;
expect(user.sendMessage).to.be.calledWith(recipient, { receiverMsg: msg, senderMsg: msg }); expect(user.sendMessage).to.be.calledWith(recipient, { receiverMsg: msg, senderMsg: msg });
}); });
@@ -247,77 +247,6 @@ describe('payments/index', () => {
}, },
}); });
}); });
context('Winter 2017-18 Gift-1-Get-1 Promotion', async () => {
it('creates a gift subscription for purchaser and recipient if none exist', async () => {
await api.createSubscription(data);
expect(user.items.pets['Jackalope-RoyalPurple']).to.eql(5);
expect(user.purchased.plan.customerId).to.eql('Gift');
expect(user.purchased.plan.dateTerminated).to.exist;
expect(user.purchased.plan.dateUpdated).to.exist;
expect(user.purchased.plan.dateCreated).to.exist;
expect(recipient.items.pets['Jackalope-RoyalPurple']).to.eql(5);
expect(recipient.purchased.plan.customerId).to.eql('Gift');
expect(recipient.purchased.plan.dateTerminated).to.exist;
expect(recipient.purchased.plan.dateUpdated).to.exist;
expect(recipient.purchased.plan.dateCreated).to.exist;
});
it('adds extraMonths to existing subscription for purchaser and creates a gift subscription for recipient without sub', async () => {
user.purchased.plan = plan;
expect(user.purchased.plan.extraMonths).to.eql(0);
await api.createSubscription(data);
expect(user.purchased.plan.extraMonths).to.eql(3);
expect(recipient.items.pets['Jackalope-RoyalPurple']).to.eql(5);
expect(recipient.purchased.plan.customerId).to.eql('Gift');
expect(recipient.purchased.plan.dateTerminated).to.exist;
expect(recipient.purchased.plan.dateUpdated).to.exist;
expect(recipient.purchased.plan.dateCreated).to.exist;
});
it('adds extraMonths to existing subscription for recipient and creates a gift subscription for purchaser without sub', async () => {
recipient.purchased.plan = plan;
expect(recipient.purchased.plan.extraMonths).to.eql(0);
await api.createSubscription(data);
expect(recipient.purchased.plan.extraMonths).to.eql(3);
expect(user.items.pets['Jackalope-RoyalPurple']).to.eql(5);
expect(user.purchased.plan.customerId).to.eql('Gift');
expect(user.purchased.plan.dateTerminated).to.exist;
expect(user.purchased.plan.dateUpdated).to.exist;
expect(user.purchased.plan.dateCreated).to.exist;
});
it('adds extraMonths to existing subscriptions for purchaser and recipient', async () => {
user.purchased.plan = plan;
recipient.purchased.plan = plan;
expect(user.purchased.plan.extraMonths).to.eql(0);
expect(recipient.purchased.plan.extraMonths).to.eql(0);
await api.createSubscription(data);
expect(user.purchased.plan.extraMonths).to.eql(3);
expect(recipient.purchased.plan.extraMonths).to.eql(3);
});
it('sends a private message about the promotion', async () => {
await api.createSubscription(data);
let msg = '\`Hello sender, you received 3 months of subscription as part of our holiday gift-giving promotion!\`';
expect(user.sendMessage).to.be.calledTwice;
expect(user.sendMessage).to.be.calledWith(user, { senderMsg: msg });
});
});
}); });
context('Purchasing a subscription for self', () => { context('Purchasing a subscription for self', () => {

View File

@@ -31,17 +31,11 @@ b-modal#send-gems(:title="title", :hide-footer="true", size='lg')
) )
h3.panel-heading {{ $t('subscription') }} h3.panel-heading {{ $t('subscription') }}
.panel-body .panel-body
.row .form-group
.col-md-4 .radio(v-for='block in subscriptionBlocks', v-if="block.target !== 'group' && block.canSubscribe === true")
.form-group label
.radio(v-for='block in subscriptionBlocks', v-if="block.target !== 'group' && block.canSubscribe === true") input(type="radio", name="subRadio", :value="block.key", v-model='gift.subscription.key')
label | {{ $t('sendGiftSubscription', {price: block.price, months: block.months}) }}
input(type="radio", name="subRadio", :value="block.key", v-model='gift.subscription.key')
| {{ $t('sendGiftSubscription', {price: block.price, months: block.months}) }}
.col-md-8
h4 {{ $t('winterPromoGiftHeader') }}
p {{ $t('winterPromoGiftDetails1') }}
p {{ $t('winterPromoGiftDetails2') }}
textarea.form-control(rows='3', v-model='gift.message', :placeholder="$t('sendGiftMessagePlaceholder')") textarea.form-control(rows='3', v-model='gift.message', :placeholder="$t('sendGiftMessagePlaceholder')")
//include ../formatting-help //include ../formatting-help

View File

@@ -90,11 +90,6 @@
li {{ $t('giftSubscriptionText2') }} li {{ $t('giftSubscriptionText2') }}
li {{ $t('giftSubscriptionText3') }} li {{ $t('giftSubscriptionText3') }}
h4 {{ $t('giftSubscriptionText4') }} h4 {{ $t('giftSubscriptionText4') }}
.col-6
h2 {{ $t('winterPromoGiftHeader') }}
p {{ $t('winterPromoGiftDetails1') }}
p {{ $t('winterPromoGiftDetails2') }}
</template> </template>
<style scoped> <style scoped>

View File

@@ -125,8 +125,8 @@
"dateEndOctober": "October 31", "dateEndOctober": "October 31",
"dateEndNovember": "November 30", "dateEndNovember": "November 30",
"dateEndJanuary": "January 31", "dateEndJanuary": "January 31",
"discountBundle": "bundle",
"winterPromoGiftHeader": "GIFT A SUBSCRIPTION AND GET ONE FREE!", "winterPromoGiftHeader": "GIFT A SUBSCRIPTION AND GET ONE FREE!",
"winterPromoGiftDetails1": "Until January 12th only, when you gift somebody a subscription, you get the same subscription for yourself for free!", "winterPromoGiftDetails1": "Until January 12th only, when you gift somebody a subscription, you get the same subscription for yourself for free!",
"winterPromoGiftDetails2": "Please note that if you or your gift recipient already have a recurring subscription, the gifted subscription will only start after that subscription is cancelled or has expired. Thanks so much for your support! <3" "winterPromoGiftDetails2": "Please note that if you or your gift recipient already have a recurring subscription, the gifted subscription will only start after that subscription is cancelled or has expired. Thanks so much for your support! <3",
"discountBundle": "bundle"
} }

View File

@@ -365,59 +365,47 @@ api.createSubscription = async function createSubscription (data) {
txnEmail(data.user, emailType); txnEmail(data.user, emailType);
} }
if (!data.promo) { analytics.trackPurchase({
analytics.trackPurchase({ uuid: data.user._id,
uuid: data.user._id, groupId,
groupId, itemPurchased,
itemPurchased, sku: `${data.paymentMethod.toLowerCase()}-subscription`,
sku: `${data.paymentMethod.toLowerCase()}-subscription`, purchaseType,
purchaseType, paymentMethod: data.paymentMethod,
paymentMethod: data.paymentMethod, quantity: 1,
quantity: 1, gift: Boolean(data.gift),
gift: Boolean(data.gift), purchaseValue: block.price,
purchaseValue: block.price, headers: data.headers,
headers: data.headers, });
});
}
if (!group && !data.promo) data.user.purchased.txnCount++; if (!group) data.user.purchased.txnCount++;
if (data.gift) { if (data.gift) {
let byUserName = getUserInfo(data.user, ['name']).name; let byUserName = getUserInfo(data.user, ['name']).name;
// generate the message in both languages, so both users can understand it // generate the message in both languages, so both users can understand it
let languages = [data.user.preferences.language, data.gift.member.preferences.language]; let languages = [data.user.preferences.language, data.gift.member.preferences.language];
if (data.promo) { let senderMsg = shared.i18n.t('giftedSubscriptionFull', {
let senderMsg = shared.i18n.t(`giftedSubscription${data.promo}Promo`, { username: data.gift.member.profile.name,
username: data.gift.member.profile.name, sender: byUserName,
monthCount: shared.content.subscriptionBlocks[data.gift.subscription.key].months, monthCount: shared.content.subscriptionBlocks[data.gift.subscription.key].months,
}, languages[0]); }, languages[0]);
senderMsg = `\`${senderMsg}\``;
senderMsg = `\`${senderMsg}\``; let receiverMsg = shared.i18n.t('giftedSubscriptionFull', {
data.user.sendMessage(data.gift.member, { senderMsg }); username: data.gift.member.profile.name,
} else { sender: byUserName,
let senderMsg = shared.i18n.t('giftedSubscriptionFull', { monthCount: shared.content.subscriptionBlocks[data.gift.subscription.key].months,
username: data.gift.member.profile.name, }, languages[1]);
sender: byUserName, receiverMsg = `\`${receiverMsg}\``;
monthCount: shared.content.subscriptionBlocks[data.gift.subscription.key].months,
}, languages[0]);
senderMsg = `\`${senderMsg}\``;
let receiverMsg = shared.i18n.t('giftedSubscriptionFull', { if (data.gift.message) {
username: data.gift.member.profile.name, receiverMsg += ` ${data.gift.message}`;
sender: byUserName, senderMsg += ` ${data.gift.message}`;
monthCount: shared.content.subscriptionBlocks[data.gift.subscription.key].months,
}, languages[1]);
receiverMsg = `\`${receiverMsg}\``;
if (data.gift.message) {
receiverMsg += ` ${data.gift.message}`;
senderMsg += ` ${data.gift.message}`;
}
data.user.sendMessage(data.gift.member, { receiverMsg, senderMsg });
} }
data.user.sendMessage(data.gift.member, { receiverMsg, senderMsg });
if (data.gift.member.preferences.emailNotifications.giftedSubscription !== false) { if (data.gift.member.preferences.emailNotifications.giftedSubscription !== false) {
txnEmail(data.gift.member, 'gifted-subscription', [ txnEmail(data.gift.member, 'gifted-subscription', [
{name: 'GIFTER', content: byUserName}, {name: 'GIFTER', content: byUserName},
@@ -425,20 +413,7 @@ api.createSubscription = async function createSubscription (data) {
]); ]);
} }
if (data.gift.member._id !== data.user._id) { // If sending to a user other than yourself, don't push notify, and get bonus sub for self per holiday promo if (data.gift.member._id !== data.user._id) { // Only send push notifications if sending to a user other than yourself
let promoData = {
user: data.user,
gift: {
member: data.user,
subscription: {
key: data.gift.subscription.key,
},
},
paymentMethod: data.paymentMethod,
promo: 'Winter',
};
await this.createSubscription(promoData);
if (data.gift.member.preferences.pushNotifications.giftedSubscription !== false) { if (data.gift.member.preferences.pushNotifications.giftedSubscription !== false) {
sendPushNotification(data.gift.member, sendPushNotification(data.gift.member,
{ {

View File

@@ -77,7 +77,7 @@ function sendSubscriptionNotification ({
let text; let text;
let timestamp = new Date(); let timestamp = new Date();
if (recipient.id) { if (recipient.id) {
text = `${buyer.name} ${buyer.id} ${buyer.email} bought a ${months}-month gift subscription for ${recipient.name} ${recipient.id} ${recipient.email} and got a promo using ${paymentMethod} on ${timestamp}`; text = `${buyer.name} ${buyer.id} ${buyer.email} bought a ${months}-month gift subscription for ${recipient.name} ${recipient.id} ${recipient.email} using ${paymentMethod} on ${timestamp}`;
} else if (groupId) { } else if (groupId) {
text = `${buyer.name} ${buyer.id} ${buyer.email} bought a 1-month recurring group-plan for ${groupId} using ${paymentMethod} on ${timestamp}`; text = `${buyer.name} ${buyer.id} ${buyer.email} bought a 1-month recurring group-plan for ${groupId} using ${paymentMethod} on ${timestamp}`;
} else { } else {