aquavox/src/routes/api/database/song/[id]/+server.ts
alikia2x a9b1a3f9cd feature: frontend for database showing page
basic frontend for submit & edit page
2024-07-12 00:34:57 +08:00

30 lines
967 B
TypeScript

import { getCurrentFormattedDateTime } from '$lib/songUpdateTime';
import { json, error } from '@sveltejs/kit';
import fs from 'fs';
export async function GET({ params }) {
const filePath = `./data/song/${params.id}.json`;
if (!fs.existsSync(filePath)) {
return error(404, {
message: "No correspoding song."
})
}
const data = fs.readFileSync(filePath);
return json(JSON.parse(data.toString()));
}
export async function POST({ params, request }) {
const timeStamp = new Date().getTime();
if (!fs.existsSync("./data/pending/")) {
fs.mkdirSync("./data/pending");
}
const filePath = `./data/pending/${params.id}-${timeStamp}.json`;
const data: MusicMetadata = await request.json();
data.updateTime = getCurrentFormattedDateTime();
fs.writeFileSync(filePath, JSON.stringify(data, null, 4));
return json({
"message": "successfully created"
}, {
status: 201
});
}