49 lines
999 B
JavaScript
49 lines
999 B
JavaScript
const express = require("express");
|
|
const router = express.Router();
|
|
const db = require("../database/database");
|
|
|
|
/* Character erstellen Seite */
|
|
|
|
router.get("/", (req, res) => {
|
|
if (!req.session.user) {
|
|
return res.redirect("/");
|
|
}
|
|
|
|
res.render("create-character");
|
|
});
|
|
|
|
/* Character speichern */
|
|
|
|
router.post("/", async (req, res) => {
|
|
const { ingame_name } = req.body;
|
|
const userId = req.session.user.id;
|
|
|
|
const nameRegex = /^[a-zA-Z0-9_]{3,16}$/;
|
|
|
|
if (!nameRegex.test(ingame_name)) {
|
|
return res.render("create-character", {
|
|
error: "Ungültiger Name",
|
|
});
|
|
}
|
|
|
|
const [existing] = await db.query(
|
|
"SELECT id FROM accounts WHERE ingame_name = ?",
|
|
[ingame_name],
|
|
);
|
|
|
|
if (existing.length > 0) {
|
|
return res.render("create-character", {
|
|
error: "Name bereits vergeben",
|
|
});
|
|
}
|
|
|
|
await db.query("UPDATE accounts SET ingame_name = ? WHERE id = ?", [
|
|
ingame_name,
|
|
userId,
|
|
]);
|
|
|
|
res.redirect("/launcher");
|
|
});
|
|
|
|
module.exports = router;
|