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:
Matteo Pagliazzi
2017-03-01 17:10:48 +01:00
committed by GitHub
parent ef02e59590
commit 98c019a0b6
150 changed files with 4996 additions and 1533 deletions

View File

@@ -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));