Обновить src/main/java/org/lanit/controllers/JSONController.java
This commit is contained in:
parent
f05ea61703
commit
0584a39989
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user