All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 5s
- Fix useBrainstormSocket: stable guestId via useRef, remove setState in cleanup - Fix GhostCursor: direct DOM manipulation via refs, no useState re-renders - Fix all SQL embedding queries: add ::vector cast on text columns - Fix embedding truncation to 15000 chars (under 8192 token limit) - Fix NoteEmbedding INSERT: remove non-existent updatedAt column - Fix billing page: show all quota stats in grid instead of single metric - Fix usage meter: accordion expand/collapse, per-feature detail - Fix semantic search: rebuild 103 note embeddings, ::vector cast on vectorSearch - Fix brainstorm expand/manual-idea/create: ::vector cast on embedding SQL
34 lines
891 B
TypeScript
34 lines
891 B
TypeScript
import { NextRequest, NextResponse } from 'next/server'
|
|
import prisma from '@/lib/prisma'
|
|
import { auth } from '@/auth'
|
|
|
|
export async function GET(request: NextRequest) {
|
|
const session = await auth()
|
|
if (!session?.user?.id) {
|
|
return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })
|
|
}
|
|
|
|
if ((session.user as any)?.role !== 'ADMIN') {
|
|
return NextResponse.json({ users: [] })
|
|
}
|
|
|
|
const q = request.nextUrl.searchParams.get('q') || ''
|
|
if (q.length < 2) {
|
|
return NextResponse.json({ users: [] })
|
|
}
|
|
|
|
const users = await prisma.user.findMany({
|
|
where: {
|
|
id: { not: session.user.id },
|
|
OR: [
|
|
{ email: { contains: q, mode: 'insensitive' } },
|
|
{ name: { contains: q, mode: 'insensitive' } },
|
|
],
|
|
},
|
|
select: { id: true, name: true, email: true, image: true },
|
|
take: 8,
|
|
})
|
|
|
|
return NextResponse.json({ users })
|
|
}
|