From f01ef9db2a3749eeb56faa66fb9ed580aac42281 Mon Sep 17 00:00:00 2001 From: Elian Echavarria Date: Mon, 30 Jun 2025 17:10:51 -0400 Subject: [PATCH] Some backend Changes --- .env.example | 2 -- api/users.js | 31 ++++++++++++++++++++++++++++++- database/db.js | 3 ++- database/user.js | 1 + package.json | 2 +- 5 files changed, 34 insertions(+), 5 deletions(-) delete mode 100644 .env.example diff --git a/.env.example b/.env.example deleted file mode 100644 index ed58cd2..0000000 --- a/.env.example +++ /dev/null @@ -1,2 +0,0 @@ -DATABASE_URL=postgres://hostname:5432/database-name -FRONTEND_URL=http://localhost:3000 diff --git a/api/users.js b/api/users.js index ac0fac1..a246b81 100644 --- a/api/users.js +++ b/api/users.js @@ -1,6 +1,6 @@ const express = require("express"); const router = express.Router(); -const { Task, User } = require("../database"); +const { User } = require("../database"); // GET all users router.get("/", async (req, res) => { @@ -49,4 +49,33 @@ router.post("/", async (req, res) => { } }); +router.patch("/:id", async (req, res) => { + try { + const user = await User.findByPk(req.params.id); + if (!user) { + return res.status(404).send({ error: "User not found" }); + } + await user.update(req.body); + + res.send(user); + } catch (error) { + res.status(500).json({ error: "Failed to update user" }); + } +}); + +// DELETE a user by id +router.delete("/:id", async (req, res) => { + try { + const user = await User.findByPk(req.params.id); + if (!user) { + return res.status(404).send({ error: "User not found" }); + } + await user.destroy(); + res.status(204).send(); + } catch (error) { + res.status(500).json({ error: "Failed to delete user" }); + } +}); + + module.exports = router; diff --git a/database/db.js b/database/db.js index da837c4..e9c8777 100644 --- a/database/db.js +++ b/database/db.js @@ -4,7 +4,8 @@ const pg = require("pg"); const db = new Sequelize( process.env.DATABASE_URL || "postgres://localhost:5432/todo_list", { - logging: false, // comment this line to enable logging + dialect: "postgres", + logging: false, // optional // comment this line to enable logging } ); diff --git a/database/user.js b/database/user.js index e57b6c8..0cfe78e 100644 --- a/database/user.js +++ b/database/user.js @@ -8,6 +8,7 @@ const User = db.define("user", { name: { type: DataTypes.STRING, allowNull: false, + unique: true }, }); diff --git a/package.json b/package.json index e6d2a1d..a74c18a 100644 --- a/package.json +++ b/package.json @@ -26,4 +26,4 @@ "optionalDependencies": { "win-node-env": "^0.6.1" } -} +} \ No newline at end of file