refactor
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Inject, Injectable } from '@nestjs/common';
|
||||
import { Inject } from '@nestjs/common';
|
||||
|
||||
// Core Use Cases
|
||||
import { LoginUseCase, type LoginInput } from '@core/identity/application/use-cases/LoginUseCase';
|
||||
@@ -11,12 +11,10 @@ import { User } from '@core/identity/domain/entities/User';
|
||||
import type { IUserRepository } from '@core/identity/domain/repositories/IUserRepository';
|
||||
import type { Logger } from '@core/shared/application';
|
||||
import { IDENTITY_SESSION_PORT_TOKEN, LOGGER_TOKEN, LOGIN_USE_CASE_TOKEN, LOGOUT_USE_CASE_TOKEN, SIGNUP_USE_CASE_TOKEN, USER_REPOSITORY_TOKEN } from './AuthProviders';
|
||||
import { AuthenticatedUserDTO, AuthSessionDTO, LoginParams, SignupParams } from './dtos/AuthDto';
|
||||
import { AuthSessionDTO, LoginParams, SignupParams } from './dtos/AuthDto';
|
||||
import { AuthSessionPresenter } from './presenters/AuthSessionPresenter';
|
||||
import type { CommandResultDTO } from './presenters/CommandResultPresenter';
|
||||
import { CommandResultPresenter } from './presenters/CommandResultPresenter';
|
||||
import { CommandResultPresenter, type CommandResultDTO } from './presenters/CommandResultPresenter';
|
||||
|
||||
@Injectable()
|
||||
export class AuthService {
|
||||
constructor(
|
||||
@Inject(LOGGER_TOKEN) private logger: Logger,
|
||||
@@ -25,31 +23,10 @@ export class AuthService {
|
||||
@Inject(LOGIN_USE_CASE_TOKEN) private readonly loginUseCase: LoginUseCase,
|
||||
@Inject(SIGNUP_USE_CASE_TOKEN) private readonly signupUseCase: SignupUseCase,
|
||||
@Inject(LOGOUT_USE_CASE_TOKEN) private readonly logoutUseCase: LogoutUseCase,
|
||||
private readonly authSessionPresenter: AuthSessionPresenter,
|
||||
private readonly commandResultPresenter: CommandResultPresenter,
|
||||
) {}
|
||||
|
||||
private mapUserToAuthenticatedUserDTO(user: User): AuthenticatedUserDTO {
|
||||
return {
|
||||
userId: user.getId().value,
|
||||
email: user.getEmail() ?? '',
|
||||
displayName: user.getDisplayName() ?? '',
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
private buildAuthSessionDTO(token: string, user: AuthenticatedUserDTO): AuthSessionDTO {
|
||||
return {
|
||||
token,
|
||||
user: {
|
||||
userId: user.userId,
|
||||
email: user.email,
|
||||
displayName: user.displayName,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
async getCurrentSession(): Promise<AuthSessionDTO | null> {
|
||||
// TODO this must call a use case
|
||||
this.logger.debug('[AuthService] Attempting to get current session.');
|
||||
const coreSession = await this.identitySessionPort.getCurrentSession();
|
||||
if (!coreSession) {
|
||||
@@ -87,7 +64,8 @@ export class AuthService {
|
||||
throw new Error(error.details?.message ?? 'Signup failed');
|
||||
}
|
||||
|
||||
const userDTO = this.authSessionPresenter.getResponseModel();
|
||||
const authSessionPresenter = new AuthSessionPresenter();
|
||||
const userDTO = authSessionPresenter.getResponseModel();
|
||||
const coreUserDTO = {
|
||||
id: userDTO.userId,
|
||||
displayName: userDTO.displayName,
|
||||
@@ -116,7 +94,8 @@ export class AuthService {
|
||||
throw new Error(error.details?.message ?? 'Login failed');
|
||||
}
|
||||
|
||||
const userDTO = this.authSessionPresenter.getResponseModel();
|
||||
const authSessionPresenter = new AuthSessionPresenter();
|
||||
const userDTO = authSessionPresenter.getResponseModel();
|
||||
const coreUserDTO = {
|
||||
id: userDTO.userId,
|
||||
displayName: userDTO.displayName,
|
||||
@@ -133,6 +112,7 @@ export class AuthService {
|
||||
async logout(): Promise<CommandResultDTO> {
|
||||
this.logger.debug('[AuthService] Attempting logout.');
|
||||
|
||||
const commandResultPresenter = new CommandResultPresenter();
|
||||
const result = await this.logoutUseCase.execute();
|
||||
|
||||
if (result.isErr()) {
|
||||
@@ -140,6 +120,6 @@ export class AuthService {
|
||||
throw new Error(error.details?.message ?? 'Logout failed');
|
||||
}
|
||||
|
||||
return this.commandResultPresenter.getResponseModel();
|
||||
return commandResultPresenter.getResponseModel();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user