42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import { NextRequest, NextResponse } from 'next/server'
|
|
import { writeFile, mkdir } from 'fs/promises'
|
|
import { join } from 'path'
|
|
|
|
export async function POST(request: NextRequest) {
|
|
try {
|
|
const body = await request.json()
|
|
console.log('API: Received request with fileName:', body.fileName)
|
|
|
|
const { fileName, data } = body
|
|
|
|
const dataDir = join(process.cwd(), 'data')
|
|
const filePath = join(dataDir, fileName)
|
|
|
|
console.log('API: Writing to:', filePath)
|
|
|
|
try {
|
|
await mkdir(dataDir, { recursive: true })
|
|
console.log('API: Data directory created/verified')
|
|
} catch (error) {
|
|
console.log('API: Data directory already exists')
|
|
}
|
|
|
|
await writeFile(filePath, JSON.stringify(data, null, 2), 'utf8')
|
|
console.log('API: File written successfully')
|
|
|
|
return NextResponse.json({
|
|
success: true,
|
|
message: 'Mesh data cached successfully',
|
|
fileName
|
|
})
|
|
} catch (error) {
|
|
console.error('API: Error caching mesh data:', error)
|
|
return NextResponse.json(
|
|
{
|
|
success: false,
|
|
error: `Failed to cache mesh data: ${error}`
|
|
},
|
|
{ status: 500 }
|
|
)
|
|
}
|
|
}
|