Skip to content

Commit 2163511

Browse files
authored
Update server for multi-store support
1 parent 69e0081 commit 2163511

File tree

1 file changed

+26
-13
lines changed

1 file changed

+26
-13
lines changed

server/server.js

+26-13
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ const db = new sqlite3.Database('./web-session-storage.db', (err) => {
5050
key TEXT PRIMARY KEY,
5151
data TEXT
5252
)`);
53+
db.run(`CREATE TABLE IF NOT EXISTS templates (
54+
key TEXT PRIMARY KEY,
55+
data TEXT
56+
)`);
5357
}
5458
});
5559

@@ -143,10 +147,15 @@ app.get('/proxy/*', async (req, res) => {
143147
}
144148
});
145149

150+
const normalizeStoreName = (storeName) => {
151+
return storeName.split(' ')[0].toLowerCase();
152+
};
153+
146154
// POST route to load data
147155
app.post('/load', (req, res) => {
148-
const { key } = req.body;
149-
db.get('SELECT data FROM sessions WHERE key = ?', [key], (err, row) => {
156+
const { storeName, key } = req.body;
157+
const normStoreName = normalizeStoreName(storeName);
158+
db.get(`SELECT data FROM ${normStoreName} WHERE key = ?`, [key], (err, row) => {
150159
if (err) {
151160
res.status(500).json({ ok: false, message: 'Error querying the database' });
152161
} else if (row) {
@@ -159,8 +168,9 @@ app.post('/load', (req, res) => {
159168

160169
// POST route to save data
161170
app.post('/save', (req, res) => {
162-
const { key, data } = req.body;
163-
db.run('INSERT OR REPLACE INTO sessions (key, data) VALUES (?, ?)', [key, JSON.stringify(data)], (err) => {
171+
const { storeName, key, data } = req.body;
172+
const normStoreName = normalizeStoreName(storeName);
173+
db.run(`INSERT OR REPLACE INTO ${normStoreName} (key, data) VALUES (?, ?)`, [key, JSON.stringify(data)], (err) => {
164174
if (err) {
165175
res.status(500).json({ ok: false, message: 'Error writing to the database' });
166176
} else {
@@ -169,25 +179,28 @@ app.post('/save', (req, res) => {
169179
});
170180
});
171181

172-
// POST route to get all sessions
173-
app.post('/sessions', (req, res) => {
174-
db.all('SELECT key, data FROM sessions', [], (err, rows) => {
182+
// POST route to get all rows from a table
183+
app.post('/all', (req, res) => {
184+
const { storeName } = req.body;
185+
const normStoreName = normalizeStoreName(storeName);
186+
db.all(`SELECT key, data FROM ${normStoreName}`, [], (err, rows) => {
175187
if (err) {
176188
res.status(500).json({ ok: false, message: 'Error querying the database' });
177189
} else {
178-
const sessions = {};
190+
const all = {};
179191
rows.forEach((row) => {
180-
sessions[row.key] = JSON.parse(row.data);
192+
all[row.key] = JSON.parse(row.data);
181193
});
182-
res.json({ ok: true, result: sessions });
194+
res.json({ ok: true, result: all });
183195
}
184196
});
185197
});
186198

187199
// POST route to delete a session
188200
app.post('/delete', (req, res) => {
189-
const { sessionId } = req.body;
190-
db.run('DELETE FROM sessions WHERE key = ?', [sessionId], (err) => {
201+
const { storeName, key } = req.body;
202+
const normStoreName = normalizeStoreName(storeName);
203+
db.run(`DELETE FROM ${normStoreName} WHERE key = ?`, [key], (err) => {
191204
if (err) {
192205
res.status(500).json({ ok: false, message: 'Error deleting from the database' });
193206
} else {
@@ -209,4 +222,4 @@ process.on('SIGINT', () => {
209222
db.close(() => {
210223
process.exit(0);
211224
});
212-
});
225+
});

0 commit comments

Comments
 (0)