AnonSec Shell
Server IP : 162.213.251.212  /  Your IP : 3.141.27.108   [ Reverse IP ]
Web Server : LiteSpeed
System : Linux business55.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : allssztx ( 535)
PHP Version : 8.1.31
Disable Function : NONE
Domains : 1 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /proc/self/root/home/allssztx/needapair.com/node_modules/mongoose/lib/plugins/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /proc/self/root/home/allssztx/needapair.com/node_modules/mongoose/lib/plugins/saveSubdocs.js
'use strict';

const each = require('../helpers/each');

/*!
 * ignore
 */

module.exports = function saveSubdocs(schema) {
  const unshift = true;
  schema.s.hooks.pre('save', false, function saveSubdocsPreSave(next) {
    if (this.$isSubdocument) {
      next();
      return;
    }

    const _this = this;
    const subdocs = this.$getAllSubdocs({ useCache: true });

    if (!subdocs.length) {
      next();
      return;
    }

    each(subdocs, function(subdoc, cb) {
      subdoc.$__schema.s.hooks.execPre('save', subdoc, function(err) {
        cb(err);
      });
    }, function(error) {
      // Invalidate subdocs cache because subdoc pre hooks can add new subdocuments
      if (_this.$__.saveOptions) {
        _this.$__.saveOptions.__subdocs = null;
      }
      if (error) {
        return _this.$__schema.s.hooks.execPost('save:error', _this, [_this], { error: error }, function(error) {
          next(error);
        });
      }
      next();
    });
  }, null, unshift);

  schema.s.hooks.post('save', async function saveSubdocsPostDeleteOne() {
    const removedSubdocs = this.$__.removedSubdocs;
    if (!removedSubdocs || !removedSubdocs.length) {
      return;
    }

    const promises = [];
    for (const subdoc of removedSubdocs) {
      promises.push(new Promise((resolve, reject) => {
        subdoc.$__schema.s.hooks.execPost('deleteOne', subdoc, [subdoc], function(err) {
          if (err) {
            return reject(err);
          }
          resolve();
        });
      }));
    }

    this.$__.removedSubdocs = null;
    await Promise.all(promises);
  });

  schema.s.hooks.post('save', async function saveSubdocsPostSave() {
    if (this.$isSubdocument) {
      return;
    }

    const _this = this;
    const subdocs = this.$getAllSubdocs({ useCache: true });

    if (!subdocs.length) {
      return;
    }

    const promises = [];
    for (const subdoc of subdocs) {
      promises.push(new Promise((resolve, reject) => {
        subdoc.$__schema.s.hooks.execPost('save', subdoc, [subdoc], function(err) {
          if (err) {
            return reject(err);
          }
          resolve();
        });
      }));
    }

    try {
      await Promise.all(promises);
    } catch (error) {
      await new Promise((resolve, reject) => {
        this.$__schema.s.hooks.execPost('save:error', _this, [_this], { error: error }, function(error) {
          if (error) {
            return reject(error);
          }
          resolve();
        });
      });
    }
  }, null, unshift);
};

Anon7 - 2022
AnonSec Team