1
0
forked from noxious/server

Updated user repository to use MikroORM

This commit is contained in:
Dennis Postma 2024-12-24 23:29:17 +01:00
parent 38395b6f19
commit 72562f92f9

View File

@ -1,14 +1,17 @@
import prisma from '../utilities/prisma' // Import the global Prisma instance import prisma from '../utilities/prisma' // Import the global Prisma instance
import { User } from '@prisma/client'
import { appLogger } from '#utilities/logger' import { appLogger } from '#utilities/logger'
import { Database } from '#utilities/database'
import { User } from '../entities/user'
class UserRepository { class UserRepository {
async getById(id: number): Promise<User | null> { async getById(id: number) {
try { try {
return await prisma.user.findUnique({ const orm = await Database.getInstance()
where: { const em = orm.em.fork()
id const repository = em.getRepository(User)
}
return await repository.findOne({
id
}) })
} catch (error: any) { } catch (error: any) {
// Handle error // Handle error
@ -17,12 +20,14 @@ class UserRepository {
} }
} }
async getByUsername(username: string): Promise<User | null> { async getByUsername(username: string) {
try { try {
return await prisma.user.findUnique({ const orm = await Database.getInstance()
where: { const em = orm.em.fork()
username const repository = em.getRepository(User)
}
return await repository.findOne({
username
}) })
} catch (error: any) { } catch (error: any) {
// Handle error // Handle error
@ -31,12 +36,14 @@ class UserRepository {
} }
} }
async getByEmail(email: string): Promise<User | null> { async getByEmail(email: string) {
try { try {
return await prisma.user.findUnique({ const orm = await Database.getInstance()
where: { const em = orm.em.fork()
email const repository = em.getRepository(User)
}
return await repository.findOne({
email
}) })
} catch (error: any) { } catch (error: any) {
// Handle error // Handle error