kepler-chat/src/lib/backend/convex/betterAuth.ts
Thomas G. Lopes 7c216dc18b working chat
2025-06-16 18:50:51 +01:00

44 lines
1.1 KiB
TypeScript

import { action, internalQuery, internalMutation, query as convexQuery } from './_generated/server';
import { internal } from './_generated/api';
import { ConvexHandler, type ConvexReturnType } from '@better-auth-kit/convex/handler';
import { v } from 'convex/values';
const { betterAuth, query, insert, update, delete_, count, getSession } = ConvexHandler({
action,
internalQuery,
internalMutation,
internal,
}) as ConvexReturnType;
export { betterAuth, query, insert, update, delete_, count, getSession };
export type SessionObj = {
_creationTime: number;
_id: string;
expiresAt: string;
ipAddress: string;
token: string;
updatedAt: string;
userAgent: string;
userId: string;
};
export const publicGetSession = convexQuery({
args: {
session_token: v.string(),
},
handler: async (ctx, args) => {
const s = await ctx.runQuery(internal.betterAuth.getSession, {
sessionToken: args.session_token,
});
// Without this if, typescript goes bonkers
if (!s) {
return false;
}
// this is also needed. I don't know why :(
const ret = s as SessionObj;
return ret;
},
});