mirror of
https://github.com/beilunyang/moemail.git
synced 2026-06-02 14:10:32 +08:00
49 lines
1.1 KiB
TypeScript
49 lines
1.1 KiB
TypeScript
import { createDb } from "@/lib/db"
|
|
import { users } from "@/lib/schema"
|
|
import { eq } from "drizzle-orm"
|
|
|
|
export const runtime = "edge"
|
|
|
|
export async function POST(request: Request) {
|
|
try {
|
|
const json = await request.json()
|
|
const { searchText } = json as { searchText: string }
|
|
|
|
if (!searchText) {
|
|
return Response.json({ error: "请提供用户名或邮箱地址" }, { status: 400 })
|
|
}
|
|
|
|
const db = createDb()
|
|
|
|
const user = await db.query.users.findFirst({
|
|
where: searchText.includes('@') ? eq(users.email, searchText) : eq(users.username, searchText),
|
|
with: {
|
|
userRoles: {
|
|
with: {
|
|
role: true
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
if (!user) {
|
|
return Response.json({ error: "未找到用户" }, { status: 404 })
|
|
}
|
|
|
|
return Response.json({
|
|
user: {
|
|
id: user.id,
|
|
name: user.name,
|
|
username: user.username,
|
|
email: user.email,
|
|
role: user.userRoles[0]?.role.name
|
|
}
|
|
})
|
|
} catch (error) {
|
|
console.error("Failed to find user:", error)
|
|
return Response.json(
|
|
{ error: "查询用户失败" },
|
|
{ status: 500 }
|
|
)
|
|
}
|
|
}
|