2020-07-01 11:37:29 +02:00

59 lines
1.2 KiB
JavaScript

const low = require('lowdb');
const FileSync = require('lowdb/adapters/FileSync');
var db = null;
function db_init(db){
db.defaults({ chats:[]}).write();
}
var dbc = function(name){
const db_file = "./db/"+name+".json";
var db = low(new FileSync(db_file));
db_init(db);
return db;
};
module.exports = function(name){
this.name = name;
this.db = dbc(name);
this.get_chat = function(cid){
return new Promise((resolve, reject)=>{
let res = this.db.get("chats").find({id:cid}).value();
if(res) return resolve(res);
this.db.get("chats").push({id:cid, tracking:[]}).write();
res = this.db.get("chats").find({id:cid}).value();
if(res) return resolve(res);
return reject({error:true, msg:"Error With DB..."});
});
};
this.dump_db = function(){
return new Promise((resolve, reject)=>{
resolve(this.db.get("chats").value());
});
};
this.set_v = function(cid,v){
this.get_chat(cid);
return new Promise((resolve, reject)=>{
resolve(this.db.get("chats").find({id:cid}).set('tracking',v).write());
});
};
this.get_v = function(cid){
this.get_chat(cid);
return new Promise((resolve, reject)=>{
resolve(this.db.get("chats").find({id:cid}).get('tracking').value());
});
}
return this;
};