gemtrack-backend/src/modules/identity-access/application/queries/get-current-user/get-current-user.handler.ts

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