get requests

This commit is contained in:
2025-04-19 09:53:02 +04:00
parent c9ac856c6f
commit f2dedcc85b
11 changed files with 97 additions and 4 deletions

View File

@@ -3,6 +3,7 @@ package ru.ip.example.controller;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
@@ -12,6 +13,8 @@ import ru.ip.example.domain.AddSeriesDto;
import ru.ip.example.domain.SeazonDto;
import ru.ip.example.service.SeazonService;
import java.util.List;
@RestController
@RequiredArgsConstructor
@Tag(name = "SeazonsAPI", description = "Контроллер для управления сезонами")
@@ -19,6 +22,16 @@ public class SeazonController {
private final SeazonService seazonService;
@GetMapping("/seazons")
public List<SeazonDto> getSeazons() {
return seazonService.findAll();
}
@GetMapping("/seazons/{id}")
public SeazonDto getSeazon(@PathVariable("id") Integer id) {
return seazonService.findById(id);
}
@PostMapping("/seazons")
public SeazonDto save(@RequestBody SeazonDto dto) {
return seazonService.save(dto);

View File

@@ -3,14 +3,18 @@ package ru.ip.example.controller;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import ru.ip.example.domain.SeazonDto;
import ru.ip.example.domain.SeriesDto;
import ru.ip.example.service.SeriesService;
import java.util.List;
@RestController
@RequiredArgsConstructor
@Tag(name = "SeriesAPI", description = "API для работы с сериями")
@@ -18,6 +22,16 @@ public class SeriesController {
private final SeriesService seriesService;
@GetMapping("/series")
public List<SeriesDto> getSeries() {
return seriesService.findAll();
}
@GetMapping("/series/{id}")
public SeriesDto getSeries(@PathVariable("id") Integer id) {
return seriesService.findById(id);
}
@PostMapping("/series")
public SeriesDto save(@RequestBody SeriesDto dto) {
return seriesService.save(dto);

View File

@@ -8,6 +8,8 @@ import java.util.List;
public interface SeazonRepository {
List<SeazonEntity> findAll();
SeazonEntity findById(Integer id);
SeazonEntity save(SeazonEntity entity);

View File

@@ -2,8 +2,12 @@ package ru.ip.example.repository;
import ru.ip.example.domain.entity.SeriesEntity;
import java.util.List;
public interface SeriesRepository {
List<SeriesEntity> findAll();
SeriesEntity findById(int id);
SeriesEntity save(SeriesEntity entity);

View File

@@ -14,6 +14,11 @@ public class SeazonRepositoryDao implements SeazonRepository {
public static List<SeazonEntity> seazons = new ArrayList<>();
@Override
public List<SeazonEntity> findAll() {
return seazons;
}
@Override
public SeazonEntity findById(Integer id) {
SeazonEntity seazonEntity = new SeazonEntity();

View File

@@ -14,6 +14,11 @@ public class SerialRepositoryDao implements SeriesRepository {
private static Integer SERIES_SEQ = 0;
@Override
public List<SeriesEntity> findAll() {
return series;
}
@Override
public SeriesEntity findById(int id) {
SeriesEntity seriesEntity = new SeriesEntity();

View File

@@ -3,8 +3,14 @@ package ru.ip.example.service;
import ru.ip.example.domain.AddSeriesDto;
import ru.ip.example.domain.SeazonDto;
import java.util.List;
public interface SeazonService {
List<SeazonDto> findAll();
SeazonDto findById(Integer id);
SeazonDto save(SeazonDto dto);
SeazonDto update(Integer id, SeazonDto dto);

View File

@@ -2,8 +2,14 @@ package ru.ip.example.service;
import ru.ip.example.domain.SeriesDto;
import java.util.List;
public interface SeriesService {
List<SeriesDto> findAll();
SeriesDto findById(Integer id);
SeriesDto save(SeriesDto dto);
SeriesDto update(Integer id, SeriesDto dto);

View File

@@ -65,10 +65,9 @@ public class FilmServiceImpl implements FilmService {
public FilmDto addSeazon(AddSeazonDto addSeazonDto) {
SeazonEntity seazonEntity = seazonRepository.findById(addSeazonDto.getSeazonId());
FilmEntity film = filmRepository.findById(addSeazonDto.getFilmId());
List<SeazonEntity> seasons = film.getSeazons();
if (!seasons.contains(seazonEntity)) {
seasons.add(seazonEntity);
if (seazonEntity != null && film != null && !film.getSeazons().contains(seazonEntity)) {
film.getSeazons().add(seazonEntity);
}
return filmMapper.toDto(film);
}

View File

@@ -11,6 +11,9 @@ import ru.ip.example.repository.SeazonRepository;
import ru.ip.example.repository.SeriesRepository;
import ru.ip.example.service.SeazonService;
import java.util.ArrayList;
import java.util.List;
@Service
@RequiredArgsConstructor
public class SeazonServiceImpl implements SeazonService {
@@ -21,6 +24,22 @@ public class SeazonServiceImpl implements SeazonService {
private final SeriesRepository seriesRepository;
@Override
public List<SeazonDto> findAll() {
List<SeazonEntity> seazons = seazonRepository.findAll();
List<SeazonDto> seazonDtos = new ArrayList<>();
for(SeazonEntity seazon : seazons) {
seazonDtos.add(seazonMapper.toDto(seazon));
}
return seazonDtos;
}
@Override
public SeazonDto findById(Integer id) {
SeazonEntity seazon = seazonRepository.findById(id);
return seazonMapper.toDto(seazon);
}
@Override
public SeazonDto save(SeazonDto dto) {
SeazonEntity entity = seazonMapper.toEntity(dto);
@@ -46,7 +65,7 @@ public class SeazonServiceImpl implements SeazonService {
SeriesEntity series = seriesRepository.findById(dto.getSeriesId());
SeazonEntity seazon = seazonRepository.findById(dto.getSeazonId());
if (!seazon.getSeries().contains(series)) {
if (series != null && seazon != null && !seazon.getSeries().contains(series)) {
seazon.getSeries().add(series);
}
return seazonMapper.toDto(seazon);

View File

@@ -2,6 +2,7 @@ package ru.ip.example.service.impl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import ru.ip.example.domain.SeazonDto;
import ru.ip.example.domain.SeriesDto;
import ru.ip.example.domain.entity.SeazonEntity;
import ru.ip.example.domain.entity.SeriesEntity;
@@ -9,6 +10,9 @@ import ru.ip.example.mapper.SeriesMapper;
import ru.ip.example.repository.SeriesRepository;
import ru.ip.example.service.SeriesService;
import java.util.ArrayList;
import java.util.List;
@Service
@RequiredArgsConstructor
public class SeriesServiceImpl implements SeriesService {
@@ -17,6 +21,22 @@ public class SeriesServiceImpl implements SeriesService {
private final SeriesRepository seriesRepository;
@Override
public List<SeriesDto> findAll() {
List<SeriesEntity> series = seriesRepository.findAll();
List<SeriesDto> seriesDtos = new ArrayList<>();
for(SeriesEntity seazon : series) {
seriesDtos.add(seriesMapper.toDto(seazon));
}
return seriesDtos;
}
@Override
public SeriesDto findById(Integer id) {
SeriesEntity series = seriesRepository.findById(id);
return seriesMapper.toDto(series);
}
@Override
public SeriesDto save(SeriesDto dto) {
SeriesEntity entity = seriesMapper.toEntity(dto);