Migrate to tasks architecture

This commit is contained in:
2025-07-03 09:42:11 +03:00
parent 8c2725404d
commit cbc9abf67c
5 changed files with 0 additions and 101 deletions

View File

@@ -1,50 +0,0 @@
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: 20,
},
});
const [aiError, stravaRequestBody] = await createActivityContent({
currentActivity,
previousActivities,
user: user!,
}).catch((err) => [err]);
if (aiError) {
throw createError({
statusCode: 500,
message: `OPENAI API: ${aiError.message}`,
});
}
await strava!(`activities/${body.object_id}`, {
method: "PUT",
body: stravaRequestBody,
}).catch((error) => {
throw createError({
statusCode: 500,
message: `Strava API: ${error.message}`,
});
});
});

View File

@@ -1,19 +0,0 @@
import { get } from "radash";
import { eq } from "drizzle-orm";
export default defineEventHandler(async (event) => {
await validateHookdeck(event);
const body = await readBody(event);
const db = useDrizzle();
if (get(body, "updates.authorized") !== false) {
return;
}
await db
.delete(tables.users)
.where(eq(tables.users.id, get(body, "object_id")));
sendNoContent(event);
});

View File

@@ -1,5 +0,0 @@
export default defineEventHandler(async (event) => {
const query = getQuery(event);
return { "hub.challenge": query["hub.challenge"] };
});

View File

@@ -1,19 +0,0 @@
import { get } from "radash";
export default defineEventHandler(async (event) => {
await validateHookdeck(event);
const config = useRuntimeConfig();
const body = await readBody(event);
const aspectType = get(body, "aspect_type");
const objectType = get(body, "object_type");
await $fetch(`/webhooks/strava/${objectType}-${aspectType}`, {
method: "post",
body,
headers: {
"X-Hookdeck-Key": config.hookdeckKey,
},
});
});

View File

@@ -1,8 +0,0 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
buildInputs = [
pkgs.nodejs
pkgs.git
];
}