aboutsummaryrefslogtreecommitdiff
path: root/cockpit/js/database.js
blob: 9c710256a0cbf473d65f59f2b7f415bbeed169f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
async function loadFromDatabase(url, params) {
	let dbUrl = url;
	dbUrl += "&perpage=1000";
	// TODO(muhq): Why does this not include entries?
	if (params) {
		dbUrl += "&filter=1&advanced=1";
		for (const param in params) {
			dbUrl += `&${param}=${encodeURIComponent(params[param])}`
		}
	}

	const dbRes = await fetch(encodeURI(dbUrl));
	const dbDoc = new DOMParser().parseFromString(await dbRes.text(), 'text/html');
	let data = [];
	dbDoc.querySelectorAll('.db-row').forEach(row => {
		let entry = {};
		row.querySelectorAll('.db-cell').forEach(field => {
			const key = field.dataset.key;
			const value = field.innerText.trim();
			entry[key] = value;
		});
		data.push(entry);
	});
	return data;
}

async function writeToDatabase(url, params) {
	let dbUrl = url;
	dbUrl += "&perpage=1000";
	// TODO(muhq): Why does this not include entries?
	if (params) {
		dbUrl += "&filter=1&advanced=1";
		for (const param in params) {
			dbUrl += `&${param}=${encodeURIComponent(params[param])}`
		}
	}

	// return fetch(encodeURI(dbUrl));
}

export { loadFromDatabase, writeToDatabase };