microservices/user-db-service/routes/InstructorRouter.js

54 lines
1.5 KiB
JavaScript
Raw Normal View History

2025-04-21 09:59:08 -07:00
const express = require("express");
const instructorRouter = express.Router();
2025-04-21 11:35:10 -07:00
const { PrismaClient } = require("@prisma/client");
const prisma = new PrismaClient();
2025-04-21 09:59:08 -07:00
// For new users sign-up via Google oAuth:
2025-04-21 11:35:10 -07:00
instructorRouter.post("/register-user", async (req, res) => {
try {
console.log("Received request to register user");
const { id, displayName, emails } = req.body.user;
console.log("User details from request:", { id, displayName, emails });
const email = emails[0].value;
console.log("Extracted email:", email);
// Check if user exists
const user = await prisma.users.findFirst({
where: {
email: {
equals: email,
mode: "insensitive",
},
},
});
console.log("User lookup result:", user);
// if it is a new user, insert it into the DB
if (!user) {
console.log("User does not exist, creating new user");
const newUser = await prisma.users.create({
data: {
name: displayName,
email: email,
role: "instructor",
googleid: id,
logintype: "google",
},
2025-04-21 09:59:08 -07:00
});
2025-04-21 11:35:10 -07:00
console.log("New user created:", newUser);
res.json({ message: "User added successfully", user: newUser });
} else {
console.log("User already exists:", user);
res.json({ message: "User exist", user: user });
2025-04-21 09:59:08 -07:00
}
2025-04-21 11:35:10 -07:00
} catch (err) {
console.error("Error during user registration:", err.message);
res.status(500).json({ error: err.message });
}
});
2025-04-21 09:59:08 -07:00
module.exports = instructorRouter;