2024-03-06 13:43:45 +05:30
|
|
|
const { MongoClient } = require('mongodb');
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @param {MongoClient} client
|
|
|
|
* @param {*} callback
|
|
|
|
*/
|
|
|
|
module.exports.initMongoDBInstance = async (client,config,callback) => {
|
|
|
|
const db = client.db(config.database_name);
|
|
|
|
|
|
|
|
var call_data = {
|
|
|
|
createStore: async (name, callback) => {
|
|
|
|
db.createCollection(name).then(() => {
|
|
|
|
callback(true);
|
|
|
|
}).catch(() => {
|
|
|
|
callback(false);
|
|
|
|
})
|
|
|
|
},
|
|
|
|
|
2024-03-06 19:14:30 +05:30
|
|
|
list: async (table , data, callback) => {
|
2024-03-06 17:26:56 +05:30
|
|
|
var collection = db.collection(table);
|
|
|
|
|
2024-03-06 19:14:30 +05:30
|
|
|
var found_data = await collection.find(data).toArray();
|
2024-03-06 17:26:56 +05:30
|
|
|
|
2024-03-06 18:23:26 +05:30
|
|
|
callback(found_data);
|
2024-03-06 17:26:56 +05:30
|
|
|
},
|
|
|
|
|
2024-03-06 13:43:45 +05:30
|
|
|
insert: async (table, data,callback) => {
|
|
|
|
var uuid = require('node:crypto').randomUUID();
|
|
|
|
|
|
|
|
var collection = db.collection(table);
|
|
|
|
|
|
|
|
collection.insertOne({
|
|
|
|
uuid: uuid,
|
|
|
|
...data
|
|
|
|
})
|
|
|
|
|
|
|
|
callback(uuid)
|
|
|
|
},
|
|
|
|
|
|
|
|
delete: async (table, uuid , callback) => {
|
|
|
|
var collection = db.collection(table);
|
|
|
|
|
|
|
|
collection.deleteOne({ uuid: uuid });
|
|
|
|
|
|
|
|
callback(true);
|
|
|
|
},
|
|
|
|
|
|
|
|
search: async (table, data , callback) => {
|
|
|
|
var collection = db.collection(table);
|
|
|
|
|
2024-03-06 18:23:26 +05:30
|
|
|
var found_data = await collection.findOne(data);
|
2024-03-06 13:43:45 +05:30
|
|
|
|
2024-03-06 18:23:26 +05:30
|
|
|
callback(found_data);
|
2024-03-06 13:43:45 +05:30
|
|
|
},
|
|
|
|
|
|
|
|
edit: async (table, uuid, data , callback) => {
|
|
|
|
var collection = db.collection(table);
|
|
|
|
|
|
|
|
collection.updateOne({
|
|
|
|
uuid: uuid,
|
|
|
|
}, {
|
|
|
|
$set: {
|
|
|
|
uuid: uuid,
|
|
|
|
...data
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
callback(true);
|
|
|
|
},
|
|
|
|
|
|
|
|
build: async () => {
|
|
|
|
var tables = require("./collection_tables.json");
|
|
|
|
for(var table of tables){
|
|
|
|
call_data.createStore(table , (state) => {});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
callback(call_data);
|
|
|
|
};
|