diff --git a/backend/package.json b/backend/package.json index d208b7c..65be22f 100644 --- a/backend/package.json +++ b/backend/package.json @@ -8,7 +8,8 @@ "start": "node src/app.js", "prisma": "prisma", "migrate": "npx prisma migrate dev", - "generate": "npx prisma generate" + "generate": "npx prisma generate", + "create-user": "node src/utils/createUser.js" }, "keywords": [], "author": "", diff --git a/backend/src/routes/auth.routes.js b/backend/src/routes/auth.routes.js index a121aeb..6477ea9 100644 --- a/backend/src/routes/auth.routes.js +++ b/backend/src/routes/auth.routes.js @@ -1,9 +1,8 @@ import express from "express"; -import {register, login} from "../controllers/auth.controller.js"; +import { login } from "../controllers/auth.controller.js"; const router = express.Router(); -router.post("/register", register); router.post("/login", login); export default router; diff --git a/backend/src/utils/createUser.js b/backend/src/utils/createUser.js new file mode 100644 index 0000000..91f4d6c --- /dev/null +++ b/backend/src/utils/createUser.js @@ -0,0 +1,47 @@ +import prisma from "../prisma/client.js"; +import { hashPassword } from "./password.js"; +async function main() { + const username = process.argv[2]; + const password = process.argv[3]; + const role = process.argv[4] || "admin"; + + if (!username || !password) { + console.log( + "Usage: node scripts/createUser.js [role]", + ); + process.exit(1); + } + + const existingUser = await prisma.user.findUnique({ + where: { username }, + }); + + if (existingUser) { + console.log("User already exists"); + process.exit(1); + } + + const hashedPassword = await hashPassword(password); + + const user = await prisma.user.create({ + data: { + username, + password: hashedPassword, + role, + }, + }); + + console.log("User created:", { + id: user.id, + username: user.username, + role: user.role, + }); +} + +main() + .catch((e) => { + console.error(e); + }) + .finally(async () => { + await prisma.$disconnect(); + });