24 lines
1.0 KiB
TypeScript
24 lines
1.0 KiB
TypeScript
import type { UseCaseOutputPort } from '@core/shared/application';
|
|
import type { WithdrawFromLeagueWalletResult } from '@core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase';
|
|
import { WithdrawFromLeagueWalletOutputDTO } from '../dtos/WithdrawFromLeagueWalletOutputDTO';
|
|
|
|
export class WithdrawFromLeagueWalletPresenter implements UseCaseOutputPort<WithdrawFromLeagueWalletResult> {
|
|
private model: WithdrawFromLeagueWalletOutputDTO | null = null;
|
|
|
|
present(result: WithdrawFromLeagueWalletResult): void {
|
|
this.model = {
|
|
success: true,
|
|
message: `Successfully withdrew ${result.amount.amount} ${result.amount.currency} from league wallet. Transaction ID: ${result.transactionId}`,
|
|
};
|
|
}
|
|
|
|
getResponseModel(): WithdrawFromLeagueWalletOutputDTO {
|
|
if (!this.model) throw new Error('Presenter not presented');
|
|
return this.model;
|
|
}
|
|
|
|
get responseModel(): WithdrawFromLeagueWalletOutputDTO {
|
|
if (!this.model) throw new Error('Presenter not presented');
|
|
return this.model;
|
|
}
|
|
} |