@@ -16,7 +16,6 @@ import ru.soune.nocopy.exception.*;
|
||||
import ru.soune.nocopy.repository.FileAppealRepository;
|
||||
import ru.soune.nocopy.repository.FileEntityRepository;
|
||||
import ru.soune.nocopy.repository.ModerationLogRepository;
|
||||
import ru.soune.nocopy.service.file.moderation.ModerationReasonService;
|
||||
import ru.soune.nocopy.service.file.moderation.ModerationService;
|
||||
import ru.soune.nocopy.service.register.AuthService;
|
||||
import ru.soune.nocopy.service.file.FileEntityService;
|
||||
@@ -47,8 +46,6 @@ public class FileEntityHandler implements RequestHandler {
|
||||
|
||||
private final ModerationLogRepository moderationLogRepository;
|
||||
|
||||
private final ModerationReasonService moderationReasonService;
|
||||
|
||||
@Override
|
||||
public BaseResponse handle(BaseRequest request) {
|
||||
try {
|
||||
@@ -86,14 +83,6 @@ public class FileEntityHandler implements RequestHandler {
|
||||
return handleGetUserAppeals(request, fileRequest);
|
||||
case "files_for_moderation":
|
||||
return handleGetFilesForModeration(request, fileRequest);
|
||||
case "get_moderation_reason":
|
||||
return handleGetModerationReason(request, fileRequest);
|
||||
case "create_moderation_reason":
|
||||
return handleCreateModerationReason(request, fileRequest);
|
||||
case "update_moderation_reason":
|
||||
return handleUpdateModerationReason(request, fileRequest);
|
||||
case "delete_moderation_reason":
|
||||
return handleDeleteModerationReason(request, fileRequest);
|
||||
default:
|
||||
ActionResponse response = ActionResponse.builder()
|
||||
.action(action)
|
||||
@@ -629,7 +618,6 @@ public class FileEntityHandler implements RequestHandler {
|
||||
ModerationActionRequest moderationRequest = ModerationActionRequest.builder()
|
||||
.fileId(fileRequest.getFileId())
|
||||
.newStatus(fileRequest.getFileStatus())
|
||||
.moderationReasonId(fileRequest.getModerationReasonId())
|
||||
.comment(fileRequest.getComment())
|
||||
.build();
|
||||
|
||||
@@ -736,9 +724,6 @@ public class FileEntityHandler implements RequestHandler {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение списка апелляций пользователя
|
||||
*/
|
||||
private BaseResponse handleGetUserAppeals(BaseRequest request, FileEntityRequest fileRequest) {
|
||||
try {
|
||||
Long userId = authService.useUserAuthToken(fileRequest.getToken());
|
||||
@@ -774,9 +759,6 @@ public class FileEntityHandler implements RequestHandler {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение списка файлов на модерации
|
||||
*/
|
||||
private BaseResponse handleGetFilesForModeration(BaseRequest request, FileEntityRequest fileRequest) {
|
||||
try {
|
||||
//TODO
|
||||
@@ -843,9 +825,6 @@ public class FileEntityHandler implements RequestHandler {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение детальной информации о файле для модерации
|
||||
*/
|
||||
private BaseResponse handleGetFileModerationInfo(BaseRequest request, FileEntityRequest fileRequest) {
|
||||
try {
|
||||
// TODO
|
||||
@@ -907,9 +886,6 @@ public class FileEntityHandler implements RequestHandler {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение истории модерации файла
|
||||
*/
|
||||
private List<Map<String, Object>> getModerationHistory(String fileId) {
|
||||
List<ModerationLog> logs = moderationLogRepository.findByFileIdOrderByCreatedAtDesc(fileId);
|
||||
if (logs == null || logs.isEmpty()) {
|
||||
@@ -931,9 +907,6 @@ public class FileEntityHandler implements RequestHandler {
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение всех апелляций файла
|
||||
*/
|
||||
private List<Map<String, Object>> getFileAppeals(String fileId) {
|
||||
List<FileAppeal> appeals = fileAppealRepository.findByFileId(fileId);
|
||||
if (appeals == null || appeals.isEmpty()) {
|
||||
@@ -957,214 +930,6 @@ public class FileEntityHandler implements RequestHandler {
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение списка причин модерации
|
||||
*/
|
||||
private BaseResponse handleGetModerationReasons(BaseRequest request, FileEntityRequest fileRequest) {
|
||||
try {
|
||||
// TODO
|
||||
// authService.useAdminAuthToken(fileRequest.getToken());
|
||||
|
||||
int page = fileRequest.getPage() != null ? fileRequest.getPage() : 1;
|
||||
int pageSize = fileRequest.getPageSize() != null ? fileRequest.getPageSize() : 20;
|
||||
String searchQuery = fileRequest.getSearchQuery();
|
||||
|
||||
Page<ModerationReasonResponse> reasons = moderationReasonService.getAllReasons(
|
||||
page - 1, pageSize, searchQuery);
|
||||
|
||||
Map<String, Object> response = new HashMap<>();
|
||||
response.put("reasons", reasons.getContent());
|
||||
response.put("totalCount", reasons.getTotalElements());
|
||||
response.put("totalPages", reasons.getTotalPages());
|
||||
response.put("currentPage", page);
|
||||
response.put("pageSize", pageSize);
|
||||
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.SUCCESS.getCode(),
|
||||
MessageCode.SUCCESS.getDescription(),
|
||||
response);
|
||||
|
||||
} catch (SecurityException e) {
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.ACCESS_DENIED.getCode(),
|
||||
"Admin access required",
|
||||
null);
|
||||
} catch (Exception e) {
|
||||
log.error("Error getting moderation reasons", e);
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.INVALID_FIELD.getCode(),
|
||||
"Failed to get reasons: " + e.getMessage(),
|
||||
null);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение конкретной причины модерации
|
||||
*/
|
||||
private BaseResponse handleGetModerationReason(BaseRequest request, FileEntityRequest fileRequest) {
|
||||
try {
|
||||
// TODO
|
||||
// authService.useAdminAuthToken(fileRequest.getToken());
|
||||
|
||||
Long reasonId = fileRequest.getModerationReasonId();
|
||||
if (reasonId == null) {
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.INVALID_FIELD.getCode(),
|
||||
"reasonId is required",
|
||||
null);
|
||||
}
|
||||
|
||||
ModerationReasonResponse reason = moderationReasonService.getReasonById(reasonId);
|
||||
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.SUCCESS.getCode(),
|
||||
MessageCode.SUCCESS.getDescription(),
|
||||
reason);
|
||||
|
||||
} catch (ModerationReasonNotFoundException e) {
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.NOT_FOUND.getCode(),
|
||||
e.getMessage(),
|
||||
null);
|
||||
} catch (Exception e) {
|
||||
log.error("Error getting moderation reason", e);
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.INVALID_FIELD.getCode(),
|
||||
"Failed to get reason: " + e.getMessage(),
|
||||
null);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Создание новой причины модерации
|
||||
*/
|
||||
private BaseResponse handleCreateModerationReason(BaseRequest request, FileEntityRequest fileRequest) {
|
||||
try {
|
||||
// TODO
|
||||
// authService.useAdminAuthToken(fileRequest.getToken());
|
||||
|
||||
String reasonText = fileRequest.getReasonText();
|
||||
if (reasonText == null || reasonText.trim().isEmpty()) {
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.INVALID_FIELD.getCode(),
|
||||
"reasonText is required",
|
||||
null);
|
||||
}
|
||||
|
||||
ModerationReasonResponse reason = moderationReasonService.createReason(reasonText);
|
||||
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.SUCCESS.getCode(),
|
||||
"Moderation reason created successfully",
|
||||
reason);
|
||||
|
||||
} catch (IllegalArgumentException e) {
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.INVALID_FIELD.getCode(),
|
||||
e.getMessage(),
|
||||
null);
|
||||
} catch (Exception e) {
|
||||
log.error("Error creating moderation reason", e);
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.INVALID_FIELD.getCode(),
|
||||
"Failed to create reason: " + e.getMessage(),
|
||||
null);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Обновление причины модерации
|
||||
*/
|
||||
private BaseResponse handleUpdateModerationReason(BaseRequest request, FileEntityRequest fileRequest) {
|
||||
try {
|
||||
// TODO
|
||||
// authService.useAdminAuthToken(fileRequest.getToken());
|
||||
|
||||
Long reasonId = fileRequest.getModerationReasonId();
|
||||
String reasonText = fileRequest.getReasonText();
|
||||
|
||||
if (reasonId == null) {
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.INVALID_FIELD.getCode(),
|
||||
"reasonId is required",
|
||||
null);
|
||||
}
|
||||
|
||||
if (reasonText == null || reasonText.trim().isEmpty()) {
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.INVALID_FIELD.getCode(),
|
||||
"reasonText is required",
|
||||
null);
|
||||
}
|
||||
|
||||
ModerationReasonResponse reason = moderationReasonService.updateReason(reasonId, reasonText);
|
||||
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.SUCCESS.getCode(),
|
||||
"Moderation reason updated successfully",
|
||||
reason);
|
||||
|
||||
} catch (ModerationReasonNotFoundException e) {
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.NOT_FOUND.getCode(),
|
||||
e.getMessage(),
|
||||
null);
|
||||
} catch (IllegalArgumentException e) {
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.INVALID_FIELD.getCode(),
|
||||
e.getMessage(),
|
||||
null);
|
||||
} catch (Exception e) {
|
||||
log.error("Error updating moderation reason", e);
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.INVALID_FIELD.getCode(),
|
||||
"Failed to update reason: " + e.getMessage(),
|
||||
null);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Удаление причины модерации
|
||||
*/
|
||||
private BaseResponse handleDeleteModerationReason(BaseRequest request, FileEntityRequest fileRequest) {
|
||||
try {
|
||||
// TODO
|
||||
// authService.useAdminAuthToken(fileRequest.getToken());
|
||||
|
||||
Long reasonId = fileRequest.getModerationReasonId();
|
||||
if (reasonId == null) {
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.INVALID_FIELD.getCode(),
|
||||
"reasonId is required",
|
||||
null);
|
||||
}
|
||||
|
||||
moderationReasonService.deleteReason(reasonId);
|
||||
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.SUCCESS.getCode(),
|
||||
"Moderation reason deleted successfully",
|
||||
Map.of("reasonId", reasonId));
|
||||
|
||||
} catch (ModerationReasonNotFoundException e) {
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.NOT_FOUND.getCode(),
|
||||
e.getMessage(),
|
||||
null);
|
||||
} catch (ModerationReasonInUseException e) {
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.INVALID_FIELD.getCode(),
|
||||
e.getMessage(),
|
||||
Map.of("usageCount", e.getUsageCount()));
|
||||
} catch (Exception e) {
|
||||
log.error("Error deleting moderation reason", e);
|
||||
return new BaseResponse(request.getMsgId(),
|
||||
MessageCode.INVALID_FIELD.getCode(),
|
||||
"Failed to delete reason: " + e.getMessage(),
|
||||
null);
|
||||
}
|
||||
}
|
||||
|
||||
private String formatFileSize(long size) {
|
||||
if (size < 1024) return size + " B";
|
||||
int exp = (int) (Math.log(size) / Math.log(1024));
|
||||
|
||||
Reference in New Issue
Block a user