game function complete
This commit is contained in:
131
backend.js
131
backend.js
@ -14,57 +14,7 @@ app.use(express.static(join(__dirname, "session")));
|
||||
|
||||
const db = new sqlite3.Database("imposter.db");
|
||||
|
||||
//datenbank inizalisierung
|
||||
app.get("/:sessionId/:username", (req, res) => {
|
||||
const { sessionId, username } = req.params;
|
||||
|
||||
db.serialize(() => {
|
||||
db.run(`CREATE TABLE IF NOT EXISTS "${sessionId}" (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user TEXT ,
|
||||
ready BOOL,
|
||||
state BOOL
|
||||
)`);
|
||||
|
||||
db.run(`CREATE TABLE IF NOT EXISTS sessionState (
|
||||
sessionId TEXT PRIMARY KEY,
|
||||
state BOOL
|
||||
)`);
|
||||
db.run(
|
||||
`INSERT OR IGNORE INTO sessionState (sessionId, state) VALUES (?,?)`,
|
||||
[sessionId, 0],
|
||||
);
|
||||
|
||||
db.get(
|
||||
`SELECT id FROM "${sessionId}" WHERE user = ?`,
|
||||
[username],
|
||||
(err, rows) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
}
|
||||
if (rows) {
|
||||
console.log("user exists");
|
||||
} else {
|
||||
db.run(
|
||||
`INSERT OR IGNORE INTO "${sessionId}" (user, ready, state) VALUES (?, ?, ?)`,
|
||||
[username, 0, 0],
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
//beim neuladen der seite ready auf false setzen
|
||||
db.run(`UPDATE "${sessionId}" SET ready = false WHERE user = ?`, [username]);
|
||||
res.sendFile(join(__dirname, "session", "session.html"));
|
||||
});
|
||||
|
||||
app.get("/:sessionId/:username/game", (req, res) => {
|
||||
const { sessionId, username } = req.params;
|
||||
|
||||
res.sendFile(join(__dirname, "game", "game.html"));
|
||||
});
|
||||
|
||||
// --- API- und andere spezifische Routes (bleiben oben) ---
|
||||
app.get("/api/:sessionId/:username/createImposter", (req, res) => {
|
||||
const { sessionId, username } = req.params;
|
||||
|
||||
@ -76,6 +26,7 @@ app.get("/api/:sessionId/:username/createImposter", (req, res) => {
|
||||
}
|
||||
console.log(row.length);
|
||||
createImposter(sessionId, row.length);
|
||||
res.status(200).send("ok");
|
||||
});
|
||||
});
|
||||
|
||||
@ -124,12 +75,13 @@ app.put(`/api/words/add`, (req, res) => {
|
||||
db.run(`CREATE TABLE IF NOT EXISTS words (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
word TEXT NOT NULL,
|
||||
imposterWord TEXT NOT NULL
|
||||
imposterWord TEXT NOT NULL,
|
||||
inUse BOOL
|
||||
)`);
|
||||
|
||||
db.run(
|
||||
`INSERT INTO words (word, imposterWord) VALUES (?, ?)`,
|
||||
[payload.word, payload.imposterWord],
|
||||
`INSERT INTO words (word, imposterWord, inUse) VALUES (?, ?, ?)`,
|
||||
[payload.word, payload.imposterWord, 0],
|
||||
function (err) {
|
||||
if (err) {
|
||||
console.error("inserted words error:", err);
|
||||
@ -141,7 +93,6 @@ app.put(`/api/words/add`, (req, res) => {
|
||||
});
|
||||
});
|
||||
|
||||
//ready status updaten
|
||||
app.put("/api/ready/:sessionId", (req, res) => {
|
||||
const { sessionId } = req.params;
|
||||
const payload = req.body;
|
||||
@ -171,11 +122,73 @@ app.put("/api/ready/:sessionId", (req, res) => {
|
||||
);
|
||||
});
|
||||
|
||||
app.get("/api/:sessionId/:username/state", (req, res) => {
|
||||
const { sessionId, username } = req.params;
|
||||
const payload = req.body;
|
||||
app.get("/api/getWords", (req, res) => {
|
||||
db.get(`SELECT word, imposterWord FROM words WHERE inUse = 1`,
|
||||
(err, rows) => {
|
||||
if (err) {
|
||||
console.log(err);
|
||||
}
|
||||
if (rows) {
|
||||
res.status(200).json(rows);
|
||||
} else {
|
||||
db.run(`UPDATE words SET inUse = 1 WHERE id = (SELECT id FROM words ORDER BY RANDOM() LIMIT 1)`)
|
||||
res.status(201).json({update: true});
|
||||
console.log("update")
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
});
|
||||
|
||||
db.get();
|
||||
|
||||
app.get("/:sessionId/:username/game", (req, res) => {
|
||||
res.sendFile(join(__dirname, "game", "game.html"));
|
||||
});
|
||||
|
||||
|
||||
app.get("/:sessionId/:username", (req, res) => {
|
||||
const { sessionId, username } = req.params;
|
||||
|
||||
db.serialize(() => {
|
||||
db.run(`CREATE TABLE IF NOT EXISTS "${sessionId}" (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user TEXT ,
|
||||
ready BOOL,
|
||||
state BOOL
|
||||
)`);
|
||||
|
||||
db.run(`CREATE TABLE IF NOT EXISTS sessionState (
|
||||
sessionId TEXT PRIMARY KEY,
|
||||
state BOOL
|
||||
)`);
|
||||
db.run(
|
||||
`INSERT OR IGNORE INTO sessionState (sessionId, state) VALUES (?,?)`,
|
||||
[sessionId, 0],
|
||||
);
|
||||
|
||||
db.get(
|
||||
`SELECT id FROM "${sessionId}" WHERE user = ?`,
|
||||
[username],
|
||||
(err, rows) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
}
|
||||
if (rows) {
|
||||
console.log("user exists");
|
||||
} else {
|
||||
db.run(
|
||||
`INSERT OR IGNORE INTO "${sessionId}" (user, ready, state) VALUES (?, ?, ?)`,
|
||||
[username, 0, 0],
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
//beim neuladen der seite ready auf false setzen
|
||||
db.run(`UPDATE "${sessionId}" SET ready = false WHERE user = ?`, [username], () => {
|
||||
res.sendFile(join(__dirname, "session", "session.html"));
|
||||
});
|
||||
});
|
||||
|
||||
app.listen(3000, () => {
|
||||
|
||||
Reference in New Issue
Block a user