mirror of
https://github.com/RhenCloud/Cloud-Home.git
synced 2026-01-22 17:39:07 +08:00
chore: 格式化代码
This commit is contained in:
@@ -1,56 +1,56 @@
|
||||
import { defineEventHandler, getQuery, createError } from "h3";
|
||||
import { useRuntimeConfig } from "#imports";
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const res = event.node.res;
|
||||
res.setHeader("Access-Control-Allow-Origin", "*");
|
||||
res.setHeader("Access-Control-Allow-Methods", "GET, OPTIONS");
|
||||
res.setHeader("Access-Control-Allow-Headers", "Content-Type");
|
||||
|
||||
if (event.node.req.method === "OPTIONS") {
|
||||
res.statusCode = 200;
|
||||
return "ok";
|
||||
}
|
||||
|
||||
if (event.node.req.method !== "GET") {
|
||||
throw createError({ statusCode: 405, statusMessage: "Method Not Allowed" });
|
||||
}
|
||||
|
||||
const config = useRuntimeConfig();
|
||||
const apiKey = config.wakatimeApiKey;
|
||||
if (typeof apiKey !== "string") {
|
||||
throw createError({ statusCode: 500, statusMessage: "Invalid WakaTime API Key configuration" });
|
||||
}
|
||||
|
||||
const query = getQuery(event);
|
||||
const apiUrl = (query.apiUrl as string) || config.wakatimeApiUrl;
|
||||
|
||||
const headers = {
|
||||
Authorization: `Basic ${Buffer.from(apiKey).toString("base64")}`,
|
||||
};
|
||||
|
||||
try {
|
||||
const [weeklyStatsResponse, allTimeStatsResponse, statusResponse] = await Promise.all([
|
||||
fetch(`${apiUrl}/users/current/stats/last_7_days`, { headers }),
|
||||
fetch(`${apiUrl}/users/current/stats/all_time`, { headers }),
|
||||
fetch(`${apiUrl}/users/current/status`, { headers }),
|
||||
]);
|
||||
|
||||
if (!weeklyStatsResponse.ok) {
|
||||
throw new Error(`Wakatime API error: ${weeklyStatsResponse.status}`);
|
||||
}
|
||||
|
||||
const weeklyStatsData = await weeklyStatsResponse.json();
|
||||
const allTimeStatsData = allTimeStatsResponse.ok ? await allTimeStatsResponse.json() : null;
|
||||
const statusData = statusResponse.ok ? await statusResponse.json() : null;
|
||||
|
||||
return {
|
||||
weekly: weeklyStatsData.data,
|
||||
allTime: allTimeStatsData ? allTimeStatsData.data : null,
|
||||
status: statusData,
|
||||
};
|
||||
} catch (error) {
|
||||
console.error("Wakatime API error:", error);
|
||||
throw createError({ statusCode: 500, statusMessage: "Failed to fetch Wakatime data" });
|
||||
}
|
||||
});
|
||||
import { defineEventHandler, getQuery, createError } from "h3";
|
||||
import { useRuntimeConfig } from "#imports";
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const res = event.node.res;
|
||||
res.setHeader("Access-Control-Allow-Origin", "*");
|
||||
res.setHeader("Access-Control-Allow-Methods", "GET, OPTIONS");
|
||||
res.setHeader("Access-Control-Allow-Headers", "Content-Type");
|
||||
|
||||
if (event.node.req.method === "OPTIONS") {
|
||||
res.statusCode = 200;
|
||||
return "ok";
|
||||
}
|
||||
|
||||
if (event.node.req.method !== "GET") {
|
||||
throw createError({ statusCode: 405, statusMessage: "Method Not Allowed" });
|
||||
}
|
||||
|
||||
const config = useRuntimeConfig();
|
||||
const apiKey = config.wakatimeApiKey;
|
||||
if (typeof apiKey !== "string") {
|
||||
throw createError({ statusCode: 500, statusMessage: "Invalid WakaTime API Key configuration" });
|
||||
}
|
||||
|
||||
const query = getQuery(event);
|
||||
const apiUrl = (query.apiUrl as string) || config.wakatimeApiUrl;
|
||||
|
||||
const headers = {
|
||||
Authorization: `Basic ${Buffer.from(apiKey).toString("base64")}`,
|
||||
};
|
||||
|
||||
try {
|
||||
const [weeklyStatsResponse, allTimeStatsResponse, statusResponse] = await Promise.all([
|
||||
fetch(`${apiUrl}/users/current/stats/last_7_days`, { headers }),
|
||||
fetch(`${apiUrl}/users/current/stats/all_time`, { headers }),
|
||||
fetch(`${apiUrl}/users/current/status`, { headers }),
|
||||
]);
|
||||
|
||||
if (!weeklyStatsResponse.ok) {
|
||||
throw new Error(`Wakatime API error: ${weeklyStatsResponse.status}`);
|
||||
}
|
||||
|
||||
const weeklyStatsData = await weeklyStatsResponse.json();
|
||||
const allTimeStatsData = allTimeStatsResponse.ok ? await allTimeStatsResponse.json() : null;
|
||||
const statusData = statusResponse.ok ? await statusResponse.json() : null;
|
||||
|
||||
return {
|
||||
weekly: weeklyStatsData.data,
|
||||
allTime: allTimeStatsData ? allTimeStatsData.data : null,
|
||||
status: statusData,
|
||||
};
|
||||
} catch (error) {
|
||||
console.error("Wakatime API error:", error);
|
||||
throw createError({ statusCode: 500, statusMessage: "Failed to fetch Wakatime data" });
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user