77 lines
1.4 KiB
JavaScript
77 lines
1.4 KiB
JavaScript
const { Level } = require("level");
|
|
|
|
const db = new Level("phonendo_db", { valueEncoding: "json" });
|
|
|
|
|
|
const write = async (key, value) => {
|
|
try {
|
|
await db.get(key);
|
|
} catch (error) {
|
|
await db.put(key, value);
|
|
}
|
|
};
|
|
|
|
const read = async (key) => {
|
|
let result = "";
|
|
try {
|
|
result = await db.get(key);
|
|
} catch (error) {
|
|
console.warn(`DB ${key} not found`);
|
|
}
|
|
return result;
|
|
};
|
|
|
|
const update = async (key, value) => {
|
|
await del(key);
|
|
await write(key, value);
|
|
};
|
|
|
|
const del = async (key) => {
|
|
let result = "";
|
|
try {
|
|
result = await db.del(key);
|
|
} catch (error) {f
|
|
console.warn(`DB ${key} not found`);
|
|
}
|
|
};
|
|
|
|
const getAllCapturedItems = async () => {
|
|
|
|
let capturedItems = [];
|
|
|
|
try {
|
|
for await (const data of db.iterator()) {
|
|
const [key, value] = data;
|
|
if (value.status === "Captured") {
|
|
capturedItems.push(data);
|
|
}
|
|
}
|
|
|
|
return capturedItems;
|
|
} catch (err) {
|
|
console.error(err)
|
|
|
|
return capturedItems;
|
|
}
|
|
};
|
|
|
|
const getAllItems = async () => {
|
|
|
|
let capturedItems = [];
|
|
|
|
try {
|
|
for await (const data of db.iterator()) {
|
|
const [key, value] = data;
|
|
capturedItems.push(data);
|
|
}
|
|
|
|
return capturedItems;
|
|
} catch (err) {
|
|
console.error(err)
|
|
|
|
return capturedItems;
|
|
}
|
|
};
|
|
|
|
module.exports = { write, read, update, del, getAllCapturedItems, getAllItems };
|