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 { 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); } }