MCPcopy Index your code
hub / github.com/CodebuffAI/codebuff / createLogoutDb

Function createLogoutDb

web/src/app/api/auth/cli/logout/_db.ts:28–111  ·  view source on GitHub ↗
(db: CodebuffPgDatabase)

Source from the content-addressed store, hash-verified

26}
27
28export function createLogoutDb(db: CodebuffPgDatabase): LogoutDb {
29 return {
30 getSessionByToken: (token, userId) =>
31 db
32 .select({ userId: schema.session.userId })
33 .from(schema.session)
34 .where(
35 and(
36 eq(schema.session.sessionToken, token),
37 eq(schema.session.userId, userId),
38 ),
39 )
40 .limit(1),
41
42 deleteSessionsByFingerprint: (userId, fingerprintId) =>
43 db
44 .delete(schema.session)
45 .where(
46 and(
47 eq(schema.session.userId, userId),
48 eq(schema.session.fingerprint_id, fingerprintId),
49 ),
50 )
51 .returning({ id: schema.session.sessionToken }),
52
53 getFingerprintData: (fingerprintId) =>
54 db
55 .select({
56 created_at: schema.fingerprint.created_at,
57 sig_hash: schema.fingerprint.sig_hash,
58 })
59 .from(schema.fingerprint)
60 .where(eq(schema.fingerprint.id, fingerprintId))
61 .limit(1),
62
63 deleteOrphanedWebSessions: (userId) =>
64 db
65 .delete(schema.session)
66 .where(
67 and(
68 eq(schema.session.userId, userId),
69 eq(schema.session.type, 'web'),
70 isNull(schema.session.fingerprint_id),
71 ),
72 )
73 .returning({ id: schema.session.sessionToken }),
74
75 deleteWebSessionsInTimeWindow: (userId, aroundTime) => {
76 const windowStart = new Date(
77 aroundTime.getTime() - SESSION_TIME_WINDOW_MS,
78 )
79 const windowEnd = new Date(aroundTime.getTime() + SESSION_TIME_WINDOW_MS)
80 return db
81 .delete(schema.session)
82 .where(
83 and(
84 eq(schema.session.userId, userId),
85 eq(schema.session.type, 'web'),

Callers 1

POSTFunction · 0.85

Calls 3

fromMethod · 0.80
deleteMethod · 0.80
setMethod · 0.80

Tested by

no test coverage detected