forked from noxious/server
45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
import prisma from '../utilities/Prisma' // Import the global Prisma instance
|
|
import { User } from '@prisma/client'
|
|
|
|
class UserRepository {
|
|
async getById(id: number): Promise<User | null> {
|
|
try {
|
|
return await prisma.user.findUnique({
|
|
where: {
|
|
id
|
|
}
|
|
})
|
|
} catch (error: any) {
|
|
// Handle error
|
|
throw new Error(`Failed to get user by ID: ${error.message}`)
|
|
}
|
|
}
|
|
async getByUsername(username: string): Promise<User | null> {
|
|
try {
|
|
return await prisma.user.findUnique({
|
|
where: {
|
|
username
|
|
}
|
|
})
|
|
} catch (error: any) {
|
|
// Handle error
|
|
throw new Error(`Failed to get user by username: ${error.message}`)
|
|
}
|
|
}
|
|
async create(username: string, password: string): Promise<User> {
|
|
try {
|
|
return await prisma.user.create({
|
|
data: {
|
|
username,
|
|
password
|
|
}
|
|
})
|
|
} catch (error: any) {
|
|
// Handle error
|
|
throw new Error(`Failed to create user: ${error.message}`)
|
|
}
|
|
}
|
|
}
|
|
|
|
export default new UserRepository()
|