Spaces:
Sleeping
Sleeping
File size: 1,253 Bytes
a572854 4c2a557 a572854 4c2a557 a572854 4c2a557 a572854 4c2a557 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | import { query } from "@/lib/db/client";
import { NextResponse } from "next/server";
import { verifyApiToken } from "@/lib/auth";
export async function GET(req: Request) {
const authError = verifyApiToken(req);
if (authError) {
return authError;
}
try {
const users = await query("SELECT * FROM users ORDER BY id");
const modelPrices = await query("SELECT * FROM model_prices ORDER BY id");
const records = await query("SELECT * FROM user_usage_records ORDER BY id");
const exportData = {
version: "1.0",
timestamp: new Date().toISOString(),
data: {
users: users.rows,
model_prices: modelPrices.rows,
user_usage_records: records.rows,
},
};
const headers = new Headers();
headers.set("Content-Type", "application/json");
headers.set(
"Content-Disposition",
`attachment; filename=openwebui_monitor_backup_${
new Date().toISOString().split("T")[0]
}.json`
);
return new Response(JSON.stringify(exportData, null, 2), {
headers,
});
} catch (error) {
console.error("Fail to export database:", error);
return NextResponse.json(
{ error: "Fail to export database" },
{ status: 500 }
);
}
}
|