refactor
This commit is contained in:
@@ -1,26 +1,35 @@
|
||||
import type {
|
||||
IUpdatePaymentStatusPresenter,
|
||||
UpdatePaymentStatusResultDTO,
|
||||
UpdatePaymentStatusViewModel,
|
||||
} from '@core/payments/application/presenters/IUpdatePaymentStatusPresenter';
|
||||
import type { UseCaseOutputPort } from '@core/shared/application';
|
||||
import type { UpdatePaymentStatusResult } from '@core/payments/application/use-cases/UpdatePaymentStatusUseCase';
|
||||
import type { UpdatePaymentStatusOutput } from '../dtos/PaymentsDto';
|
||||
|
||||
export class UpdatePaymentStatusPresenter implements IUpdatePaymentStatusPresenter {
|
||||
private result: UpdatePaymentStatusViewModel | null = null;
|
||||
export class UpdatePaymentStatusPresenter implements UseCaseOutputPort<UpdatePaymentStatusResult> {
|
||||
private responseModel: UpdatePaymentStatusOutput | null = null;
|
||||
|
||||
reset() {
|
||||
this.result = null;
|
||||
this.responseModel = null;
|
||||
}
|
||||
|
||||
present(dto: UpdatePaymentStatusResultDTO) {
|
||||
this.result = dto;
|
||||
present(result: UpdatePaymentStatusResult): void {
|
||||
this.responseModel = {
|
||||
payment: {
|
||||
id: result.payment.id,
|
||||
type: result.payment.type,
|
||||
amount: result.payment.amount,
|
||||
platformFee: result.payment.platformFee,
|
||||
netAmount: result.payment.netAmount,
|
||||
payerId: result.payment.payerId,
|
||||
payerType: result.payment.payerType,
|
||||
leagueId: result.payment.leagueId,
|
||||
...(result.payment.seasonId !== undefined ? { seasonId: result.payment.seasonId } : {}),
|
||||
status: result.payment.status,
|
||||
createdAt: result.payment.createdAt,
|
||||
...(result.payment.completedAt !== undefined ? { completedAt: result.payment.completedAt } : {}),
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
getViewModel(): UpdatePaymentStatusViewModel | null {
|
||||
return this.result;
|
||||
}
|
||||
|
||||
get viewModel(): UpdatePaymentStatusViewModel {
|
||||
if (!this.result) throw new Error('Presenter not presented');
|
||||
return this.result;
|
||||
getResponseModel(): UpdatePaymentStatusOutput {
|
||||
if (!this.responseModel) throw new Error('Presenter not presented');
|
||||
return this.responseModel;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user