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-plugin-content-manager/services/ drwxr-xr-x | |
| Viewing file: Select action/file-type: 'use strict';
const { intersection, difference } = require('lodash');
const { createDefaultConfiguration, syncConfiguration } = require('./utils/configuration');
module.exports = ({ isComponent, prefix, storeUtils, getModels }) => {
const uidToStoreKey = uid => {
return `${prefix}::${uid}`;
};
const getConfiguration = uid => {
const storeKey = uidToStoreKey(uid);
return storeUtils.getModelConfiguration(storeKey);
};
const setConfiguration = (uid, input) => {
const { settings, metadatas, layouts } = input;
const configuration = {
uid,
settings,
metadatas,
layouts,
};
if (isComponent) {
configuration.isComponent = isComponent;
}
const storeKey = uidToStoreKey(uid);
return storeUtils.setModelConfiguration(storeKey, configuration);
};
const deleteConfiguration = uid => {
const storeKey = uidToStoreKey(uid);
return storeUtils.deleteKey(storeKey);
};
const syncConfigurations = async () => {
const models = getModels();
const configurations = await storeUtils.findByKey(
`plugin_content_manager_configuration_${prefix}`
);
const updateConfiguration = async uid => {
const conf = configurations.find(conf => conf.uid === uid);
return setConfiguration(uid, await syncConfiguration(conf, models[uid]));
};
const generateNewConfiguration = async uid => {
return setConfiguration(uid, await createDefaultConfiguration(models[uid]));
};
const currentUIDS = Object.keys(models);
const DBUIDs = configurations.map(({ uid }) => uid);
const contentTypesToUpdate = intersection(currentUIDS, DBUIDs);
const contentTypesToAdd = difference(currentUIDS, DBUIDs);
const contentTypesToDelete = difference(DBUIDs, currentUIDS);
// delete old schemas
await Promise.all(contentTypesToDelete.map(uid => deleteConfiguration(uid)));
// create new schemas
await Promise.all(contentTypesToAdd.map(uid => generateNewConfiguration(uid)));
// update current schemas
await Promise.all(contentTypesToUpdate.map(uid => updateConfiguration(uid)));
};
return {
getConfiguration,
setConfiguration,
deleteConfiguration,
syncConfigurations,
};
};
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0057 ]-- |