fix existing user enrollment for instructors
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2026-08-13 13:34:24 +09:00
parent 8d5e2f8113
commit 5ebf098316
+13 -6
View File
@@ -826,10 +826,9 @@ authRoutes.post('/instructor/students', authRequired, async (c) => {
const email = body.data.email.toLowerCase()
const existingUser = await findUserByEmail(email)
if (existingUser) return c.json({ error: 'email_already_registered' }, 409)
try {
const user = await createManagedUser({
const user = existingUser ?? await createManagedUser({
email,
password: body.data.password,
name: body.data.name,
@@ -839,17 +838,25 @@ authRoutes.post('/instructor/students', authRequired, async (c) => {
licenseCode: body.data.licenseCode,
})
await prisma.userAppRole.create({
data: {
await prisma.userAppRole.upsert({
where: {
userId_appKey_roleCode: {
userId: user.id,
appKey: 'LMS',
roleCode: 'STUDENT',
},
},
create: {
userId: user.id,
appKey: 'LMS',
roleCode: 'STUDENT',
assignedById: instructor.id,
},
update: {},
})
const createdUser = await findUserById(user.id)
return c.json({ user: userResponse(createdUser ?? user) }, 201)
const resolvedUser = await findUserById(user.id)
return c.json({ user: userResponse(resolvedUser ?? user) }, existingUser ? 200 : 201)
} catch {
return c.json({ error: 'user_create_failed' }, 400)
}