Files
phonendo/storage/db.js
T
2026-05-22 09:58:02 +02:00

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 };