all repos — stealth-developers @ 81453c0542d093cf0faf523d510a6f6aa0eacd54

pkgs/db/src/utils/session.ts (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
import db, { eq } from "..";
import { sessions } from "../schemas";

export async function getUserSessions(id: number) {
	const result = await db.select().from(sessions).where(eq(sessions.userId, id));
	return result;
}

export async function getSession(id: string) {
	const [result] = await db.select().from(sessions).where(eq(sessions.id, id));
	return result;
}

export async function createSession(data: {
	id: string;
	userId: number;
	accessToken: string;
	refreshToken: string;
	scope?: string | null;
	tokenType?: string | null;
	expiresAt: Date;
}) {
	const [session] = await db
		.insert(sessions)
		.values({
			id: data.id,
			userId: data.userId,
			accessToken: data.accessToken,
			refreshToken: data.refreshToken,
			scope: data.scope,
			tokenType: data.tokenType,
			expiresAt: data.expiresAt,
			createdAt: new Date(),
		})
		.returning();

	return session;
}

export async function deleteSession(id: string) {
	const [deleted] = await db.delete(sessions).where(eq(sessions.id, id)).returning();
	return deleted;
}