forked from noxious/server
49 lines
1.7 KiB
TypeScript
49 lines
1.7 KiB
TypeScript
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<any> {
|
|
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<any> {
|
|
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<any> {
|
|
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
|