diff --git a/src/main/java/ru/soune/nocopy/dto/MessageCode.java b/src/main/java/ru/soune/nocopy/dto/MessageCode.java index 9afd3b4..ed94079 100644 --- a/src/main/java/ru/soune/nocopy/dto/MessageCode.java +++ b/src/main/java/ru/soune/nocopy/dto/MessageCode.java @@ -66,6 +66,7 @@ public enum MessageCode { MESSAGE_IS_REQUIRED_FOR_NOTION(4, "Message is required for notion"), USER_VERIFICATIONS_NOT_FOUND(4, "Verifications not found"), COMPLAINT_OR_LAW_CASE_IN_WORK(2, "Complaint or lawcase in work"), + NOT_VALID_STATUS(2, "Not valid status"), ADMIN_USER_NOT_FOUND(4, "Verifications ,user or admin not found"); diff --git a/src/main/java/ru/soune/nocopy/handler/ComplaintEntityHandler.java b/src/main/java/ru/soune/nocopy/handler/ComplaintEntityHandler.java index e058a8c..e71398a 100644 --- a/src/main/java/ru/soune/nocopy/handler/ComplaintEntityHandler.java +++ b/src/main/java/ru/soune/nocopy/handler/ComplaintEntityHandler.java @@ -19,6 +19,7 @@ import ru.soune.nocopy.service.complaint.ComplaintEntityService; import ru.soune.nocopy.service.register.AuthService; import ru.soune.nocopy.service.user.UserService; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -58,7 +59,7 @@ public class ComplaintEntityHandler implements RequestHandler { userService.getUsersCompanyEmails(user.getCompany().getId()); try { - switch (action.toLowerCase()) { + switch (action) { case "create": return handleCreate(msgId, complaintRequest); case "get": @@ -102,7 +103,7 @@ public class ComplaintEntityHandler implements RequestHandler { private BaseResponse handleGetAll(Integer msgId, ComplaintRequest req, List emails) { Pageable pageable = PageRequest.of( - req.getPage() != null ? req.getPage() - 1 : 0, + req.getPage() != null && req.getPage() > 0 ? req.getPage() - 1 : 1, req.getSize() != null ? req.getSize() : 5, Sort.by(Sort.Direction.fromString(req.getSortDirection() != null ? req.getSortDirection() : "desc"), req.getSortBy() != null ? req.getSortBy() : "updatedAt")); @@ -135,8 +136,16 @@ public class ComplaintEntityHandler implements RequestHandler { if (req.getId() == null) return errorResponse(msgId, MessageCode.NOT_FOUND.getCode(), "id is required"); if (req.getStatus() == null) return errorResponse(msgId, MessageCode.NOT_FOUND.getCode(), "status is required"); + List statuses = Arrays.stream(ComplaintStatus.values()).map(ComplaintStatus::name).toList(); + + if (statuses.stream().noneMatch(status -> status.equals(req.getStatus().toUpperCase()))) { + return errorResponse(msgId, MessageCode.NOT_VALID_STATUS.getCode(), "Valid statuses: " + statuses); + } + ComplaintStatus status = ComplaintStatus.valueOf(req.getStatus().toUpperCase()); + ComplaintResponse response = complaintService.updateComplaintStatus(req.getId(), status); + return successResponse(msgId, "Status updated successfully", response); }