Nyk
feat(docs): add docs knowledge APIs for issue 189
5a5899d
import { NextRequest, NextResponse } from 'next/server'
import { requireRole } from '@/lib/auth'
import { readLimiter } from '@/lib/rate-limit'
import { logger } from '@/lib/logger'
import { searchDocs } from '@/lib/docs-knowledge'
export async function GET(request: NextRequest) {
const auth = requireRole(request, 'viewer')
if ('error' in auth) return NextResponse.json({ error: auth.error }, { status: auth.status })
const rateCheck = readLimiter(request)
if (rateCheck) return rateCheck
try {
const { searchParams } = new URL(request.url)
const query = (searchParams.get('q') || searchParams.get('query') || '').trim()
const limit = Math.min(parseInt(searchParams.get('limit') || '50', 10), 200)
if (!query) {
return NextResponse.json({ error: 'Query required' }, { status: 400 })
}
const results = await searchDocs(query, limit)
return NextResponse.json({ query, results, count: results.length })
} catch (error) {
logger.error({ err: error }, 'GET /api/docs/search error')
return NextResponse.json({ error: 'Failed to search docs' }, { status: 500 })
}
}