feat: ditch triplit, move to postgresql + drizzle orm
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import { and, eq } from 'drizzle-orm';
|
||||
import * as z from 'zod';
|
||||
import { models } from '~~/drizzle/schema';
|
||||
import { db } from '~~/server/lib/db';
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
await protectRoute(event);
|
||||
const userId = event.context.user!.id as string;
|
||||
|
||||
const provider = await db.query.providers.findFirst({
|
||||
where: {
|
||||
id: getRouterParam(event, 'providerId'),
|
||||
userId,
|
||||
},
|
||||
});
|
||||
|
||||
if (!provider) throw createError({ statusCode: 404, message: 'Provider not found' });
|
||||
|
||||
const result = await readValidatedBody(event, (body) =>
|
||||
z.object({ enabled: z.boolean() }).safeParse(body)
|
||||
);
|
||||
if (!result.success) {
|
||||
throw createError({ statusCode: 400, message: result.error.issues[0]!.message });
|
||||
}
|
||||
|
||||
const { enabled } = result.data;
|
||||
|
||||
const res = await db.update(models).set({
|
||||
enabled
|
||||
}).where(and(
|
||||
eq(models.userId, userId),
|
||||
eq(models.providerId, provider.id),
|
||||
));
|
||||
|
||||
return {
|
||||
ok: res.rowCount ?? 0 > 0,
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user