@arisan/data-api
Version:
The Universal Database API Gateway for CLIO's Modules
67 lines (61 loc) • 1.46 kB
JavaScript
;
var MongoClient = require('mongodb').MongoClient;
exports.ObjectIdRegExp = new RegExp('^[a-fA-F0-9]{24}$');
exports.CreateCollection = (collectionName, callback) => {
MongoClient.connect(process.env.CLIO_MONGO_URL, (err, db) => {
if (err) {
db && db.close();
callback(err);
return;
}
db.createCollection(collectionName, (err) => {
db.close();
if (err) {
callback(err);
return;
}
callback();
});
});
};
exports.DropCollection = (collectionName, callback) => {
MongoClient.connect(process.env.CLIO_MONGO_URL, (err, db) => {
if (err) {
db && db.close();
callback && callback(err);
return;
}
db.dropCollection(collectionName, (err) => {
db.close();
if (err && err.message !== 'ns not found') {
callback && callback(err);
return;
}
callback && callback();
});
});
};
exports.InsertOne = (doc, collectionName, callback) => {
MongoClient.connect(process.env.CLIO_MONGO_URL, (err, db) => {
if (err) {
db && db.close();
callback(err);
return;
}
db.collection(collectionName, (err, collection) => {
if (err) {
db.close();
callback(err);
return;
}
collection.insertOne(doc, (err) => {
db.close();
if (err) {
callback(err);
return;
}
callback();
})
});
});
};