From 95ea73d4407cbf57f34deb4d73bcf66276ee3b88 Mon Sep 17 00:00:00 2001 From: Keith Holliday Date: Tue, 22 Mar 2016 15:35:20 -0500 Subject: [PATCH] Fixed route namespace and added translation strings --- common/locales/en/api-v3.json | 5 ++- .../members/POST-send_private_message.test.js | 42 ++++++++++++------- website/src/controllers/api-v3/members.js | 4 +- website/src/models/user.js | 13 +++++- 4 files changed, 45 insertions(+), 19 deletions(-) diff --git a/common/locales/en/api-v3.json b/common/locales/en/api-v3.json index 2a1cf8319c..9c54090f5b 100644 --- a/common/locales/en/api-v3.json +++ b/common/locales/en/api-v3.json @@ -121,5 +121,8 @@ "cannoyBuyItem": "You can't buy this item", "messageRequired": "A message is required.", "toUserIDRequired": "A toUserId is required", - "notAuthorizedToSendMessageToThisUser": "Can't send message to this user." + "notAuthorizedToSendMessageToThisUser": "Can't send message to this user.", + "privateMessageGiftIntro": "Hello <%= receiverName %>, <%= senderName %> has sent you ", + "privateMessageGiftGemsMessage": "<%= gemAmount %> gems! ", + "privateMessageGiftSubscriptionMessage": "<%= numberOfMonths %> months of subscription! " } diff --git a/test/api/v3/integration/members/POST-send_private_message.test.js b/test/api/v3/integration/members/POST-send_private_message.test.js index 013f741708..3666633d4b 100644 --- a/test/api/v3/integration/members/POST-send_private_message.test.js +++ b/test/api/v3/integration/members/POST-send_private_message.test.js @@ -4,7 +4,7 @@ import { } from '../../../../helpers/api-v3-integration.helper'; import { v4 as generateUUID } from 'uuid'; -describe('POST /send-private-message', () => { +describe('POST /members/send-private-message', () => { let userToSendMessage; let messageToSend = { message: 'Test Private Message' }; @@ -13,7 +13,7 @@ describe('POST /send-private-message', () => { }); it('returns error when message is not provided', async () => { - await expect(userToSendMessage.post('/send-private-message')) + await expect(userToSendMessage.post('/members/send-private-message')) .to.eventually.be.rejected.and.eql({ code: 400, error: 'BadRequest', @@ -22,7 +22,7 @@ describe('POST /send-private-message', () => { }); it('returns error when toUserId is not provided', async () => { - await expect(userToSendMessage.post('/send-private-message', { + await expect(userToSendMessage.post('/members/send-private-message', { message: messageToSend, })).to.eventually.be.rejected.and.eql({ code: 400, @@ -32,7 +32,7 @@ describe('POST /send-private-message', () => { }); it('returns error when to user is not found', async () => { - await expect(userToSendMessage.post('/send-private-message', { + await expect(userToSendMessage.post('/members/send-private-message', { message: messageToSend, toUserId: generateUUID(), })).to.eventually.be.rejected.and.eql({ @@ -45,7 +45,7 @@ describe('POST /send-private-message', () => { it('returns error when to user has blocked the sender', async () => { let receiver = await generateUser({'inbox.blocks': [userToSendMessage._id]}); - await expect(userToSendMessage.post('/send-private-message', { + await expect(userToSendMessage.post('/members/send-private-message', { message: messageToSend, toUserId: receiver._id, })).to.eventually.be.rejected.and.eql({ @@ -59,7 +59,7 @@ describe('POST /send-private-message', () => { let receiver = await generateUser(); let sender = await generateUser({'inbox.blocks': [receiver._id]}); - await expect(sender.post('/send-private-message', { + await expect(sender.post('/members/send-private-message', { message: messageToSend, toUserId: receiver._id, })).to.eventually.be.rejected.and.eql({ @@ -72,7 +72,7 @@ describe('POST /send-private-message', () => { it('returns error when to user has opted out of messaging', async () => { let receiver = await generateUser({'inbox.optOut': true}); - await expect(userToSendMessage.post('/send-private-message', { + await expect(userToSendMessage.post('/members/send-private-message', { message: messageToSend, toUserId: receiver._id, })).to.eventually.be.rejected.and.eql({ @@ -85,7 +85,7 @@ describe('POST /send-private-message', () => { it('sends a private message to a user', async () => { let receiver = await generateUser(); - await userToSendMessage.post('/send-private-message', { + await userToSendMessage.post('/members/send-private-message', { message: messageToSend, toUserId: receiver._id, }); @@ -115,7 +115,7 @@ describe('POST /send-private-message', () => { message: 'Test Message About Gems', }; - await userToSendMessage.post('/send-private-message', { + await userToSendMessage.post('/members/send-private-message', { message: messageAboutGemsToSend, toUserId: receiver._id, }); @@ -131,10 +131,17 @@ describe('POST /send-private-message', () => { return message.uuid === receiver._id; }); + let messageSentContent = t('privateMessageGiftIntro', { + receiverName: receiver.profile.name, + senderName: userToSendMessage.profile.name, + }); + messageSentContent += t('privateMessageGiftGemsMessage', {gemAmount: messageAboutGemsToSend.gems.amount}); + messageSentContent += messageAboutGemsToSend.message; + expect(sendersMessageInReceiversInbox).to.exist; - expect(sendersMessageInReceiversInbox.text).to.equal(`Hello ${receiver.profile.name}, ${userToSendMessage.profile.name} has sent you ${messageAboutGemsToSend.gems.amount} gems! ${messageAboutGemsToSend.message}`); + expect(sendersMessageInReceiversInbox.text).to.equal(messageSentContent); expect(sendersMessageInSendersInbox).to.exist; - expect(sendersMessageInSendersInbox.text).to.equal(`Hello ${receiver.profile.name}, ${userToSendMessage.profile.name} has sent you ${messageAboutGemsToSend.gems.amount} gems! ${messageAboutGemsToSend.message}`); + expect(sendersMessageInSendersInbox.text).to.equal(messageSentContent); }); it('sends a private message about subscriptions to a user', async () => { @@ -147,7 +154,7 @@ describe('POST /send-private-message', () => { message: 'Test Message About Subscription', }; - await userToSendMessage.post('/send-private-message', { + await userToSendMessage.post('/members/send-private-message', { message: messageAboutSubscriptionToSend, toUserId: receiver._id, }); @@ -163,9 +170,16 @@ describe('POST /send-private-message', () => { return message.uuid === receiver._id; }); + let messageSentContent = t('privateMessageGiftIntro', { + receiverName: receiver.profile.name, + senderName: userToSendMessage.profile.name, + }); + messageSentContent += t('privateMessageGiftSubscriptionMessage', {numberOfMonths: 12}); + messageSentContent += messageAboutSubscriptionToSend.message; + expect(sendersMessageInReceiversInbox).to.exist; - expect(sendersMessageInReceiversInbox.text).to.equal(`Hello ${receiver.profile.name}, ${userToSendMessage.profile.name} has sent you 12 months of subscription! ${messageAboutSubscriptionToSend.message}`); + expect(sendersMessageInReceiversInbox.text).to.equal(messageSentContent); expect(sendersMessageInSendersInbox).to.exist; - expect(sendersMessageInSendersInbox.text).to.equal(`Hello ${receiver.profile.name}, ${userToSendMessage.profile.name} has sent you 12 months of subscription! ${messageAboutSubscriptionToSend.message}`); + expect(sendersMessageInSendersInbox.text).to.equal(messageSentContent); }); }); diff --git a/website/src/controllers/api-v3/members.js b/website/src/controllers/api-v3/members.js index 36533968d5..6445e3a049 100644 --- a/website/src/controllers/api-v3/members.js +++ b/website/src/controllers/api-v3/members.js @@ -237,7 +237,7 @@ api.getChallengeMemberProgress = { }; /** - * @api {posts} /send-private-message Get a challenge member progress + * @api {posts} /members/send-private-message Get a challenge member progress * @apiVersion 3.0.0 * @apiName SendPrivateMessage * @apiGroup Members @@ -249,7 +249,7 @@ api.getChallengeMemberProgress = { */ api.sendPrivateMessage = { method: 'POST', - url: '/send-private-message', + url: '/members/send-private-message', middlewares: [authWithHeaders(), cron], async handler (req, res) { req.checkBody('message', res.t('messageRequired')).notEmpty(); diff --git a/website/src/models/user.js b/website/src/models/user.js index 9ab410e6d3..63374a331e 100644 --- a/website/src/models/user.js +++ b/website/src/models/user.js @@ -715,8 +715,17 @@ schema.methods.sendMessage = async function sendMessage (userToReceiveMessage, m if (!messageData.type) { msg = messageData.message; } else { - msg = `Hello ${userToReceiveMessage.profile.name }, ${sender.profile.name} has sent you `; - msg += messageData.type === 'gems' ? `${messageData.gems.amount} gems! ` : `${shared.content.subscriptionBlocks[messageData.subscription.key].months} months of subscription! `; + msg = shared.i18n.t('privateMessageGiftIntro', { + receiverName: userToReceiveMessage.profile.name, + senderName: sender.profile.name, + }); + + if (messageData.type === 'gems') { + msg += shared.i18n.t('privateMessageGiftGemsMessage', {gemAmount: messageData.gems.amount}); + } else { + msg += shared.i18n.t('privateMessageGiftSubscriptionMessage', {numberOfMonths: shared.content.subscriptionBlocks[messageData.subscription.key].months}); + } + msg += messageData.message; }