diff --git a/backend/src/api.js b/backend/src/api.js index c55c85e..970fc7e 100644 --- a/backend/src/api.js +++ b/backend/src/api.js @@ -51,15 +51,15 @@ router.get("/healthcheck", (req, res) => { * input_method: 1 */ router.post("/users", async (req, res) => { - const { username, input_method = 0 } = req.body; - const [result] = await pool.query( - "INSERT INTO users (username, input_method) VALUES (?, ?)", + `INSERT INTO users (username, input_method) + VALUES (?, ?) + ON DUPLICATE KEY UPDATE id = LAST_INSERT_ID(id)`, [username, input_method] ); const [userRow] = await pool.query("SELECT * FROM users WHERE id = ?", [result.insertId]); - res.status(201).json(userRow[0]); + res.status(200).json(userRow[0]); }); /** diff --git a/backend/src/db.js b/backend/src/db.js index f54a33f..abba8da 100644 --- a/backend/src/db.js +++ b/backend/src/db.js @@ -23,7 +23,7 @@ const migrations = [ await conn.query(` CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, - username VARCHAR(32), + username VARCHAR(32) UNIQUE, input_method INT ) `); diff --git a/backend/src/index.js b/backend/src/index.js index 6d9dc5b..6ca2ed7 100644 --- a/backend/src/index.js +++ b/backend/src/index.js @@ -11,6 +11,7 @@ import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.join(path.dirname(__filename), ".."); // going back a dir cuz code is in src/ + const app = express(); const specs = swaggerJsdoc({ definition: {