Merge pull request #2994 from Getriax/TRIM_MODEL

Trim content builder model attributes
This commit is contained in:
Jim LAURIE 2019-04-09 18:26:53 +02:00 committed by GitHub
commit b31d36b99d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 6 deletions

View File

@ -6,7 +6,12 @@ const _ = require('lodash');
const generator = require('strapi-generate'); const generator = require('strapi-generate');
const { fromJS, List, Map } = require('immutable'); const { fromJS, List, Map } = require('immutable');
const Manager = require('../utils/Manager.js'); const Manager = require('../utils/Manager.js');
const { createManager, removeColsLine, reorderList } = require('../utils/helpers.js'); const {
createManager,
removeColsLine,
reorderList,
deepTrimObject,
} = require('../utils/helpers.js');
module.exports = { module.exports = {
appearance: async (attributes, model, plugin) => { appearance: async (attributes, model, plugin) => {
@ -369,8 +374,9 @@ module.exports = {
}); });
Object.assign(attributesNotConfigurable, attrs); Object.assign(attributesNotConfigurable, attrs);
const trimmedNotConfigurableAttributes = deepTrimObject(attributesNotConfigurable);
return [attributesNotConfigurable, errors]; return [trimmedNotConfigurableAttributes, errors];
}, },
clearRelations: (model, source, force) => { clearRelations: (model, source, force) => {

View File

@ -44,7 +44,7 @@ const removeColsLine = (manager, list) => {
const reorderList = (manager, list) => { const reorderList = (manager, list) => {
const array = createArrayOfLastEls(manager, list); const array = createArrayOfLastEls(manager, list);
const lines = []; const lines = [];
array.forEach((item, i) => { array.forEach((item, i) => {
const { elements } = getElementsOnALine(manager, i, list); const { elements } = getElementsOnALine(manager, i, list);
lines.push(elements); lines.push(elements);
@ -57,7 +57,7 @@ const reorderList = (manager, list) => {
return acc.concat(line); return acc.concat(line);
}, []) }, [])
.filter(a => a !== undefined); .filter(a => a !== undefined);
return List(flattenDeep(reordered)); return List(flattenDeep(reordered));
}; };
@ -65,11 +65,31 @@ const escapeNewlines = (content, placeholder = '\n') => {
return content.replace(/[\r\n]+/g, placeholder); return content.replace(/[\r\n]+/g, placeholder);
} }
const deepTrimObject = attribute => {
if (Array.isArray(attribute)) {
return attribute.map(deepTrimObject);
}
if (typeof attribute === 'object') {
return Object.entries(attribute)
.reduce((acc, [key, value]) => {
const trimmedObject = deepTrimObject(value);
return { ...acc, [key]: trimmedObject };
}, {});
}
return typeof attribute === 'string'
? attribute.trim()
: attribute;
}
module.exports = { module.exports = {
createArrayOfLastEls, createArrayOfLastEls,
createManager, createManager,
getElementsOnALine, getElementsOnALine,
removeColsLine, removeColsLine,
reorderList, reorderList,
escapeNewlines escapeNewlines,
}; deepTrimObject
};