OOP is my passion ( ͡° ͜ʖ ͡°)
This commit is contained in:
@ -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'
|
||||
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user