Обновить src/main/java/org/lanit/controllers/JSONController.java

This commit is contained in:
Шимченко 2025-09-12 06:42:23 +00:00
parent f05ea61703
commit 0584a39989

View File

@ -24,13 +24,19 @@ public class JSONController {
this.objectMapper = objectMapper;
}
// ЕДИНЫЙ метод для всех JSON ответов
//Метод для создания JSON ответов с чистым Content-Type
private ResponseEntity<Object> createJsonResponse(Object body, HttpStatus status) {
return ResponseEntity.status(status)
.header("Content-Type", "application/json") // Без charset!
.header("Content-Type", "application/json")
.body(body);
}
/**
* Основной endpoint для обработки JSON запросов
* @ResponseBody указывает, что возвращаемое значение должно быть записано в тело ответа
*/
@PostMapping(value = "/json", produces = "application/json", consumes = "application/json")
@ResponseBody
public ResponseEntity<?> handleJsonRequest(
@ -38,14 +44,15 @@ public class JSONController {
@RequestBody String jsonBody) throws IOException {
try {
// Обработка действий ADD и DELETE
if ("add".equals(action)) {
AddRequest addRequest = objectMapper.readValue(jsonBody, AddRequest.class);
Info modifiedInfo = processingService.processAdd(addRequest);
Response response = new Response();
response.setInfo(modifiedInfo);
response.setUuid(addRequest.getUuid());
response.setLastUpdate(Instant.now().toString());
response.setUuid(addRequest.getUuid()); // Сохраняем исходный UUID
response.setLastUpdate(Instant.now().toString()); // Обновляем время ответа
return createJsonResponse(response, HttpStatus.OK);
} else if ("delete".equals(action)) {
@ -56,28 +63,31 @@ public class JSONController {
response.setInfo(modifiedInfo);
response.setUuid(deleteRequest.getUuid());
response.setLastUpdate(Instant.now().toString());
return createJsonResponse(response, HttpStatus.OK); // Используем createJsonResponse
return createJsonResponse(response, HttpStatus.OK);
} else {
// Обработка неизвестных действий
ErrorResponse error = new ErrorResponse();
error.setStatus("error");
error.setMessage("Передан некорректный action - " + action);
return createJsonResponse(error, HttpStatus.BAD_REQUEST); // Используем createJsonResponse
return createJsonResponse(error, HttpStatus.BAD_REQUEST);
}
} catch (RuntimeException e) {
ErrorResponse error = new ErrorResponse();
error.setStatus("error");
error.setMessage(e.getMessage());
// Определяем HTTP статус на основе текста ошибки
HttpStatus status = e.getMessage().contains("тикер") || e.getMessage().contains("индекс")
? HttpStatus.NOT_FOUND : HttpStatus.BAD_REQUEST;
return createJsonResponse(error, status); // Используем createJsonResponse
return createJsonResponse(error, status);
} catch (IOException e) {
// Обработка ошибок парсинга JSON
ErrorResponse error = new ErrorResponse();
error.setStatus("error");
error.setMessage("Ошибка разбора JSON");
return createJsonResponse(error, HttpStatus.BAD_REQUEST); // Исправил на BAD_REQUEST
return createJsonResponse(error, HttpStatus.BAD_REQUEST);
}
}
}