Simplify product
This commit is contained in:
@@ -1,55 +0,0 @@
|
||||
export default defineEventHandler(async (event) => {
|
||||
const session = await requireUserSession(event);
|
||||
|
||||
const db = useDrizzle();
|
||||
|
||||
const query = getQuery(event);
|
||||
|
||||
const user = await db.query.users.findFirst({
|
||||
where: (f, o) => o.eq(f.id, session.user.id),
|
||||
with: {
|
||||
preferences: true,
|
||||
},
|
||||
});
|
||||
|
||||
if (!user?.premium) {
|
||||
throw createError({
|
||||
statusCode: 400,
|
||||
message: "Premium membership required.",
|
||||
});
|
||||
}
|
||||
|
||||
const activityId = (query.activity as string).replace(
|
||||
/https:\/\/(www\.)?strava\.com\/activities\//,
|
||||
"",
|
||||
);
|
||||
|
||||
const strava = await useStrava(session.user.id);
|
||||
|
||||
const currentActivity = await strava!<any>(`/activities/${activityId}`);
|
||||
const [, ...previousActivities] = await strava!<any[]>(`/activities`);
|
||||
|
||||
const [aiError, stravaRequestBody] = await createActivityContent({
|
||||
currentActivity,
|
||||
previousActivities,
|
||||
user: user!,
|
||||
});
|
||||
if (aiError) {
|
||||
throw createError({
|
||||
statusCode: 500,
|
||||
message: `OPENAI API: ${aiError.message}`,
|
||||
});
|
||||
}
|
||||
|
||||
await strava!(`activities/${activityId}`, {
|
||||
method: "PUT",
|
||||
body: stravaRequestBody,
|
||||
}).catch((error) => {
|
||||
throw createError({
|
||||
statusCode: 500,
|
||||
message: `Strava API: ${error.message}`,
|
||||
});
|
||||
});
|
||||
|
||||
sendNoContent(event);
|
||||
});
|
||||
1
server/auth.d.ts
vendored
1
server/auth.d.ts
vendored
@@ -16,7 +16,6 @@ declare module "#auth-utils" {
|
||||
sex: string;
|
||||
weight: number;
|
||||
avatar: string;
|
||||
premium: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@ import {
|
||||
numeric,
|
||||
timestamp,
|
||||
jsonb,
|
||||
boolean,
|
||||
} from "drizzle-orm/pg-core";
|
||||
|
||||
export const users = pgTable("users", {
|
||||
@@ -16,9 +15,6 @@ export const users = pgTable("users", {
|
||||
city: text("city"),
|
||||
country: text("country"),
|
||||
sex: text("sex"),
|
||||
premium: boolean("premium")
|
||||
.notNull()
|
||||
.$defaultFn(() => false),
|
||||
weight: numeric("weight", {
|
||||
mode: "number",
|
||||
}),
|
||||
|
||||
@@ -32,7 +32,6 @@ export default defineOAuthStravaEventHandler({
|
||||
sex: auth.user.sex,
|
||||
weight: auth.user.weight,
|
||||
avatar: auth.user.profile,
|
||||
premium: false,
|
||||
};
|
||||
|
||||
const db = useDrizzle();
|
||||
@@ -42,7 +41,7 @@ export default defineOAuthStravaEventHandler({
|
||||
.values(userPayload)
|
||||
.onConflictDoUpdate({
|
||||
target: tables.users.id,
|
||||
set: omit(userPayload, ["id", "premium"]),
|
||||
set: omit(userPayload, ["id"]),
|
||||
})
|
||||
.returning();
|
||||
|
||||
@@ -78,7 +77,7 @@ export default defineOAuthStravaEventHandler({
|
||||
.onConflictDoNothing();
|
||||
|
||||
await setUserSession(event, {
|
||||
user: { ...userPayload, premium: user.premium },
|
||||
user: userPayload,
|
||||
});
|
||||
|
||||
sendRedirect(event, "/");
|
||||
|
||||
Reference in New Issue
Block a user