mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-14 05:07:22 +01:00
Upgrade lodash to v4 and lint more files (#8495)
* common: import lodash modules separately * remove test/content from .eslintignore, fix with eslint --fix content/index * lint test/content * lint content/index except for lodash methods * upgrade server/models * upgrade server/middlewares and server/libs * port server/controllers/top-level * port server/controllers/api-v3 * port views and tests * client old port lodash and _(, missing _. * upgrade client-old * port common/script (root level files only) * port common/script/fns * port common/libs * port common/script/ops * port common/script/content and common/script/libs/shops.js * misc fixes * misc fixes * misc fixes * more tests fixes * fix payments test stubbing, down to 2 failing tests * remove more instances of lodash wrapping * fix bug where toObject does not clone object * fix tests * upgrade migration or add lodash 4 note * update shrinkwrap * fix linting * upgrade eslint-config-habitrpg * update shrinkwrap * recompile shrinkwrap
This commit is contained in:
@@ -1,16 +1,18 @@
|
||||
import i18n from '../i18n';
|
||||
import _ from 'lodash';
|
||||
import get from 'lodash/get';
|
||||
import each from 'lodash/each';
|
||||
import pick from 'lodash/pick';
|
||||
import setWith from 'lodash/setWith';
|
||||
import splitWhitespace from '../libs/splitWhitespace';
|
||||
import {
|
||||
NotAuthorized,
|
||||
BadRequest,
|
||||
} from '../libs/errors';
|
||||
import setWith from 'lodash.setwith'; // Not available in lodash 3
|
||||
|
||||
// If item is already purchased -> equip it
|
||||
// Otherwise unlock it
|
||||
module.exports = function unlock (user, req = {}, analytics) {
|
||||
let path = _.get(req.query, 'path');
|
||||
let path = get(req.query, 'path');
|
||||
|
||||
if (!path) {
|
||||
throw new BadRequest(i18n.t('pathRequired', req.language));
|
||||
@@ -37,8 +39,8 @@ module.exports = function unlock (user, req = {}, analytics) {
|
||||
setPaths = path.split(',');
|
||||
let alreadyOwnedItems = 0;
|
||||
|
||||
_.each(setPaths, singlePath => {
|
||||
if (_.get(user, `purchased.${singlePath}`) === true) {
|
||||
each(setPaths, singlePath => {
|
||||
if (get(user, `purchased.${singlePath}`) === true) {
|
||||
alreadyOwnedItems++;
|
||||
}
|
||||
});
|
||||
@@ -51,7 +53,7 @@ module.exports = function unlock (user, req = {}, analytics) {
|
||||
throw new NotAuthorized(i18n.t('alreadyUnlockedPart', req.language));
|
||||
} */
|
||||
} else {
|
||||
alreadyOwns = _.get(user, `purchased.${path}`) === true;
|
||||
alreadyOwns = get(user, `purchased.${path}`) === true;
|
||||
}
|
||||
|
||||
if (isBackground && !alreadyOwns && (path.indexOf('.blue') !== -1 || path.indexOf('.green') !== -1 || path.indexOf('.red') !== -1 || path.indexOf('.purple') !== -1 || path.indexOf('.yellow') !== -1)) {
|
||||
@@ -63,7 +65,7 @@ module.exports = function unlock (user, req = {}, analytics) {
|
||||
}
|
||||
|
||||
if (isFullSet) {
|
||||
_.each(setPaths, function markItemsAsPurchased (pathPart) {
|
||||
each(setPaths, function markItemsAsPurchased (pathPart) {
|
||||
if (path.indexOf('gear.') !== -1) {
|
||||
// Using Object so path[1] won't create an array but an object {path: {1: value}}
|
||||
setWith(user, pathPart, true, Object);
|
||||
@@ -110,7 +112,7 @@ module.exports = function unlock (user, req = {}, analytics) {
|
||||
}
|
||||
|
||||
let response = [
|
||||
_.pick(user, splitWhitespace('purchased preferences items')),
|
||||
pick(user, splitWhitespace('purchased preferences items')),
|
||||
];
|
||||
|
||||
if (!alreadyOwns) response.push(i18n.t('unlocked', req.language));
|
||||
|
||||
Reference in New Issue
Block a user