Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/wincloud_gateway/node_modules/strapi-connector-bookshelf/lib/utils/ drwxr-xr-x | |
| Viewing file: Select action/file-type: 'use strict';
const _ = require('lodash');
const getKeyForDefinition = definition => `model_def_${definition.uid}`;
const formatDefinitionToStore = definition =>
JSON.stringify(
_.pick(definition, [
'uid',
'collectionName',
'kind',
'info',
'options',
'pluginOptions',
'attributes',
])
);
const getDefinitionFromStore = async (definition, ORM) => {
const coreStoreExists = await ORM.knex.schema.hasTable('core_store');
if (!coreStoreExists) {
return undefined;
}
const def = await strapi.models['core_store']
.forge({ key: getKeyForDefinition(definition) })
.fetch();
return def ? JSON.parse(_.get(def.toJSON(), 'value', null)) : undefined;
};
const storeDefinition = async (definition, ORM) => {
const defToStore = formatDefinitionToStore(definition);
const existingDef = await getDefinitionFromStore(definition, ORM);
const defData = {
key: getKeyForDefinition(definition),
type: 'object',
value: defToStore,
};
if (existingDef) {
return strapi.models['core_store']
.forge()
.where({ key: getKeyForDefinition(definition) })
.save(defData, { method: 'update' });
}
return strapi.models['core_store'].forge(defData).save();
};
const getColumnsWhereDefinitionChanged = async (columnsName, definition, ORM) => {
const previousDefinition = await getDefinitionFromStore(definition, ORM);
return columnsName.filter(columnName => {
const previousAttribute = _.get(previousDefinition, ['attributes', columnName], null);
const actualAttribute = _.get(definition, ['attributes', columnName], null);
return !_.isEqual(previousAttribute, actualAttribute);
});
};
module.exports = {
storeDefinition,
getDefinitionFromStore,
getColumnsWhereDefinitionChanged,
};
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0707 ]-- |