| [898cf68] | 1 | import type { Adapter } from "@auth/core/adapters";
|
|---|
| 2 | import { db } from "../../database/drizzle/db";
|
|---|
| 3 | import { usersTable, adminsTable } from "../../database/drizzle/schema";
|
|---|
| 4 | import { eq } from "drizzle-orm";
|
|---|
| 5 |
|
|---|
| 6 | export 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 | } |
|---|