44 lines
1.1 KiB
TypeScript
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;
|
|
},
|
|
});
|