import { BaseRepository } from '#application/base/baseRepository' import { UUID } from '#application/types' import { PasswordResetToken } from '#entities/passwordResetToken' class PasswordResetTokenRepository extends BaseRepository { async getById(id: UUID): Promise { try { const repository = this.getEntityManager().getRepository(PasswordResetToken) const result = await repository.findOne({ id }) if (result) result.setEntityManager(this.getEntityManager()) return result } catch (error: any) { // Handle error this.logger.error(`Failed to get password reset token by ID: ${error instanceof Error ? error.message : String(error)}`) } } async getByUserId(userId: UUID): Promise { try { const repository = this.getEntityManager().getRepository(PasswordResetToken) const result = await repository.findOne({ user: userId }) if (result) result.setEntityManager(this.getEntityManager()) return result } catch (error: any) { // Handle error this.logger.error(`Failed to get password reset token by user ID: ${error instanceof Error ? error.message : String(error)}`) } } async getByToken(token: string): Promise { try { const repository = this.getEntityManager().getRepository(PasswordResetToken) const result = await repository.findOne({ token }) if (result) result.setEntityManager(this.getEntityManager()) return result } catch (error: any) { // Handle error this.logger.error(`Failed to get password reset token by token: ${error instanceof Error ? error.message : String(error)}`) } } } export default PasswordResetTokenRepository