dev add statistic complaints by status
Test Workflow / test (push) Has been cancelled

This commit is contained in:
2026-05-25 14:16:39 +07:00
parent 6929060661
commit d55b1620d5
4 changed files with 95 additions and 0 deletions
@@ -94,4 +94,33 @@ public class HandlerConfig {
return map;
}
@Bean
public Map<Integer, RequestHandler> internalHandlers(
StatisticComplaintHandler statisticComplaintHandler,
StatisticUserFilesHandler statisticUserHandler,
StatisticTariffInfoFileHandler statisticTariffInfoFileHandler,
StatisticUserDynamicHandler statisticUserDynamicHandler,
StatisticProtectedFilesHandler statisticProtectedFilesHandler,
StatisticViolationHandler statisticViolationHandler,
StatisticSubscriberHandler statisticSubscriberHandler,
StatisticTokenHandler statisticTokenHandler,
StatisticIncomeHandler statisticIncomeHandler,
MonitoringStatisticHandler monitoringStatisticHandler
)
{
Map<Integer, RequestHandler> map = new HashMap<>();
map.put(30019, statisticUserHandler);
map.put(30020, statisticTariffInfoFileHandler);
map.put(30021, statisticUserDynamicHandler);
map.put(30022, statisticProtectedFilesHandler);
map.put(30023, statisticViolationHandler);
map.put(30024, statisticSubscriberHandler);
map.put(30025, statisticTokenHandler);
map.put(30026, statisticIncomeHandler);
map.put(30027, monitoringStatisticHandler);
map.put(30029, statisticComplaintHandler);
return map;
}
}
@@ -59,6 +59,8 @@ public class ApiController {
private final Map<Integer, RequestHandler> handlers;
private final Map<Integer, RequestHandler> internalHandlers;
private final FileEntityService fileEntityService;
private final AuthService authService;
@@ -126,6 +128,35 @@ public class ApiController {
}
}
@PostMapping("/internal/data")
public ResponseEntity<?> handleInternalPostRequest(@RequestBody BaseRequest request) {
Integer msgId = request.getMsgId();
BaseResponse response;
RequestHandler handler = internalHandlers.get(msgId);
try {
if (handler == null) {
response = new BaseResponse(msgId,
MessageCode.MSG_ID_NOT_FOUND.getCode(),
MessageCode.MSG_ID_NOT_FOUND.getDescription(),
new HashMap<>());
} else {
response = handler.handle(request);
}
return ResponseEntity.ok().body(response);
} catch (Exception e) {
log.error("Handler execution failed for msgId: {}", msgId, e);
BaseResponse errorResponse = new BaseResponse(msgId,
MessageCode.INVALID_JSON_BODY.getCode(),
MessageCode.INVALID_JSON_BODY.getDescription(),
new HashMap<>());
return ResponseEntity.ok().body(errorResponse);
}
}
@PostMapping("/v{version}/files/chunk")
public ResponseEntity<BaseResponse> uploadChunk(
@PathVariable("version") int version,
@@ -0,0 +1,34 @@
package ru.soune.nocopy.util;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;
import java.io.IOException;
@Component
public class InternalApiFilter extends OncePerRequestFilter {
@Value("${app.internal-api-key}")
private String internalApiKey;
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
if (request.getRequestURI().startsWith("api/internal/")) {
String providedKey = request.getHeader("X-Internal-Key");
if (!internalApiKey.equals(providedKey)) {
response.sendError(403, "Access Denied: Internal API only");
return;
}
}
filterChain.doFilter(request, response);
}
}
+1
View File
@@ -135,6 +135,7 @@ yookassa:
app:
internal-api-key: "tljzkXiEYF1klSHuG2hPZKjx6EsBX8RQP6UrzMdQanSKbRYuHuOBwrXejZkn7V4FICvIahoDmYD2hjNBPw61NFbGIt4scOzwZpyCiXEa1YKLAeJSPso4S43LIZlKjO4S"
email:
verification:
standart-subject: NO COPY - Подтверждение email адреса