/
toster
/
CinemaAPI
Обзор
Документация
Войти
/
toster
/
CinemaAPI
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/java/ru/sber/cinemarest/Controller/BuildingController.java
87 строк
3 KB
Test
Remove unnecessary comments
17 фев 2025, 16:22
17 фев 2025, 16:22
be42e72
Код
Авторство
О чём код?
package ru.sber.cinemarest.Controller; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import ru.sber.cinemarest.Repository.BuildingRepository; import ru.sber.cinemarest.Repository.FilmRepository; import ru.sber.cinemarest.Repository.RoomRepository; import ru.sber.cinemarest.dto.BuildingAddRequest; import ru.sber.cinemarest.model.Building; import ru.sber.cinemarest.model.Film; import ru.sber.cinemarest.model.Room; import java.util.ArrayList; import java.util.List; import java.util.Optional; @RestController @RequestMapping(path = "/buildings", produces = "application/json") public class BuildingController { BuildingRepository buildingRepository; RoomRepository roomRepository; FilmRepository filmRepository; public BuildingController(BuildingRepository repository, RoomRepository roomRepository, FilmRepository filmRepository) { this.buildingRepository = repository; this.roomRepository = roomRepository; this.filmRepository = filmRepository; } @GetMapping("/") public List<Building> getBuildings(){ List<Building> buildings = new ArrayList<>(); for (Building building : buildingRepository.findAll()) { buildings.add(building); } return buildings; } @PostMapping("/add") public Building addBuilding(@RequestBody BuildingAddRequest buildingAddRequest) { Building building = new Building(); for (Room room : buildingAddRequest.getRooms()) { roomRepository.save(room); } for (Film film : buildingAddRequest.getFilms()) { filmRepository.save(film); } building.setRooms(buildingAddRequest.getRooms()); building.setFilms(buildingAddRequest.getFilms()); buildingRepository.save(building); return building; } @GetMapping("/{id}") public ResponseEntity<Building> getBuilding(@PathVariable long id){ Optional<Building> building = buildingRepository.findById(id); if (building.isPresent()) { return new ResponseEntity<>(building.get(), HttpStatus.OK); } return new ResponseEntity<>(HttpStatus.NOT_FOUND); } @GetMapping("/{id}/rooms/") public ResponseEntity<List<Room>> getRooms(@PathVariable long id){ Optional<Building> building = buildingRepository.findById(id); if (building.isPresent()) { return new ResponseEntity<>(building.get().getRooms(), HttpStatus.OK); } return new ResponseEntity<>(HttpStatus.NOT_FOUND); } @PostMapping("/{id}/rooms/add") public ResponseEntity<Room> addRoom(@PathVariable long id, @RequestBody Room room) { Optional<Building> building = buildingRepository.findById(id); if (building.isPresent()) { building.get().getRooms().add(room); buildingRepository.save(building.get()); return new ResponseEntity<>(room, HttpStatus.OK); } return new ResponseEntity<>(HttpStatus.NOT_FOUND); } @GetMapping("/{id}/films/") public ResponseEntity<List<Film >> getFilms(@PathVariable long id){ Optional<Building> building = buildingRepository.findById(id); if (building.isPresent()) { return new ResponseEntity<>(building.get().getFilms(), HttpStatus.OK); } return new ResponseEntity<>(HttpStatus.NOT_FOUND); } }