Migrate to tasks architecture
This commit is contained in:
@@ -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}`,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@@ -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);
|
|
||||||
});
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
export default defineEventHandler(async (event) => {
|
|
||||||
const query = getQuery(event);
|
|
||||||
|
|
||||||
return { "hub.challenge": query["hub.challenge"] };
|
|
||||||
});
|
|
||||||
@@ -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,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
});
|
|
||||||
Reference in New Issue
Block a user