source: server/drizzle/auth-adapter.ts@ ad311c3

main
Last change on this file since ad311c3 was 898cf68, checked in by Tome <gjorgievtome@…>, 7 months ago

Config authjs

  • Property mode set to 100644
File size: 2.0 KB
Line 
1import type { Adapter } from "@auth/core/adapters";
2import { db } from "../../database/drizzle/db";
3import { usersTable, adminsTable } from "../../database/drizzle/schema";
4import { eq } from "drizzle-orm";
5
6export function AuthDrizzleAdapter(): Adapter {
7 return {
8 async getUser(id) {
9 const userId = parseInt(id);
10 if (isNaN(userId)) return null;
11
12 const user = await db.query.usersTable.findFirst({
13 where: eq(usersTable.id, userId),
14 });
15
16 if (!user) return null;
17
18 const admin = await db.query.adminsTable.findFirst({
19 where: eq(adminsTable.userId, user.id),
20 });
21
22 return {
23 id: String(user.id),
24 email: user.email,
25 name: user.username,
26 emailVerified: null,
27 isAdmin: !!admin,
28 };
29 },
30
31 async getUserByEmail(email) {
32 const user = await db.query.usersTable.findFirst({
33 where: eq(usersTable.email, email),
34 });
35
36 if (!user) return null;
37
38 const admin = await db.query.adminsTable.findFirst({
39 where: eq(adminsTable.userId, user.id),
40 });
41
42 return {
43 id: String(user.id),
44 email: user.email,
45 name: user.username,
46 emailVerified: null,
47 isAdmin: !!admin,
48 };
49 },
50
51 async createUser() { return null as any; },
52 async updateUser() { return null as any; },
53 async deleteUser() {},
54 async getUserByAccount() { return null; },
55 async createSession() { return null as any; },
56 async getSessionAndUser() { return null; },
57 async updateSession() { return null; },
58 async deleteSession() {},
59 async linkAccount() { return null as any; },
60 async unlinkAccount() {},
61 async createVerificationToken() { return null as any; },
62 async useVerificationToken() { return null; },
63 };
64}
Note: See TracBrowser for help on using the repository browser.