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