53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
const express = require("express");
|
|
const instructorRouter = express.Router();
|
|
const { PrismaClient } = require("@prisma/client");
|
|
const prisma = new PrismaClient();
|
|
|
|
// For new users sign-up via Google oAuth:
|
|
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",
|
|
},
|
|
});
|
|
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 });
|
|
}
|
|
} catch (err) {
|
|
console.error("Error during user registration:", err.message);
|
|
res.status(500).json({ error: err.message });
|
|
}
|
|
});
|
|
|
|
module.exports = instructorRouter;
|