59 lines
1.2 KiB
JavaScript
Raw Normal View History

2020-07-02 20:04:32 +02:00
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);
2020-07-02 20:48:38 +02:00
this.db.get("chats").push({id:cid, tracking:0}).write();
2020-07-02 20:04:32 +02:00
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);
2020-07-02 20:45:33 +02:00
return new Promise((resolve, reject)=>
resolve(this.db.get("chats").find({id:cid}).set('tracking',v).write())
);
2020-07-02 20:04:32 +02:00
};
this.get_v = function(cid){
this.get_chat(cid);
2020-07-02 20:45:33 +02:00
return new Promise((resolve, reject)=>
resolve(this.db.get("chats").find({id:cid}).get('tracking').value())
);
2020-07-02 20:04:32 +02:00
}
return this;
};