From a92359e119279d75d7b514cd9407d7b8e8828342 Mon Sep 17 00:00:00 2001 From: Keith Holliday Date: Mon, 9 May 2016 09:02:55 -0500 Subject: [PATCH] Moved markPMSRead to common.ops. Added tests --- common/locales/en/api-v3.json | 3 ++- common/script/index.js | 3 +++ common/script/ops/index.js | 3 +++ common/script/ops/markPMSRead.js | 14 ++++++++++++ .../user/POST-user_mark_pms_read.test.js | 22 +++++++++++++++++++ website/public/js/controllers/footerCtrl.js | 1 - website/public/js/services/userServices.js | 8 +------ website/src/controllers/api-v3/user.js | 4 ++-- 8 files changed, 47 insertions(+), 11 deletions(-) create mode 100644 common/script/ops/markPMSRead.js create mode 100644 test/api/v3/integration/user/POST-user_mark_pms_read.test.js diff --git a/common/locales/en/api-v3.json b/common/locales/en/api-v3.json index 9f0df52127..90729ca72c 100644 --- a/common/locales/en/api-v3.json +++ b/common/locales/en/api-v3.json @@ -171,5 +171,6 @@ "pushDeviceAlreadyAdded": "The user already has the push device", "resetComplete": "Reset completed", "lvl10ChangeClass": "To change class you must be at least level 10.", - "equipmentAlreadyOwned": "You already own that piece of equipment" + "equipmentAlreadyOwned": "You already own that piece of equipment", + "pmsMarkedRead": "Your private messages have been marked as read" } diff --git a/common/script/index.js b/common/script/index.js index 5191ba5802..12f1f81146 100644 --- a/common/script/index.js +++ b/common/script/index.js @@ -147,6 +147,7 @@ import deletePM from './ops/deletePM'; import reroll from './ops/reroll'; import addPushDevice from './ops/addPushDevice'; import reset from './ops/reset'; +import markPmsRead from './ops/markPmsRead'; api.ops = { scoreTask, @@ -187,6 +188,7 @@ api.ops = { reroll, addPushDevice, reset, + markPmsRead, }; /* @@ -288,6 +290,7 @@ api.wrap = function wrapUser (user, main = true) { readCard: _.partial(importedOps.readCard, user), openMysteryItem: _.partial(importedOps.openMysteryItem, user), score: _.partial(importedOps.scoreTask, user), + markPmsRead: _.partial(importedOps.markPmsRead, user), }; } diff --git a/common/script/ops/index.js b/common/script/ops/index.js index 4b06ac93e6..c70cc4860e 100644 --- a/common/script/ops/index.js +++ b/common/script/ops/index.js @@ -46,6 +46,8 @@ import allocate from './allocate'; import readCard from './readCard'; import openMysteryItem from './openMysteryItem'; import scoreTask from './scoreTask'; +import markPmsRead from './markPmsRead'; + module.exports = { update, @@ -96,4 +98,5 @@ module.exports = { readCard, openMysteryItem, scoreTask, + markPmsRead, }; diff --git a/common/script/ops/markPMSRead.js b/common/script/ops/markPMSRead.js new file mode 100644 index 0000000000..add9f49de5 --- /dev/null +++ b/common/script/ops/markPMSRead.js @@ -0,0 +1,14 @@ +import i18n from '../i18n'; + +module.exports = function markPmsRead (user, req = {}) { + user.inbox.newMessages = 0; + + if (req.v2 === true) { + return user; + } else { + return [ + user.inbox.newMessages, + i18n.t('pmsMarkedRead'), + ]; + } +}; diff --git a/test/api/v3/integration/user/POST-user_mark_pms_read.test.js b/test/api/v3/integration/user/POST-user_mark_pms_read.test.js new file mode 100644 index 0000000000..e7fc68c04d --- /dev/null +++ b/test/api/v3/integration/user/POST-user_mark_pms_read.test.js @@ -0,0 +1,22 @@ +import { + generateUser, +} from '../../../../helpers/api-integration/v3'; + +describe('POST /user/mark-pms-read', () => { + let user; + + beforeEach(async () => { + user = await generateUser(); + }); + + // More tests in common code unit tests + + it('marks user\'s private messages as read', async () => { + await user.update({ + 'inbox.newMessages': 1, + }); + let res = await user.post('/user/mark-pms-read'); + await user.sync(); + expect(user.inbox.newMessages).to.equal(0); + }); +}); diff --git a/website/public/js/controllers/footerCtrl.js b/website/public/js/controllers/footerCtrl.js index 7307adaee7..694a2b2b65 100644 --- a/website/public/js/controllers/footerCtrl.js +++ b/website/public/js/controllers/footerCtrl.js @@ -92,7 +92,6 @@ function($scope, $rootScope, User, $http, Notification, ApiUrl, Social) { $scope.addHourglass = function(){ User.addHourglass(); - //User.log({}); }; $scope.addGold = function(){ diff --git a/website/public/js/services/userServices.js b/website/public/js/services/userServices.js index bf2466c9a0..627c287786 100644 --- a/website/public/js/services/userServices.js +++ b/website/public/js/services/userServices.js @@ -199,13 +199,7 @@ angular.module('habitrpg') }, clearNewMessages: function () { - $http({ - method: "POST", - url: 'api/v3/user/mark-pms-read', - }) - .then(function (response) { - sync(); - }) + callOpsFunctionAndRequest('markPmsRead', 'mark-pms-read', "POST"); }, clearPMs: function () { diff --git a/website/src/controllers/api-v3/user.js b/website/src/controllers/api-v3/user.js index fc375687ae..6fde08585c 100644 --- a/website/src/controllers/api-v3/user.js +++ b/website/src/controllers/api-v3/user.js @@ -1189,9 +1189,9 @@ api.markPmsRead = { url: '/user/mark-pms-read', async handler (req, res) { let user = res.locals.user; - user.inbox.newMessages = 0; + let markPmsResponse = common.ops.markPmsRead(user, req); await user.save(); - res.respond(200, user.inbox.newMessages); + res.respond(200, markPmsResponse); }, };