Загрузка данных
package App.controllers;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SkillsScoreController {
@PostMapping("/users/skills-score-all")
public ResponseEntity<String> skillsScoreAll(@RequestBody(required = false) Object requestBody) {
String response = """
{
"is_surveyed": true,
"skills": [
{
"skill_name": "finance",
"skill_priority": 1,
"status_name": "ERROR",
"status_text": "Требует внимания"
},
{
"skill_name": "product_service",
"skill_priority": 2,
"status_name": "WARNING",
"status_text": "Держите в фокусе"
},
{
"skill_name": "marketing",
"skill_priority": 3,
"status_name": "SUCCESS",
"status_text": "Изучите по возможности"
},
{
"skill_name": "team",
"skill_priority": 4,
"status_name": "SUCCESS",
"status_text": "Изучите по возможности"
},
{
"skill_name": "strategy",
"skill_priority": 5,
"status_name": "SUCCESS",
"status_text": "Изучите по возможности"
},
{
"skill_name": "partnership",
"skill_priority": 6,
"status_name": "SUCCESS",
"status_text": "Изучите по возможности"
},
{
"skill_name": "it",
"skill_priority": 7,
"status_name": "WAITING",
"status_text": "Ждёт оценки"
}
]
}
""";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
return ResponseEntity.ok()
.headers(headers)
.body(response);
}
@PostMapping("/users/skills-score-single")
public ResponseEntity<String> skillsScoreSingle(@RequestBody(required = false) Object requestBody) {
String response = """
{
"course": "/finance",
"status_name": "ERROR",
"status_text": "Требует внимания"
}
""";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
return ResponseEntity.ok()
.headers(headers)
.body(response);
}
}
package App.controllers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.context.request.WebRequest;
@ControllerAdvice
public class GlobalExceptionHandler {
private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
@ExceptionHandler(Exception.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public ResponseEntity<String> handleAllExceptions(Exception ex, WebRequest request) {
log.error("Необработанное исключение в заглушке", ex);
String errorResponse = """
{
"error": "Internal Server Error",
"message": "Произошла ошибка в заглушке"
}
""";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
return new ResponseEntity<>(errorResponse, headers, HttpStatus.INTERNAL_SERVER_ERROR);
}
// Можно добавить специфические обработчики
@ExceptionHandler(IllegalArgumentException.class)
public ResponseEntity<String> handleIllegalArgument(IllegalArgumentException ex) {
log.warn("Некорректный аргумент: {}", ex.getMessage());
String errorResponse = """
{
"error": "Bad Request",
"message": "%s"
}
""".formatted(ex.getMessage());
return ResponseEntity.badRequest().body(errorResponse);
}
}