@apidaze/node-red-contrib-apidaze
Version:
Node-RED module for Apidaze
72 lines (63 loc) • 1.58 kB
JavaScript
const db = require('nosql');
const path = require('path');
const storageFile = path.resolve(path.join(__dirname, '../calls'));
const callsDb = db.load(storageFile);
const manager = {
db: callsDb,
add: (data) =>
new Promise((resolve, reject) => {
const doc = {
...data,
created_at: new Date().toISOString(),
};
manager.db.insert(doc).callback((err, d) => {
if (err) {
reject(err);
return;
}
resolve(doc);
});
}),
fetch: (uuid) =>
new Promise((resolve, reject) => {
manager.db.find().make((filter) => {
filter.where('call_uuid', uuid);
filter.callback((err, response) => {
if (err) {
reject(err);
return;
}
resolve(response);
});
});
}),
update: (uuid, data) =>
new Promise((resolve, reject) => {
const doc = {
...data,
updated_at: new Date().toISOString(),
};
manager.db.update(doc).make((filter) => {
filter.where('call_uuid', uuid).callback((err, response) => {
if (err) {
reject(err);
return;
}
resolve(doc);
});
});
}),
remove: (uuid) =>
new Promise((resolve, reject) => {
manager.db.remove().make((filter) => {
filter.where('uuid', uuid).callback((err, response) => {
if (err) {
reject(err);
return;
}
resolve(response);
});
});
}),
};
module.exports = manager;