/
toster
/
CinemaAPI
Обзор
Документация
Войти
/
toster
/
CinemaAPI
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/java/ru/sber/cinemarest/Controller/SessionController.java
73 строки
3 KB
Test
Add project to repository
17 фев 2025, 16:05
17 фев 2025, 16:05
b78f192
Код
Авторство
О чём код?
package ru.sber.cinemarest.Controller; import jakarta.transaction.Transactional; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import ru.sber.cinemarest.Repository.FilmRepository; import ru.sber.cinemarest.Repository.SessionRepository; import ru.sber.cinemarest.dto.SessionAddRequest; import ru.sber.cinemarest.model.Client; import ru.sber.cinemarest.model.Room; import ru.sber.cinemarest.model.Session; import ru.sber.cinemarest.Repository.RoomRepository; import java.util.ArrayList; import java.util.List; import java.util.Optional; @RestController @RequestMapping(path = "/sessions", produces = "application/json") public class SessionController { private final SessionRepository sessionRepository; private final FilmRepository filmRepositoryRepository; private final RoomRepository roomRepository; public SessionController(SessionRepository sessionRepository, FilmRepository filmRepositoryRepository, RoomRepository roomRepository) { this.sessionRepository = sessionRepository; this.filmRepositoryRepository = filmRepositoryRepository; this.roomRepository = roomRepository; } @PostMapping("/add") @Transactional public Session addSession(@RequestBody SessionAddRequest sessionRequest){ Session session = new Session(); System.out.println(sessionRequest.getFilm()); filmRepositoryRepository.save(sessionRequest.getFilm()); roomRepository.save(sessionRequest.getRoom()); session.setFilm(sessionRequest.getFilm()); session.setRoom(sessionRequest.getRoom()); session.setStart(sessionRequest.getStart()); return sessionRepository.save(session); } @PutMapping("/{id}") public Session editSession(@RequestBody Session session, @PathVariable long id){ session.setId(id); return sessionRepository.save(session); } @DeleteMapping("/{id}") public HttpStatus deleteSession(@PathVariable long id){ Optional<Session> session = sessionRepository.findById(id); if (session.isPresent()) { sessionRepository.deleteById(id); return HttpStatus.OK; } return HttpStatus.NOT_FOUND; } @GetMapping("/{id}") public ResponseEntity<Session> getSession(@PathVariable long id){ Optional<Session> session = sessionRepository.findById(id); if (session.isPresent()) { return new ResponseEntity<>(session.get(), HttpStatus.OK); } else { return new ResponseEntity<>(HttpStatus.NOT_FOUND); } } @GetMapping("/") public List<Session> getSessions(){ List<Session> sessions = new ArrayList<>(); for (Session session : sessionRepository.findAll()) { sessions.add(session); } return sessions; } }