diff --git a/backend/src/main/java/com/magistr/app/controller/ScheduleDataController.java b/backend/src/main/java/com/magistr/app/controller/ScheduleDataController.java index 6be2983..d19c359 100644 --- a/backend/src/main/java/com/magistr/app/controller/ScheduleDataController.java +++ b/backend/src/main/java/com/magistr/app/controller/ScheduleDataController.java @@ -1,17 +1,17 @@ package com.magistr.app.controller; +import com.magistr.app.dto.CreateScheduleDataRequest; import com.magistr.app.dto.ScheduleResponse; import com.magistr.app.model.*; import com.magistr.app.repository.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.Collections; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -143,4 +143,59 @@ public class ScheduleDataController { throw e; } } + + // Доделать проверки получаемых полей!!! + @PostMapping("/create") + public ResponseEntity createScheduleData(@RequestBody CreateScheduleDataRequest request) { + logger.info("Получен запрос на создание записи данных для расписаний"); + try { + ScheduleData scheduleData = new ScheduleData(); + scheduleData.setDepartmentId(request.getDepartmentId()); + scheduleData.setSemester(request.getSemester()); + scheduleData.setGroupId(request.getGroupId()); + scheduleData.setSubjectsId(request.getSubjectsId()); + scheduleData.setLessonTypeId(request.getLessonTypeId()); + scheduleData.setNumberOfHours(request.getNumberOfHours()); + scheduleData.setDivision(request.getDivision()); + scheduleData.setTeacherId(request.getTeacherId()); + scheduleData.setSemesterType(request.getSemesterType()); + scheduleData.setPeriod(request.getPeriod()); + + ScheduleData savedSchedule = scheduleDataRepository.save(scheduleData); + + Map response = new LinkedHashMap<>(); + response.put("id", savedSchedule.getId()); + response.put("departmentId", savedSchedule.getDepartmentId()); + response.put("semester", savedSchedule.getSemester()); + response.put("groupId", savedSchedule.getGroupId()); + response.put("subjectId", savedSchedule.getSubjectsId()); + response.put("lessonTypeId", savedSchedule.getLessonTypeId()); + response.put("numberOfHours", savedSchedule.getNumberOfHours()); + response.put("isDivision", savedSchedule.getDivision()); + response.put("teacherId", savedSchedule.getTeacherId()); + response.put("semesterType", savedSchedule.getSemesterType()); + response.put("period", savedSchedule.getPeriod()); + + logger.info("Запись успешно создана с ID: {}", savedSchedule.getId()); + + return ResponseEntity.ok(response); + } catch (Exception e) { + logger.error("Ошибка при создании записи: {}", e.getMessage(), e); + + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) + .body(Map.of("message", "Произошла ошибка при создании записи: " + e.getMessage())); + } + } + + @DeleteMapping("/{id}") + public ResponseEntity deleteById(@PathVariable Long id) { + logger.info("Получен запрос на удаление записи с ID: {}", id); + if(!scheduleDataRepository.existsById(id)) { + logger.info("Запись с ID - {} не найдена", id); + return ResponseEntity.notFound().build(); + } + scheduleDataRepository.deleteById(id); + logger.info("Запись с ID - {} успешно удалена", id); + return ResponseEntity.ok(Map.of("message", "Запись удалена")); + } } \ No newline at end of file