'use strict'; const Mongo = require(__dirname+'/db.js') , config = require(__dirname+'/../lib/misc/config.js') , db = Mongo.db.collection('bypass'); module.exports = { db, checkBypass: (id, anonymizer=false) => { return db.findOneAndUpdate({ '_id': id, 'anonymizer': anonymizer, 'uses': { '$gt': 0 } }, { '$inc': { 'uses': -1, } }).then(r => r.value); }, getBypass: (anonymizer=false, id=null, uses=0) => { const { blockBypass } = config.get; const newBypass = { 'uses': uses, 'anonymizer': anonymizer, 'expireAt': new Date(Date.now() + blockBypass.expireAfterTime) }; if (id !== null) { newBypass._id = Mongo.ObjectId(id); return db.replaceOne({ _id: newBypass._id }, newBypass, { upsert: true, }); } return db.insertOne(newBypass); }, deleteAll: () => { return db.deleteMany({}); }, };