import { NextResponse } from "next/server";
import { promises as fs } from "fs";
import path from "path";
type dbSchema = {
pageView: number;
printResume: number;
savePdf: number;
};
export async function GET() {
const jsonDirectory = path.join(process.cwd(), "json");
const data = await fs.readFile(process.cwd() + "/public/db.json", "utf-8");
const dataInJson = JSON.parse(data);
return NextResponse.json(dataInJson);
}
export async function POST(req: Request) {
const data = (await req.json()) as { type: "print" | "view" | "save" };
let db = await ReadDb();
const dbJson = JSON.parse(db) as dbSchema;
if (data.type === "print") {
dbJson.printResume = dbJson.printResume + 1;
} else if (data.type === "save") {
dbJson.savePdf = dbJson.savePdf + 1;
} else if (data.type === "view") {
dbJson.pageView = dbJson.pageView + 1;
}
SaveDb(dbJson);
return NextResponse.json({ status: "Ok" });
}
async function ReadDb() {
const jsonDirectory = path.join(process.cwd(), "json");
const db = await fs.readFile(process.cwd() + "/public/db.json", "utf-8");
return db;
}
async function SaveDb(newDb: dbSchema) {
const db = await fs.writeFile(
process.cwd() + "/public/db.json",
JSON.stringify(newDb)
);
}