From 64d720143e923e36001f35920953ea22bf058dc3 Mon Sep 17 00:00:00 2001 From: Kailasdevdas Date: Tue, 21 Apr 2026 11:50:48 +0530 Subject: [PATCH] feat: add create user script --- backend/package.json | 3 +- backend/src/routes/auth.routes.js | 3 +- backend/src/utils/createUser.js | 47 +++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 backend/src/utils/createUser.js 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(); + });