server/src/services/User.ts
2024-05-05 02:58:36 +02:00

35 lines
1.1 KiB
TypeScript

import bcrypt from "bcryptjs";
import prisma from "../helpers/prisma";
import UserRepository from "../repositories/User";
class UserService {
async createUser(username: string, password: string): Promise<void> {
try {
const hashedPassword = await bcrypt.hash(password, 10);
await prisma.user.create({
data: {
username,
password: hashedPassword,
},
});
} catch (error) {
// Handle error
throw new Error(`Failed to create user: ${error.message}`);
}
}
async validateUserCredentials(username: string, password: string): Promise<boolean> {
try {
const user = await UserRepository.getByUsername(username);
if (!user) return false;
return bcrypt.compareSync(password, user.password);
} catch (error) {
// Handle error
throw new Error(`Failed to validate user credentials: ${error.message}`);
}
}
}
export default new UserService;