diff --git a/src/main/java/ru/soune/nocopy/handler/ControlComplaintHandler.java b/src/main/java/ru/soune/nocopy/handler/ControlComplaintHandler.java index 540fa65..f3e6c12 100644 --- a/src/main/java/ru/soune/nocopy/handler/ControlComplaintHandler.java +++ b/src/main/java/ru/soune/nocopy/handler/ControlComplaintHandler.java @@ -2,6 +2,7 @@ package ru.soune.nocopy.handler; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import ru.soune.nocopy.dto.BaseRequest; import ru.soune.nocopy.dto.BaseResponse; @@ -19,6 +20,7 @@ import java.util.List; @Component @RequiredArgsConstructor +@Slf4j public class ControlComplaintHandler implements RequestHandler{ private final ObjectMapper objectMapper; @@ -32,16 +34,19 @@ public class ControlComplaintHandler implements RequestHandler{ ComplaintRequest complaintRequest = objectMapper.convertValue(request.getMessageBody(), ComplaintRequest.class); Integer msgId = request.getMsgId(); - switch (complaintRequest.getAction()) { - case "update_status" -> updateStatus(msgId, complaintRequest); - case "update" -> update(msgId, complaintRequest); - case "delete" -> delete(msgId, complaintRequest); - case "create" -> create(msgId, complaintRequest); - default -> errorResponse(msgId, MessageCode.MSG_ID_NOT_FOUND.getCode(), "Valid actions: " + - List.of("create", "update_status", "update", "delete")); + try { + return switch (complaintRequest.getAction()) { + case "update_status" -> updateStatus(msgId, complaintRequest); + case "update" -> update(msgId, complaintRequest); + case "delete" -> delete(msgId, complaintRequest); + case "create" -> create(msgId, complaintRequest); + default -> errorResponse(msgId, MessageCode.MSG_ID_NOT_FOUND.getCode(), "Valid actions: " + + List.of("create", "update_status", "update", "delete")); + }; + } catch (Exception e) { + log.error("Error handling complaint request", e); + return errorResponse(msgId, MessageCode.INVALID_JSON_BODY.getCode(), e.getMessage()); } - - return null; } private BaseResponse create(Integer msgId, ComplaintRequest req) {