Conversation
| public EpicsHandler(TaskManager manager) { | ||
| this.manager = manager; | ||
| } | ||
|
|
There was a problem hiding this comment.
еще нужно добавить обработку POST запросов
| sendNotFound(exchange); | ||
| } | ||
| } catch (Exception e) { | ||
| e.printStackTrace(); |
There was a problem hiding this comment.
нужно сообщение об ошибке хотя бы в консоль вывести и закрыть HttpExchange через метод close()
| sendNotFound(exchange); | ||
| } | ||
| } catch (Exception e) { | ||
| sendInternalError(exchange); |
There was a problem hiding this comment.
нужно сообщение об ошибке хотя бы в консоль вывести и закрыть HttpExchange через метод close()
| sendNotFound(exchange); | ||
| } | ||
| } catch (Exception e) { | ||
| sendInternalError(exchange); |
|
|
||
| try { | ||
| if (subtask.getId() == 0) { | ||
| manager.addSubtask(subtask); |
There was a problem hiding this comment.
после создания новой сущности, в ответе нужно сообщить присвоенное ей id, по-другому "на том конце провода" его никак не узнают
| if (subtask.getId() == 0) { | ||
| manager.addSubtask(subtask); | ||
| } else { | ||
| manager.updateSubtask(subtask); |
There was a problem hiding this comment.
при обновлении подзадачи еще нужно обработать ошибки с Cannot change epicId of subtask и полном отсутствии связанного эпика, а так же отсутствии самой подзадачи
| sendNotFound(exchange); | ||
| } | ||
| } catch (Exception e) { | ||
| e.printStackTrace(); |
There was a problem hiding this comment.
нужно сообщение об ошибке хотя бы в консоль вывести и закрыть HttpExchange через метод close()
|
|
||
| try { | ||
| if (task.getId() == 0) { | ||
| manager.addTask(task); |
There was a problem hiding this comment.
после создания новой сущности, в ответе нужно сообщить присвоенное ей id
| if (task.getId() == 0) { | ||
| manager.addTask(task); | ||
| } else { | ||
| manager.updateTask(task); |
There was a problem hiding this comment.
нужно еще обработать ошибку отсутствия обновляемой задачи
| sendNotFound(exchange); | ||
| } | ||
| } catch (Exception e) { | ||
| e.printStackTrace(); |
There was a problem hiding this comment.
нужно сообщение об ошибке хотя бы в консоль вывести и закрыть HttpExchange через метод close()
| String method = exchange.getRequestMethod(); | ||
| String query = exchange.getRequestURI().getQuery(); | ||
| switch (method) { | ||
| case "GET" -> sendText(exchange, gson.toJson(manager.getAllEpics()), 200); |
There was a problem hiding this comment.
а почему обработка GET-запроса стала такой? а где получение эпика по id и получение подзадач эпика?
| String method = exchange.getRequestMethod(); | ||
| String query = exchange.getRequestURI().getQuery(); | ||
| switch (method) { | ||
| case "GET" -> sendText(exchange, gson.toJson(manager.getAllSubtasks()), 200); |
| try { | ||
| if (subtask.getId() == 0) { | ||
| if (manager.getEpicById(subtask.getEpicId()) == null) { | ||
| sendNotFound(exchange); |
There was a problem hiding this comment.
пользователь пытается создать подзадачу, а в ответ приходит Not Found. Это сообщение будет вводить в заблуждение. Нужно добавить, что именно связанный эпик не найден
| sendNotFound(exchange); | ||
| return; | ||
| } | ||
| manager.addSubtask(subtask); |
There was a problem hiding this comment.
нужна обработка ошибки на пересечения по времени
| Subtask old = manager.getSubtaskById(subtask.getId()); | ||
| if (old == null) { | ||
| sendNotFound(exchange); | ||
| } else if (old.getEpicId() != subtask.getEpicId()) { |
There was a problem hiding this comment.
а причем здесь пересечение по времени? Здесь попытка сменить связь подзадача-эпик
| if ("GET".equalsIgnoreCase(method)) { | ||
| if (query == null) { | ||
| switch (method) { | ||
| case "GET" -> { |
There was a problem hiding this comment.
аналогично про получение задачи по id
| case "POST" -> { | ||
| String body = new String(exchange.getRequestBody().readAllBytes(), StandardCharsets.UTF_8); | ||
| Task task = gson.fromJson(body, Task.class); | ||
|
|
There was a problem hiding this comment.
нужна еще обработка ситуации с пересечениями
|
Для обработки ситуаций с исключениями, нужно вызываемый метод обернуть в try/catch и ловить бросаемые исключения. В сообщении исключения будет нужный комментарий, который можно отдать в ответе |
No description provided.