OOP is my passion ( ͡° ͜ʖ ͡°)

This commit is contained in:
2025-01-04 18:35:53 +01:00
parent 0b4420f956
commit 067976c54a
46 changed files with 165 additions and 164 deletions

View File

@ -2,8 +2,8 @@ import { BaseService } from '#application/base/baseService'
import config from '#application/config'
import { Character } from '#entities/character'
import { Map } from '#entities/map'
import SocketManager from '#managers/socketManager'
import MapManager from '#managers/mapManager'
import SocketManager from '#managers/socketManager'
import CharacterRepository from '#repositories/characterRepository'
import MapRepository from '#repositories/mapRepository'

View File

@ -1,8 +1,8 @@
import Logger, { LoggerType } from '#application/logger'
import { UUID } from '#application/types'
import { Character } from '#entities/character'
import SocketManager from '#managers/socketManager'
import MapManager from '#managers/mapManager'
import SocketManager from '#managers/socketManager'
import MapCharacter from '#models/mapCharacter'
interface TeleportOptions {

View File

@ -16,9 +16,12 @@ import UserRepository from '#repositories/userRepository'
* @class UserService
*/
class UserService extends BaseService {
protected readonly userRepository = new UserRepository()
protected readonly passwordResetTokenRepository = new PasswordResetTokenRepository()
async login(username: string, password: string): Promise<boolean | User> {
try {
const user = await UserRepository.getByUsername(username)
const user = await this.userRepository.getByUsername(username)
if (!user) {
return false
}
@ -39,7 +42,7 @@ class UserService extends BaseService {
async register(username: string, email: string, password: string): Promise<boolean | User> {
try {
// Check existing users
const [userByName, userByEmail] = await Promise.all([UserRepository.getByUsername(username), UserRepository.getByEmail(email)])
const [userByName, userByEmail] = await Promise.all([this.userRepository.getByUsername(username), this.userRepository.getByEmail(email)])
if (userByName || userByEmail) {
this.logger.error(`User already exists: ${userByEmail ? email : username}`)
@ -59,11 +62,11 @@ class UserService extends BaseService {
async requestPasswordReset(email: string): Promise<boolean> {
try {
const user = await UserRepository.getByEmail(email)
const user = await this.userRepository.getByEmail(email)
if (!user) return false
const token = await bcrypt.hash(new Date().getTime().toString(), 10)
const latestToken = await PasswordResetTokenRepository.getByUserId(user.id)
const latestToken = await this.passwordResetTokenRepository.getByUserId(user.id)
// Check if password reset has been requested recently
if (latestToken) {
@ -108,12 +111,12 @@ class UserService extends BaseService {
async resetPassword(urlToken: string, password: string): Promise<boolean> {
try {
const tokenData = await PasswordResetTokenRepository.getByToken(urlToken)
const tokenData = await this.passwordResetTokenRepository.getByToken(urlToken)
if (!tokenData) {
return false
}
const user = await UserRepository.getById(tokenData.userId)
const user = await this.userRepository.getById(tokenData.userId)
if (!user) {
return false
}