Files
no-copy/src/main/java/ru/soune/nocopy/handler/PaymentHandler.java
T

52 lines
2.1 KiB
Java
Raw Normal View History

2026-02-18 18:26:11 +07:00
package ru.soune.nocopy.handler;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import ru.soune.nocopy.dto.BaseRequest;
import ru.soune.nocopy.dto.BaseResponse;
import ru.soune.nocopy.dto.MessageCode;
import ru.soune.nocopy.dto.payment.PaymentRequest;
import ru.soune.nocopy.dto.payment.PaymentResponse;
import ru.soune.nocopy.entity.payment.Payment;
2026-02-18 19:00:44 +07:00
import ru.soune.nocopy.exception.PaymentNotFoundException;
2026-02-18 18:26:11 +07:00
import ru.soune.nocopy.service.payment.PaymentService;
import java.util.List;
2026-02-18 19:00:44 +07:00
import java.util.Map;
2026-02-18 18:26:11 +07:00
@Component
@RequiredArgsConstructor
public class PaymentHandler implements RequestHandler{
private final PaymentService paymentService;
private final ObjectMapper objectMapper;
@Override
public BaseResponse handle(BaseRequest request) throws Exception {
PaymentRequest paymentRequest = objectMapper.convertValue(request.getMessageBody(), PaymentRequest.class);
String action = paymentRequest.getAction();
switch (action) {
case "user_payments":
List<Payment> payments = paymentService.userPayments(paymentRequest.getEmail());
return new BaseResponse(request.getMsgId(), MessageCode.SUCCESS.getCode(),
MessageCode.SUCCESS.getDescription(), new PaymentResponse(payments));
case "payment_info":
2026-02-18 19:00:44 +07:00
try {
Payment payment = paymentService.paymentInfo(paymentRequest.getPaymentUuid());
return new BaseResponse(request.getMsgId(), MessageCode.SUCCESS.getCode(),
MessageCode.SUCCESS.getDescription(), new PaymentResponse(List.of(payment)));
} catch (PaymentNotFoundException e) {
return new BaseResponse(request.getMsgId(), MessageCode.PAYMENT_NOT_FOUND.getCode(),
MessageCode.PAYMENT_NOT_FOUND.getDescription(), Map.of("paymentUuid",
paymentRequest.getPaymentUuid()));
}
2026-02-18 18:26:11 +07:00
}
return null;
}
}