32 lines
975 B
TypeScript
32 lines
975 B
TypeScript
import { NextRequest, NextResponse } from 'next/server'
|
|
import { prisma } from '@/lib/prisma'
|
|
import { withCors } from '@/lib/middleware'
|
|
|
|
async function handleGetVersion(req: NextRequest) {
|
|
try {
|
|
const latestVersion = await prisma.version.findFirst({
|
|
where: { isLatest: true }
|
|
})
|
|
|
|
if (!latestVersion) {
|
|
return NextResponse.json({ error: 'No version found' }, { status: 404 })
|
|
}
|
|
|
|
const protocol = req.headers.get('x-forwarded-proto') || 'http'
|
|
const host = req.headers.get('host')
|
|
const downloadUrl = `${protocol}://${host}/downloads/${latestVersion.fileId}`
|
|
|
|
return NextResponse.json({
|
|
version: latestVersion.version,
|
|
download_url: downloadUrl,
|
|
checksum: latestVersion.checksum
|
|
})
|
|
|
|
} catch (error) {
|
|
console.error('获取版本信息失败:', error)
|
|
return NextResponse.json({ error: '获取版本信息失败' }, { status: 500 })
|
|
}
|
|
}
|
|
|
|
export const GET = withCors(handleGetVersion)
|