dev add user_id for find all complaints
Test Workflow / test (push) Has been cancelled

This commit is contained in:
2026-04-17 22:00:33 +07:00
parent 74f9be8bf7
commit d1a91fec1a
6 changed files with 52 additions and 3 deletions
@@ -13,8 +13,14 @@ import ru.soune.nocopy.dto.MessageCode;
import ru.soune.nocopy.dto.complaint.ComplaintRequest;
import ru.soune.nocopy.dto.complaint.ComplaintResponse;
import ru.soune.nocopy.entity.complaint.ComplaintStatus;
import ru.soune.nocopy.entity.user.User;
import ru.soune.nocopy.repository.UserRepository;
import ru.soune.nocopy.service.complaint.ComplaintEntityService;
import ru.soune.nocopy.service.register.AuthService;
import ru.soune.nocopy.service.user.UserService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@@ -25,11 +31,31 @@ public class ComplaintEntityHandler implements RequestHandler {
private final ObjectMapper objectMapper;
private final UserRepository userRepository;
private final UserService userService;
private final AuthService authService;
@Override
public BaseResponse handle(BaseRequest request) throws Exception {
Integer msgId = request.getMsgId();
ComplaintRequest complaintRequest = objectMapper.convertValue(request.getMessageBody(), ComplaintRequest.class);
String action = complaintRequest.getAction();
String token = complaintRequest.getToken();
Long userId = authService.useUserAuthToken(token);
User user = userRepository.findById(userId).orElse(null);
if (user == null) {
return new BaseResponse(
request.getMsgId(),
MessageCode.USER_NOT_FOUND.getCode(),
MessageCode.USER_NOT_FOUND.getDescription(),
Map.of("token: ", token));
}
List<String> emails = user.getCompany() == null ? List.of(user.getEmail()):
userService.getUsersCompanyEmails(user.getCompany().getId());
try {
switch (action.toLowerCase()) {
@@ -38,7 +64,7 @@ public class ComplaintEntityHandler implements RequestHandler {
case "get":
return handleGet(msgId, complaintRequest);
case "get_all":
return handleGetAll(msgId, complaintRequest);
return handleGetAll(msgId, complaintRequest, emails);
case "get_by_violation":
return handleGetByViolation(msgId, complaintRequest);
case "update_status":
@@ -74,14 +100,15 @@ public class ComplaintEntityHandler implements RequestHandler {
return successResponse(msgId, "Complaint retrieved successfully", response);
}
private BaseResponse handleGetAll(Integer msgId, ComplaintRequest req) {
private BaseResponse handleGetAll(Integer msgId, ComplaintRequest req, List<String> emails) {
Pageable pageable = PageRequest.of(
req.getPage() != null ? req.getPage() : 0,
req.getSize() != null ? req.getSize() : 5,
Sort.by(Sort.Direction.fromString(req.getSortDirection() != null ? req.getSortDirection() : "desc"),
req.getSortBy() != null ? req.getSortBy() : "updatedAt"));
var page = complaintService.getAllComplaints(pageable);
var page = complaintService.getAllComplaintsByEmail(pageable, emails);
Map<String, Object> data = new HashMap<>();
data.put("content", page.getContent());
data.put("page", page.getNumber());