import { inject } from "@codemation/core"; import type { InviteUserResponseDto } from "../contracts/userDirectoryContracts.types"; import { CommandHandler } from "../bus/CommandHandler"; import { HandlesCommand } from "../../infrastructure/di/HandlesCommandRegistry"; import { UserAccountService } from "../../domain/users/UserAccountServiceRegistry"; import { InviteUserCommand } from "./InviteUserCommand"; @HandlesCommand.forCommand(InviteUserCommand) export class InviteUserCommandHandler extends CommandHandler { constructor(@inject(UserAccountService) private readonly userAccounts: UserAccountService) { super(); } async execute(command: InviteUserCommand): Promise { return await this.userAccounts.inviteUser(command.email, command.requestOrigin); } }