res.respond: allow for thrid parameter (message), refactor shared ops responses and adapt tests
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import _ from 'lodash';
|
||||
import i18n from '../i18n';
|
||||
import splitWhitespace from '../libs/splitWhitespace';
|
||||
import {
|
||||
BadRequest,
|
||||
NotAuthorized,
|
||||
@@ -35,10 +34,8 @@ module.exports = function addPushDevice (user, req = {}) {
|
||||
|
||||
pushDevices.push(item);
|
||||
|
||||
let response = {
|
||||
data: _.pick(user, splitWhitespace('pushDevices')),
|
||||
message: i18n.t('pushDeviceAdded', req.language),
|
||||
};
|
||||
|
||||
return response;
|
||||
return [
|
||||
user.pushDevices,
|
||||
i18n.t('pushDeviceAdded', req.language),
|
||||
];
|
||||
};
|
||||
|
||||
@@ -7,8 +7,7 @@ import {
|
||||
import _ from 'lodash';
|
||||
|
||||
module.exports = function addWebhook (user, req = {}) {
|
||||
let wh;
|
||||
wh = user.preferences.webhooks;
|
||||
let wh = user.preferences.webhooks;
|
||||
|
||||
if (!validator.isURL(_.get(req, 'body.url'))) throw new BadRequest(i18n.t('invalidUrl', req.language));
|
||||
if (!validator.isBoolean(_.get(req, 'body.enabled'))) throw new BadRequest(i18n.t('invalidEnabled', req.language));
|
||||
@@ -18,9 +17,11 @@ module.exports = function addWebhook (user, req = {}) {
|
||||
if (req.v2 === true) {
|
||||
return user.preferences.webhooks;
|
||||
} else {
|
||||
return refPush(wh, {
|
||||
url: req.body.url,
|
||||
enabled: req.body.enabled,
|
||||
});
|
||||
return [
|
||||
refPush(wh, {
|
||||
url: req.body.url,
|
||||
enabled: req.body.enabled,
|
||||
}),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import _ from 'lodash';
|
||||
import splitWhitespace from '../libs/splitWhitespace';
|
||||
import {
|
||||
ATTRIBUTES,
|
||||
} from '../constants';
|
||||
@@ -26,5 +25,7 @@ module.exports = function allocate (user, req = {}) {
|
||||
throw new NotAuthorized(i18n.t('notEnoughAttrPoints', req.language));
|
||||
}
|
||||
|
||||
return _.pick(user, splitWhitespace('stats'));
|
||||
return [
|
||||
user.stats,
|
||||
];
|
||||
};
|
||||
|
||||
@@ -8,8 +8,8 @@ module.exports = function allocateNow (user, req = {}) {
|
||||
if (req.v2 === true) {
|
||||
return _.pick(user, 'stats');
|
||||
} else {
|
||||
return {
|
||||
data: _.pick(user, 'stats'),
|
||||
};
|
||||
return [
|
||||
user.stats,
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -15,5 +15,7 @@ module.exports = function blockUser (user, req = {}) {
|
||||
}
|
||||
|
||||
user.markModified('inbox.blocks');
|
||||
return user.inbox.blocks;
|
||||
return [
|
||||
user.inbox.blocks,
|
||||
];
|
||||
};
|
||||
|
||||
@@ -101,16 +101,15 @@ module.exports = function buyArmoire (user, req = {}, analytics) {
|
||||
});
|
||||
}
|
||||
|
||||
let res = {
|
||||
data: _.pick(user, splitWhitespace('items flags')),
|
||||
message,
|
||||
};
|
||||
|
||||
if (armoireResp) res.armoire = armoireResp;
|
||||
let resData = _.pick(user, splitWhitespace('items flags'));
|
||||
if (armoireResp) resData.armoire = armoireResp;
|
||||
|
||||
if (req.v2 === true) {
|
||||
return res.data;
|
||||
return resData;
|
||||
} else {
|
||||
return res;
|
||||
return [
|
||||
resData,
|
||||
message,
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -59,14 +59,12 @@ module.exports = function buyGear (user, req = {}, analytics) {
|
||||
});
|
||||
}
|
||||
|
||||
let res = {
|
||||
data: _.pick(user, splitWhitespace('items achievements stats flags')),
|
||||
message,
|
||||
};
|
||||
|
||||
if (req.v2 === true) {
|
||||
return res.data;
|
||||
return _.pick(user, splitWhitespace('items achievements stats flags'));
|
||||
} else {
|
||||
return res;
|
||||
return [
|
||||
_.pick(user, splitWhitespace('items achievements stats flags')),
|
||||
message,
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -47,9 +47,9 @@ module.exports = function buyMysterySet (user, req = {}, analytics) {
|
||||
if (req.v2 === true) {
|
||||
return pickDeep(user, splitWhitespace('items purchased.plan.consecutive'));
|
||||
} else {
|
||||
return {
|
||||
data: pickDeep(user, splitWhitespace('items purchased.plan.consecutive')),
|
||||
message: i18n.t('hourglassPurchaseSet', req.language),
|
||||
};
|
||||
return [
|
||||
{ items: user.items, purchasedPlanConsecutive: user.purchased.plan.consecutive },
|
||||
i18n.t('hourglassPurchaseSet', req.language),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
import content from '../content/index';
|
||||
import i18n from '../i18n';
|
||||
import _ from 'lodash';
|
||||
import splitWhitespace from '../libs/splitWhitespace';
|
||||
import {
|
||||
NotAuthorized,
|
||||
} from '../libs/errors';
|
||||
@@ -39,14 +37,12 @@ module.exports = function buyPotion (user, req = {}, analytics) {
|
||||
});
|
||||
}
|
||||
|
||||
let res = {
|
||||
data: _.pick(user, splitWhitespace('stats')),
|
||||
message,
|
||||
};
|
||||
|
||||
if (req.v2 === true) {
|
||||
return res.data;
|
||||
return user.stats;
|
||||
} else {
|
||||
return res;
|
||||
return [
|
||||
user.stats,
|
||||
message,
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -40,11 +40,11 @@ module.exports = function buyQuest (user, req = {}, analytics) {
|
||||
if (req.v2 === true) {
|
||||
return user.items.quests;
|
||||
} else {
|
||||
return {
|
||||
data: user.items.quests,
|
||||
message: i18n.t('messageBought', {
|
||||
return [
|
||||
user.items.quests,
|
||||
i18n.t('messageBought', {
|
||||
itemText: item.text(req.language),
|
||||
}, req.language),
|
||||
};
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -25,11 +25,11 @@ module.exports = function buySpecialSpell (user, req = {}) {
|
||||
if (req.v2 === true) {
|
||||
return _.pick(user, splitWhitespace('items stats'));
|
||||
} else {
|
||||
return {
|
||||
data: _.pick(user, splitWhitespace('items stats')),
|
||||
message: i18n.t('messageBought', {
|
||||
return [
|
||||
_.pick(user, splitWhitespace('items stats')),
|
||||
i18n.t('messageBought', {
|
||||
itemText: item.text(req.language),
|
||||
}, req.language),
|
||||
};
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -71,8 +71,8 @@ module.exports = function changeClass (user, req = {}, analytics) {
|
||||
if (req.v2 === true) {
|
||||
return _.pick(user, splitWhitespace('stats flags items preferences'));
|
||||
} else {
|
||||
return {
|
||||
data: _.pick(user, splitWhitespace('stats flags items preferences')),
|
||||
};
|
||||
return [
|
||||
_.pick(user, splitWhitespace('stats flags items preferences')),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
module.exports = function clearPMs (user) {
|
||||
user.inbox.messages = {};
|
||||
user.markModified('inbox.messages');
|
||||
return user.inbox.messages;
|
||||
return [
|
||||
user.inbox.messages,
|
||||
];
|
||||
};
|
||||
|
||||
@@ -3,5 +3,7 @@ import _ from 'lodash';
|
||||
module.exports = function deletePM (user, req = {}) {
|
||||
delete user.inbox.messages[_.get(req, 'params.id')];
|
||||
user.markModified(`inbox.messages.${req.params.id}`);
|
||||
return user.inbox.messages;
|
||||
return [
|
||||
user.inbox.messages,
|
||||
];
|
||||
};
|
||||
|
||||
@@ -4,5 +4,7 @@ module.exports = function deleteWebhook (user, req) {
|
||||
delete user.preferences.webhooks[_.get(req, 'params.id')];
|
||||
user.markModified('preferences.webhooks');
|
||||
|
||||
return user.preferences.webhooks;
|
||||
return [
|
||||
user.preferences.webhooks,
|
||||
];
|
||||
};
|
||||
|
||||
@@ -13,8 +13,8 @@ module.exports = function disableClasses (user, req = {}) {
|
||||
if (req.v2 === true) {
|
||||
return _.pick(user, splitWhitespace('stats flags preferences'));
|
||||
} else {
|
||||
return {
|
||||
data: _.pick(user, splitWhitespace('stats flags preferences')),
|
||||
};
|
||||
return [
|
||||
_.pick(user, splitWhitespace('stats flags preferences')),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -58,14 +58,11 @@ module.exports = function equip (user, req = {}) {
|
||||
}
|
||||
}
|
||||
|
||||
let res = {
|
||||
data: user.items,
|
||||
};
|
||||
if (message) res.message = message;
|
||||
|
||||
if (req.v2 === true) {
|
||||
return user.items;
|
||||
} else {
|
||||
let res = [user.items];
|
||||
if (message) res.push(message);
|
||||
return res;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -94,9 +94,9 @@ module.exports = function feed (user, req = {}) {
|
||||
value: userPets[pet],
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
data: userPets[pet],
|
||||
return [
|
||||
userPets[pet],
|
||||
message,
|
||||
};
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -36,9 +36,9 @@ module.exports = function hatch (user, req = {}) {
|
||||
if (req.v2 === true) {
|
||||
return user.items;
|
||||
} else {
|
||||
return {
|
||||
message: i18n.t('messageHatched', req.language),
|
||||
data: user.items,
|
||||
};
|
||||
return [
|
||||
user.items,
|
||||
i18n.t('messageHatched', req.language),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
import content from '../content/index';
|
||||
import i18n from '../i18n';
|
||||
import _ from 'lodash';
|
||||
import splitWhitespace from '../libs/splitWhitespace';
|
||||
import pickDeep from '../libs/pickDeep';
|
||||
import {
|
||||
BadRequest,
|
||||
NotAuthorized,
|
||||
} from '../libs/errors';
|
||||
import splitWhitespace from '../libs/splitWhitespace';
|
||||
|
||||
module.exports = function purchaseHourglass (user, req = {}, analytics) {
|
||||
let key = _.get(req, 'params.key');
|
||||
@@ -51,14 +50,12 @@ module.exports = function purchaseHourglass (user, req = {}, analytics) {
|
||||
});
|
||||
}
|
||||
|
||||
let res = {
|
||||
data: pickDeep(user, splitWhitespace('items purchased.plan.consecutive')),
|
||||
message: i18n.t('hourglassPurchase', req.language),
|
||||
};
|
||||
|
||||
if (req.v2 === true) {
|
||||
return res.data;
|
||||
return _.pick(user, splitWhitespace('items purchased.plan.consecutive'));
|
||||
} else {
|
||||
return res;
|
||||
return [
|
||||
{ items: user.items, purchasedPlanConsecutive: user.purchased.plan.consecutive },
|
||||
i18n.t('hourglassPurchase', req.language),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -36,9 +36,9 @@ module.exports = function openMysteryItem (user, req = {}, analytics) {
|
||||
if (req.v2 === true) {
|
||||
return user.items.gear.owned;
|
||||
} else {
|
||||
return {
|
||||
message: i18n.t('mysteryItemOpened', req.language),
|
||||
data: user.items.gear.owned,
|
||||
};
|
||||
return [
|
||||
user.items.gear.owned,
|
||||
i18n.t('mysteryItemOpened', req.language),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -54,12 +54,10 @@ module.exports = function purchase (user, req = {}, analytics) {
|
||||
});
|
||||
}
|
||||
|
||||
let response = {
|
||||
data: _.pick(user, splitWhitespace('stats balance')),
|
||||
message: i18n.t('plusOneGem'),
|
||||
};
|
||||
|
||||
return response;
|
||||
return [
|
||||
_.pick(user, splitWhitespace('stats balance')),
|
||||
i18n.t('plusOneGem'),
|
||||
];
|
||||
}
|
||||
|
||||
let acceptedTypes = ['eggs', 'hatchingPotions', 'food', 'quests', 'gear'];
|
||||
@@ -119,14 +117,12 @@ module.exports = function purchase (user, req = {}, analytics) {
|
||||
});
|
||||
}
|
||||
|
||||
let response = {
|
||||
data: _.pick(user, splitWhitespace('items balance')),
|
||||
message: i18n.t('purchased', {type, key}),
|
||||
};
|
||||
|
||||
if (req.v2 === true) {
|
||||
return response.data;
|
||||
return _.pick(user, splitWhitespace('items balance'));
|
||||
} else {
|
||||
return response;
|
||||
return [
|
||||
_.pick(user, splitWhitespace('items balance')),
|
||||
i18n.t('purchased', {type, key}),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -24,9 +24,9 @@ module.exports = function readCard (user, req = {}) {
|
||||
if (req.v2 === true) {
|
||||
return _.pick(user, splitWhitespace('items.special flags.cardReceived'));
|
||||
} else {
|
||||
return {
|
||||
message: i18n.t('readCard', {cardType}, req.language),
|
||||
data: _.pick(user, splitWhitespace('items.special flags.cardReceived')),
|
||||
};
|
||||
return [
|
||||
{ specialItems: user.items.special, cardReceived: user.flags.cardReceived },
|
||||
i18n.t('readCard', {cardType}, req.language),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -98,14 +98,12 @@ module.exports = function rebirth (user, tasks = [], req = {}, analytics) {
|
||||
|
||||
user.stats.buffs = {};
|
||||
|
||||
let response = {
|
||||
data: user,
|
||||
message: i18n.t('rebirthComplete'),
|
||||
};
|
||||
|
||||
if (req.v2 === true) {
|
||||
return user;
|
||||
} else {
|
||||
return response;
|
||||
return [
|
||||
user,
|
||||
i18n.t('rebirthComplete'),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -57,14 +57,12 @@ module.exports = function releaseBoth (user, req = {}, analytics) {
|
||||
user.achievements.triadBingoCount++;
|
||||
}
|
||||
|
||||
let response = {
|
||||
data: _.pick(user, splitWhitespace('achievements')),
|
||||
message: i18n.t('mountsAndPetsReleased'),
|
||||
};
|
||||
|
||||
if (req.v2 === true) {
|
||||
return user;
|
||||
} else {
|
||||
return response;
|
||||
return [
|
||||
_.pick(user, splitWhitespace('achievements items balance')),
|
||||
i18n.t('mountsAndPetsReleased'),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -3,8 +3,6 @@ import i18n from '../i18n';
|
||||
import {
|
||||
NotAuthorized,
|
||||
} from '../libs/errors';
|
||||
import splitWhitespace from '../libs/splitWhitespace';
|
||||
import _ from 'lodash';
|
||||
|
||||
module.exports = function releaseMounts (user, req = {}, analytics) {
|
||||
let mount;
|
||||
@@ -34,14 +32,12 @@ module.exports = function releaseMounts (user, req = {}, analytics) {
|
||||
});
|
||||
}
|
||||
|
||||
let response = {
|
||||
data: _.pick(user, splitWhitespace('mounts')),
|
||||
message: i18n.t('mountsReleased'),
|
||||
};
|
||||
|
||||
if (req.v2 === true) {
|
||||
return user;
|
||||
} else {
|
||||
return response;
|
||||
return [
|
||||
user.items.mounts,
|
||||
i18n.t('mountsReleased'),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -3,8 +3,6 @@ import i18n from '../i18n';
|
||||
import {
|
||||
NotAuthorized,
|
||||
} from '../libs/errors';
|
||||
import splitWhitespace from '../libs/splitWhitespace';
|
||||
import _ from 'lodash';
|
||||
|
||||
module.exports = function releasePets (user, req = {}, analytics) {
|
||||
if (user.balance < 1) {
|
||||
@@ -32,14 +30,12 @@ module.exports = function releasePets (user, req = {}, analytics) {
|
||||
});
|
||||
}
|
||||
|
||||
let response = {
|
||||
data: _.pick(user, splitWhitespace('user.items.pets')),
|
||||
message: i18n.t('petsReleased'),
|
||||
};
|
||||
|
||||
if (req.v2 === true) {
|
||||
return user;
|
||||
} else {
|
||||
return response;
|
||||
return [
|
||||
user.items.pets,
|
||||
i18n.t('petsReleased'),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -27,14 +27,12 @@ module.exports = function reroll (user, tasks = [], req = {}, analytics) {
|
||||
});
|
||||
}
|
||||
|
||||
let response = {
|
||||
data: {user, tasks},
|
||||
message: i18n.t('rerollComplete'),
|
||||
};
|
||||
|
||||
if (req.v2 === true) {
|
||||
return user;
|
||||
} else {
|
||||
return response;
|
||||
return [
|
||||
{user, tasks},
|
||||
i18n.t('rerollComplete'),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -19,14 +19,12 @@ module.exports = function reset (user, tasks = [], req = {}) {
|
||||
|
||||
resetGear(user);
|
||||
|
||||
let response = {
|
||||
data: {user, tasksToRemove},
|
||||
message: i18n.t('resetComplete'),
|
||||
};
|
||||
|
||||
if (req.v2 === true) {
|
||||
return user;
|
||||
} else {
|
||||
return response;
|
||||
return [
|
||||
{user, tasksToRemove},
|
||||
i18n.t('resetComplete'),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -4,7 +4,6 @@ import _ from 'lodash';
|
||||
import {
|
||||
NotAuthorized,
|
||||
} from '../libs/errors';
|
||||
import splitWhitespace from '../libs/splitWhitespace';
|
||||
import randomVal from '../fns/randomVal';
|
||||
|
||||
module.exports = function revive (user, req = {}, analytics) {
|
||||
@@ -97,14 +96,12 @@ module.exports = function revive (user, req = {}, analytics) {
|
||||
});
|
||||
}
|
||||
|
||||
let response = {
|
||||
data: _.pick(user, splitWhitespace('user.items')),
|
||||
message,
|
||||
};
|
||||
|
||||
if (req.v2 === true) {
|
||||
return user;
|
||||
} else {
|
||||
return response;
|
||||
return [
|
||||
user.items,
|
||||
message,
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -257,5 +257,5 @@ module.exports = function scoreTask (options = {}, req = {}) {
|
||||
}
|
||||
|
||||
updateStats(user, stats, req);
|
||||
return delta;
|
||||
return [delta];
|
||||
};
|
||||
|
||||
@@ -33,14 +33,12 @@ module.exports = function sell (user, req = {}) {
|
||||
user.items[type][key]--;
|
||||
user.stats.gp += content[type][key].value;
|
||||
|
||||
let response = {
|
||||
data: _.pick(user, splitWhitespace('stats items')),
|
||||
message: i18n.t('sold', {type, key}),
|
||||
};
|
||||
|
||||
if (req.v2 === true) {
|
||||
return response.data;
|
||||
return _.pick(user, splitWhitespace('stats items'));
|
||||
} else {
|
||||
return response;
|
||||
return [
|
||||
_.pick(user, splitWhitespace('stats items')),
|
||||
i18n.t('sold', {type, key}),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -4,10 +4,6 @@ module.exports = function sleep (user, req = {}) {
|
||||
if (req.v2 === true) {
|
||||
return {};
|
||||
} else {
|
||||
return {
|
||||
preferences: {
|
||||
sleep: user.preferences.sleep,
|
||||
},
|
||||
};
|
||||
return [user.preferences.sleep];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -75,14 +75,12 @@ module.exports = function unlock (user, req = {}, analytics) {
|
||||
});
|
||||
}
|
||||
|
||||
let response = {
|
||||
data: _.pick(user, splitWhitespace('purchased preferences items')),
|
||||
message: i18n.t('unlocked'),
|
||||
};
|
||||
|
||||
if (req.v2 === true) {
|
||||
return response.data;
|
||||
return _.pick(user, splitWhitespace('purchased preferences items'));
|
||||
} else {
|
||||
return response;
|
||||
return [
|
||||
_.pick(user, splitWhitespace('purchased preferences items')),
|
||||
i18n.t('unlocked'),
|
||||
];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -22,5 +22,5 @@ module.exports = function updateTask (task, req = {}) {
|
||||
|
||||
_.merge(task, _.omit(req.body, ['_id', 'id', 'type']));
|
||||
|
||||
return task;
|
||||
return [task];
|
||||
};
|
||||
|
||||
@@ -15,6 +15,6 @@ module.exports = function updateWebhook (user, req) {
|
||||
if (req.v2 === true) {
|
||||
return user.preferences.webhooks;
|
||||
} else {
|
||||
return user.preferences.webhooks[req.params.id];
|
||||
return [user.preferences.webhooks[req.params.id]];
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user