Files
ghostwriter/server/api/tasks/generate-content.post.ts
2026-03-05 16:28:19 +02:00

57 lines
1.4 KiB
TypeScript

import { createActivityContent } from "~~/server/utils/create-content";
export default defineEventHandler(async (event) => {
await validateHookdeck(event);
const body = await readBody(event);
const db = useDrizzle();
const user = await db.query.users.findFirst({
where: (f, o) => o.eq(f.id, body.owner_id),
with: {
preferences: true,
},
});
if (!user?.preferences.data?.enabled) {
return;
}
const strava = await useStrava(body.owner_id);
const currentActivity = await strava!<any>(`/activities/${body.object_id}`);
const [, ...previousActivities] = await strava!<any[]>(`/activities`, {
query: {
per_page: 10,
},
});
const [aiError, stravaRequestBody] = await createActivityContent({
currentActivity,
previousActivities,
user: user!,
}).catch((err) => [err]);
if (aiError) {
console.log(aiError.message);
throw createError({
statusCode: 500,
message: `OPENAI API: ${aiError.message}`,
});
}
console.log(JSON.stringify(stravaRequestBody));
// await strava!(`activities/${body.object_id}`, {
// method: "PUT",
// body: {
// name: stravaRequestBody.name,
// description: stravaRequestBody.description,
// },
// }).catch((error) => {
// throw createError({
// statusCode: 500,
// message: `Strava API: ${error.message}`,
// });
// });
});