sse pls end me
This commit is contained in:
parent
1d8fc533da
commit
c2a3b27a85
3
index.js
3
index.js
@ -54,7 +54,8 @@ app.use(`${basepath}/accounts`, accountsRoute);
|
|||||||
app.use(`${basepath}/transactions`, transactionsRoute);
|
app.use(`${basepath}/transactions`, transactionsRoute);
|
||||||
app.use(`${basepath}/`, resetRoute.router);
|
app.use(`${basepath}/`, resetRoute.router);
|
||||||
|
|
||||||
app.get("/live", resetRoute.socketConnectionRequest)
|
app.get("/live", resetRoute.mysse)
|
||||||
|
|
||||||
|
|
||||||
app.get("/", (req, res) => {
|
app.get("/", (req, res) => {
|
||||||
res.sendFile( path.join( __dirname, 'client', 'index.html'))
|
res.sendFile( path.join( __dirname, 'client', 'index.html'))
|
||||||
|
|||||||
@ -24,8 +24,16 @@ router.post("/", (req, res) => {
|
|||||||
const new_acc = db.prepare(`INSERT INTO accounts (number, name, qualifiedName, description, type, balance, localBalance) VALUES (?, ?, ? ,?, ?, 0, 0)`).run(number ,name, qualifiedName,des, type)
|
const new_acc = db.prepare(`INSERT INTO accounts (number, name, qualifiedName, description, type, balance, localBalance) VALUES (?, ?, ? ,?, ?, 0, 0)`).run(number ,name, qualifiedName,des, type)
|
||||||
res.status(204).send()
|
res.status(204).send()
|
||||||
|
|
||||||
|
for (res of update.values()) {
|
||||||
|
// res.write("data: update\n\n")
|
||||||
|
res.write('event: update\n');
|
||||||
|
res.write('data: {}\n\n');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// TODO add correct balance
|
||||||
router.get("/:account", (req, res) => {
|
router.get("/:account", (req, res) => {
|
||||||
const acc = db
|
const acc = db
|
||||||
.prepare("SELECT * FROM accounts WHERE name = ?")
|
.prepare("SELECT * FROM accounts WHERE name = ?")
|
||||||
@ -53,6 +61,7 @@ router.get("/:account", (req, res) => {
|
|||||||
WHERE transaction_entries.account_name = ?`).all(req.params.account)
|
WHERE transaction_entries.account_name = ?`).all(req.params.account)
|
||||||
acc['entries'] = entries
|
acc['entries'] = entries
|
||||||
res.send(acc);
|
res.send(acc);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -75,6 +84,13 @@ router.put("/:account", (req, res) => {
|
|||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
res.status(204).send()
|
res.status(204).send()
|
||||||
|
for (res of update.values()) {
|
||||||
|
// res.write("data: update\n\n")
|
||||||
|
res.write('event: update\n');
|
||||||
|
res.write('data: {}\n\n');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -82,6 +98,13 @@ router.delete("/:account", (req, res) => {
|
|||||||
const acc = db.prepare("DELETE FROM accounts WHERE name = ? RETURNING *").run(req.params.account)
|
const acc = db.prepare("DELETE FROM accounts WHERE name = ? RETURNING *").run(req.params.account)
|
||||||
|
|
||||||
res.status(200).send()
|
res.status(200).send()
|
||||||
|
for (res of update.values()) {
|
||||||
|
// res.write("data: update\n\n")
|
||||||
|
res.write('event: update\n');
|
||||||
|
res.write('data: {}\n\n');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -19,9 +19,38 @@ function socketConnectionRequest(req, res, next) {
|
|||||||
console.log('New connection established')
|
console.log('New connection established')
|
||||||
}
|
}
|
||||||
|
|
||||||
function publishMessageToConnectedSockets(data) {
|
const update = new Map()
|
||||||
console.log("something changed")
|
async function mysse(req, res) {
|
||||||
socket.write(`update: ${data}\n`);
|
console.log('Got /events');
|
||||||
|
|
||||||
|
res.set({
|
||||||
|
'Cache-Control': 'no-cache',
|
||||||
|
'Content-Type': 'text/event-stream',
|
||||||
|
'Connection': 'keep-alive'
|
||||||
|
});
|
||||||
|
res.flushHeaders();
|
||||||
|
|
||||||
|
|
||||||
|
// Tell the client to retry every 10 seconds if connectivity is lost
|
||||||
|
res.write('retry: 10000\n\n');
|
||||||
|
update.set(Math.random(), res)
|
||||||
|
console.log("connected")
|
||||||
|
res.write("data: update\n\n")
|
||||||
|
// while (true ) {
|
||||||
|
// await new Promise(resolve => setTimeout(resolve, 1000));
|
||||||
|
|
||||||
|
// // console.log('Emit', ++count);
|
||||||
|
// // Emit an SSE that contains the current 'count' as a string
|
||||||
|
// res.write(`data: ${update}\n\n`);
|
||||||
|
// // update = false;
|
||||||
|
|
||||||
|
// }
|
||||||
|
};
|
||||||
|
|
||||||
|
function set_update() {
|
||||||
|
update = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = { router, socketConnectionRequest, publishMessageToConnectedSockets};
|
|
||||||
|
|
||||||
|
module.exports = { router, mysse, update};
|
||||||
|
|||||||
@ -2,12 +2,13 @@ const express = require('express');
|
|||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
const db = require("../dependencies");
|
const db = require("../dependencies");
|
||||||
const { publishMessageToConnectedSockets } = require("./reset")
|
const { update } = require("./reset")
|
||||||
|
|
||||||
router.get("/", (req, res) => {
|
router.get("/", (req, res) => {
|
||||||
const transactions = db.prepare("SELECT transaction_id as id, postingDate, valueDate, title FROM transactions").all();
|
const transactions = db.prepare("SELECT transaction_id as id, postingDate, valueDate, title FROM transactions").all();
|
||||||
|
|
||||||
res.send(transactions)
|
res.send(transactions)
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -25,11 +26,17 @@ router.post("/", (req, res) => {
|
|||||||
const db_entries = db.prepare("INSERT INTO transaction_entries (transaction_id, account_name, amount, label) VALUES (?, ?, ?, ?)").run(db_transaction.lastInsertRowid, transaction.entries[i].account, transaction.entries[i].amount, transaction.entries[i].label)
|
const db_entries = db.prepare("INSERT INTO transaction_entries (transaction_id, account_name, amount, label) VALUES (?, ?, ?, ?)").run(db_transaction.lastInsertRowid, transaction.entries[i].account, transaction.entries[i].amount, transaction.entries[i].label)
|
||||||
}
|
}
|
||||||
|
|
||||||
publishMessageToConnectedSockets("lol")
|
|
||||||
|
|
||||||
res.send({
|
res.send({
|
||||||
id: db_transaction.lastInsertRowid
|
id: db_transaction.lastInsertRowid
|
||||||
})
|
})
|
||||||
|
for (res of update.values()) {
|
||||||
|
// res.write("data: update\n\n")
|
||||||
|
res.write('event: update\n');
|
||||||
|
res.write('data: {}\n\n');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
router.get("/:id", (req, res) => {
|
router.get("/:id", (req, res) => {
|
||||||
@ -51,9 +58,14 @@ router.put("/:id", (req, res) => {
|
|||||||
const db_entries = db.prepare("INSERT INTO transaction_entries (transaction_id, account_name, amount, label) VALUES (?, ?, ?, ?)").run(req.params.id, req.body.entries[i].account, req.body.entries[i].amount, req.body.entries[i].label)
|
const db_entries = db.prepare("INSERT INTO transaction_entries (transaction_id, account_name, amount, label) VALUES (?, ?, ?, ?)").run(req.params.id, req.body.entries[i].account, req.body.entries[i].amount, req.body.entries[i].label)
|
||||||
}
|
}
|
||||||
|
|
||||||
publishMessageToConnectedSockets("lol")
|
|
||||||
|
|
||||||
res.status(204).send()
|
res.status(204).send()
|
||||||
|
for (res of update.values()) {
|
||||||
|
// res.write("data: update\n\n")
|
||||||
|
res.write('event: update\n');
|
||||||
|
res.write('data: {}\n\n');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -61,9 +73,15 @@ router.delete("/:id", (req, res) => {
|
|||||||
const delete_entries = db.prepare("DELETE FROM transaction_entries WHERE transaction_id = ?").run(req.params.id)
|
const delete_entries = db.prepare("DELETE FROM transaction_entries WHERE transaction_id = ?").run(req.params.id)
|
||||||
const delete_transaction = db.prepare("DELETE FROM transaction WHERE transaction_id = ?").run(req.params.id)
|
const delete_transaction = db.prepare("DELETE FROM transaction WHERE transaction_id = ?").run(req.params.id)
|
||||||
|
|
||||||
publishMessageToConnectedSockets("lol")
|
|
||||||
|
|
||||||
res.status(204).send()
|
res.status(204).send()
|
||||||
|
for (res of update.values()) {
|
||||||
|
// res.write("data: update\n\n")
|
||||||
|
res.write('event: update\n');
|
||||||
|
res.write('data: {}\n\n');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user