22 lines
752 B
TypeScript
22 lines
752 B
TypeScript
import { ApplicationError } from "../../../../../shared/domain/errors/application-error";
|
|
import { UserRepository } from "../../../domain/repositories/user.repository";
|
|
import { toUserResponse, UserResponseDto } from "../../mappers/user-response.mapper";
|
|
import { GetCurrentUserQuery } from "./get-current-user.query";
|
|
|
|
export class GetCurrentUserHandler {
|
|
constructor(private readonly userRepository: UserRepository) {}
|
|
|
|
public async execute(query: GetCurrentUserQuery): Promise<UserResponseDto> {
|
|
const user = await this.userRepository.findByIdForTenant(
|
|
query.tenantId,
|
|
query.userId
|
|
);
|
|
|
|
if (!user) {
|
|
throw new ApplicationError("User not found", 404, "USER_NOT_FOUND");
|
|
}
|
|
|
|
return toUserResponse(user);
|
|
}
|
|
}
|