From af46007de1a54567d6098288e94696a0f57137b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=95=D0=B3=D0=BE?= =?UTF-8?q?=D1=80=D0=BE=D0=B2?= Date: Fri, 18 Apr 2025 22:42:57 +0400 Subject: [PATCH] entity additions --- pom.xml | 38 +++++++++ .../ru/ip/example/ExampleApplication.java | 12 ++- .../example/controller/SeazonController.java | 30 +++++++ .../example/controller/SeriesController.java | 28 +++++++ .../java/ru/ip/example/domain/FilmDto.java | 40 ++-------- .../java/ru/ip/example/domain/FilmEntity.java | 79 ------------------- .../java/ru/ip/example/domain/SeazonDto.java | 18 +++++ .../java/ru/ip/example/domain/SeriesDto.java | 14 ++++ .../ip/example/domain/entity/FilmEntity.java | 25 ++++++ .../example/domain/entity/SeazonEntity.java | 20 +++++ .../example/domain/entity/SeriesEntity.java | 18 +++++ .../java/ru/ip/example/mapper/FilmMapper.java | 2 +- .../ru/ip/example/mapper/SeazonMapper.java | 13 +++ .../ru/ip/example/mapper/SeriesMapper.java | 13 +++ .../ip/example/repository/FilmRepository.java | 3 +- .../example/repository/SeazonRepository.java | 14 ++++ .../example/repository/SeriesRepository.java | 10 +++ .../{ => impl}/FilmRepositoryDao.java | 7 +- .../repository/impl/SeazonRepositoryDao.java | 38 +++++++++ .../repository/impl/SerialRepositoryDao.java | 34 ++++++++ .../ru/ip/example/service/SeazonService.java | 12 +++ .../ru/ip/example/service/SeriesService.java | 12 +++ .../service/{ => impl}/FilmServiceImpl.java | 13 ++- .../service/impl/SeazonServiceImpl.java | 38 +++++++++ .../service/impl/SeriesServiceImpl.java | 39 +++++++++ 25 files changed, 445 insertions(+), 125 deletions(-) create mode 100644 src/main/java/ru/ip/example/controller/SeazonController.java create mode 100644 src/main/java/ru/ip/example/controller/SeriesController.java delete mode 100644 src/main/java/ru/ip/example/domain/FilmEntity.java create mode 100644 src/main/java/ru/ip/example/domain/SeazonDto.java create mode 100644 src/main/java/ru/ip/example/domain/SeriesDto.java create mode 100644 src/main/java/ru/ip/example/domain/entity/FilmEntity.java create mode 100644 src/main/java/ru/ip/example/domain/entity/SeazonEntity.java create mode 100644 src/main/java/ru/ip/example/domain/entity/SeriesEntity.java create mode 100644 src/main/java/ru/ip/example/mapper/SeazonMapper.java create mode 100644 src/main/java/ru/ip/example/mapper/SeriesMapper.java create mode 100644 src/main/java/ru/ip/example/repository/SeazonRepository.java create mode 100644 src/main/java/ru/ip/example/repository/SeriesRepository.java rename src/main/java/ru/ip/example/repository/{ => impl}/FilmRepositoryDao.java (84%) create mode 100644 src/main/java/ru/ip/example/repository/impl/SeazonRepositoryDao.java create mode 100644 src/main/java/ru/ip/example/repository/impl/SerialRepositoryDao.java create mode 100644 src/main/java/ru/ip/example/service/SeazonService.java create mode 100644 src/main/java/ru/ip/example/service/SeriesService.java rename src/main/java/ru/ip/example/service/{ => impl}/FilmServiceImpl.java (85%) create mode 100644 src/main/java/ru/ip/example/service/impl/SeazonServiceImpl.java create mode 100644 src/main/java/ru/ip/example/service/impl/SeriesServiceImpl.java diff --git a/pom.xml b/pom.xml index 11d255d..82eee68 100644 --- a/pom.xml +++ b/pom.xml @@ -41,6 +41,13 @@ 2.1.0 + + + org.projectlombok + lombok + 1.18.30 + + org.mapstruct mapstruct @@ -56,6 +63,37 @@ + + org.springframework.boot + spring-boot-maven-plugin + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler.version} + + ${java.version} + ${java.version} + + + org.projectlombok + lombok + ${lombok.version} + + + org.mapstruct + mapstruct-processor + 1.6.3 + + + org.projectlombok + lombok-mapstruct-binding + 0.2.0 + + + + + org.springframework.boot spring-boot-maven-plugin diff --git a/src/main/java/ru/ip/example/ExampleApplication.java b/src/main/java/ru/ip/example/ExampleApplication.java index d011872..d6ab9fa 100644 --- a/src/main/java/ru/ip/example/ExampleApplication.java +++ b/src/main/java/ru/ip/example/ExampleApplication.java @@ -5,11 +5,21 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; import ru.ip.example.config.SwaggerConfig; import ru.ip.example.controller.FilmController; +import ru.ip.example.controller.SeazonController; +import ru.ip.example.controller.SeriesController; import ru.ip.example.mapper.FilmMapper; +import ru.ip.example.mapper.SeazonMapper; +import ru.ip.example.mapper.SeriesMapper; import ru.ip.example.repository.FilmRepository; +import ru.ip.example.repository.SeazonRepository; +import ru.ip.example.repository.SeriesRepository; import ru.ip.example.service.FilmService; +import ru.ip.example.service.SeazonService; +import ru.ip.example.service.SeriesService; -@ComponentScan(basePackageClasses = {FilmMapper.class, FilmController.class, FilmService.class, FilmRepository.class, SwaggerConfig.class}) +@ComponentScan(basePackageClasses = {FilmMapper.class, FilmController.class, FilmService.class, FilmRepository.class, + SeazonMapper.class, SeazonRepository.class, SeazonService.class, SeazonController.class, + SeriesMapper.class, SeriesRepository.class, SeriesService.class, SeriesController.class, SwaggerConfig.class}) @SpringBootApplication public class ExampleApplication { diff --git a/src/main/java/ru/ip/example/controller/SeazonController.java b/src/main/java/ru/ip/example/controller/SeazonController.java new file mode 100644 index 0000000..ad456d2 --- /dev/null +++ b/src/main/java/ru/ip/example/controller/SeazonController.java @@ -0,0 +1,30 @@ +package ru.ip.example.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; +import ru.ip.example.domain.SeazonDto; +import ru.ip.example.service.SeazonService; + +@RestController +@RequiredArgsConstructor +@Tag(name = "SeazonsAPI", description = "Контроллер для управления сезонами") +public class SeazonController { + + private final SeazonService seazonService; + + @PostMapping("/seazons") + public SeazonDto save(@RequestBody SeazonDto dto) { + return seazonService.save(dto); + } + + @PutMapping("/seazons/{id}") + public SeazonDto update(@PathVariable("id") Integer id, @RequestBody SeazonDto dto) { + return seazonService.update(id, dto); + } + + @DeleteMapping("/seazons/{id}") + public void delete(@PathVariable("id") Integer id) { + seazonService.delete(id); + } +} diff --git a/src/main/java/ru/ip/example/controller/SeriesController.java b/src/main/java/ru/ip/example/controller/SeriesController.java new file mode 100644 index 0000000..506058e --- /dev/null +++ b/src/main/java/ru/ip/example/controller/SeriesController.java @@ -0,0 +1,28 @@ +package ru.ip.example.controller; + +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; +import ru.ip.example.domain.SeriesDto; +import ru.ip.example.service.SeriesService; + +@RestController +@RequiredArgsConstructor +public class SeriesController { + + private final SeriesService seriesService; + + @PostMapping("/series") + public SeriesDto save(@RequestBody SeriesDto dto) { + return seriesService.save(dto); + } + + @PutMapping("/series/{id}") + public SeriesDto update(@PathVariable("id") Integer id, @RequestBody SeriesDto seriesDto) { + return seriesService.update(id, seriesDto); + } + + @DeleteMapping("/series/{id}") + public void delete(@PathVariable("id") Integer id) { + seriesService.delete(id); + } +} diff --git a/src/main/java/ru/ip/example/domain/FilmDto.java b/src/main/java/ru/ip/example/domain/FilmDto.java index 6594f25..0b5d2e3 100644 --- a/src/main/java/ru/ip/example/domain/FilmDto.java +++ b/src/main/java/ru/ip/example/domain/FilmDto.java @@ -1,8 +1,13 @@ package ru.ip.example.domain; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.ToString; + +import java.util.List; //dto - data transfer object +@Data @Schema(description = "Информация о фильме") public class FilmDto { @@ -15,36 +20,7 @@ public class FilmDto { @Schema(description = "Год выпуска") private Integer releaseYear; - public FilmDto(String title, String category, Integer releaseYear) { - this.title = title; - this.category = category; - this.releaseYear = releaseYear; - } - - public FilmDto() { - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getCategory() { - return category; - } - - public void setCategory(String category) { - this.category = category; - } - - public Integer getReleaseYear() { - return releaseYear; - } - - public void setReleaseYear(Integer releaseYear) { - this.releaseYear = releaseYear; - } + @ToString.Exclude + @Schema(description = "Список сезонов") + private List seazons; } diff --git a/src/main/java/ru/ip/example/domain/FilmEntity.java b/src/main/java/ru/ip/example/domain/FilmEntity.java deleted file mode 100644 index 25de5fa..0000000 --- a/src/main/java/ru/ip/example/domain/FilmEntity.java +++ /dev/null @@ -1,79 +0,0 @@ -package ru.ip.example.domain; - -import java.util.Objects; - -public class FilmEntity { - - private Integer id; - - private String title; - - private String category; - - private Integer releaseYear; - - public FilmEntity(Integer id, String title, String category, Integer releaseYear) { - this.id = id; - this.title = title; - this.category = category; - this.releaseYear = releaseYear; - } - - public FilmEntity() { - } - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getCategory() { - return category; - } - - public void setCategory(String category) { - this.category = category; - } - - public Integer getReleaseYear() { - return releaseYear; - } - - public void setReleaseYear(Integer releaseYear) { - this.releaseYear = releaseYear; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - FilmEntity that = (FilmEntity) o; - return Objects.equals(id, that.id); - } - - @Override - public int hashCode() { - return Objects.hashCode(id); - } - - @Override - public String toString() { - return "FilmEntity{" + - "id=" + id + - ", title='" + title + '\'' + - ", category='" + category + '\'' + - ", releaseYear=" + releaseYear + - '}'; - } -} diff --git a/src/main/java/ru/ip/example/domain/SeazonDto.java b/src/main/java/ru/ip/example/domain/SeazonDto.java new file mode 100644 index 0000000..b55d433 --- /dev/null +++ b/src/main/java/ru/ip/example/domain/SeazonDto.java @@ -0,0 +1,18 @@ +package ru.ip.example.domain; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.ToString; + +import java.util.List; + +@Data +public class SeazonDto { + + @Schema(description = "Номер сезона") + private Integer number; + + @ToString.Exclude + @Schema(description = "Список серий") + private List series; +} diff --git a/src/main/java/ru/ip/example/domain/SeriesDto.java b/src/main/java/ru/ip/example/domain/SeriesDto.java new file mode 100644 index 0000000..36b1bdd --- /dev/null +++ b/src/main/java/ru/ip/example/domain/SeriesDto.java @@ -0,0 +1,14 @@ +package ru.ip.example.domain; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class SeriesDto { + + @Schema(description = "Название серии") + private String name; + + @Schema(description = "Номер серии") + private Integer number; +} diff --git a/src/main/java/ru/ip/example/domain/entity/FilmEntity.java b/src/main/java/ru/ip/example/domain/entity/FilmEntity.java new file mode 100644 index 0000000..0400d32 --- /dev/null +++ b/src/main/java/ru/ip/example/domain/entity/FilmEntity.java @@ -0,0 +1,25 @@ +package ru.ip.example.domain.entity; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; +import java.util.Objects; + +@Data +@EqualsAndHashCode(onlyExplicitlyIncluded = true) +public class FilmEntity { + + @EqualsAndHashCode.Include + private Integer id; + + private String title; + + private String category; + + private Integer releaseYear; + + @ToString.Exclude + private List seasons; +} diff --git a/src/main/java/ru/ip/example/domain/entity/SeazonEntity.java b/src/main/java/ru/ip/example/domain/entity/SeazonEntity.java new file mode 100644 index 0000000..0400c57 --- /dev/null +++ b/src/main/java/ru/ip/example/domain/entity/SeazonEntity.java @@ -0,0 +1,20 @@ +package ru.ip.example.domain.entity; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; + +@Data +@EqualsAndHashCode(onlyExplicitlyIncluded = true) +public class SeazonEntity { + + @EqualsAndHashCode.Include + private Integer id; + + private Integer number; + + @ToString.Exclude + private List series; +} diff --git a/src/main/java/ru/ip/example/domain/entity/SeriesEntity.java b/src/main/java/ru/ip/example/domain/entity/SeriesEntity.java new file mode 100644 index 0000000..7ef39e4 --- /dev/null +++ b/src/main/java/ru/ip/example/domain/entity/SeriesEntity.java @@ -0,0 +1,18 @@ +package ru.ip.example.domain.entity; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Objects; + +@Data +@EqualsAndHashCode(onlyExplicitlyIncluded = true) +public class SeriesEntity { + + @EqualsAndHashCode.Include + private Integer id; + + private String name; + + private Integer number; +} diff --git a/src/main/java/ru/ip/example/mapper/FilmMapper.java b/src/main/java/ru/ip/example/mapper/FilmMapper.java index 6586b28..5a96595 100644 --- a/src/main/java/ru/ip/example/mapper/FilmMapper.java +++ b/src/main/java/ru/ip/example/mapper/FilmMapper.java @@ -2,7 +2,7 @@ package ru.ip.example.mapper; import org.mapstruct.Mapper; import ru.ip.example.domain.FilmDto; -import ru.ip.example.domain.FilmEntity; +import ru.ip.example.domain.entity.FilmEntity; //чтобы spring инициализировал маппер @Mapper(componentModel = "spring") diff --git a/src/main/java/ru/ip/example/mapper/SeazonMapper.java b/src/main/java/ru/ip/example/mapper/SeazonMapper.java new file mode 100644 index 0000000..3791fae --- /dev/null +++ b/src/main/java/ru/ip/example/mapper/SeazonMapper.java @@ -0,0 +1,13 @@ +package ru.ip.example.mapper; + +import org.mapstruct.Mapper; +import ru.ip.example.domain.SeazonDto; +import ru.ip.example.domain.entity.SeazonEntity; + +@Mapper(componentModel = "spring") +public interface SeazonMapper { + + SeazonDto toDto(SeazonEntity entity); + + SeazonEntity toEntity(SeazonDto dto); +} diff --git a/src/main/java/ru/ip/example/mapper/SeriesMapper.java b/src/main/java/ru/ip/example/mapper/SeriesMapper.java new file mode 100644 index 0000000..167d45a --- /dev/null +++ b/src/main/java/ru/ip/example/mapper/SeriesMapper.java @@ -0,0 +1,13 @@ +package ru.ip.example.mapper; + +import org.mapstruct.Mapper; +import ru.ip.example.domain.SeriesDto; +import ru.ip.example.domain.entity.SeriesEntity; + +@Mapper(componentModel = "spring") +public interface SeriesMapper { + + SeriesEntity toEntity(SeriesDto dto); + + SeriesDto toDto(SeriesEntity entity); +} diff --git a/src/main/java/ru/ip/example/repository/FilmRepository.java b/src/main/java/ru/ip/example/repository/FilmRepository.java index 8e8046d..5486701 100644 --- a/src/main/java/ru/ip/example/repository/FilmRepository.java +++ b/src/main/java/ru/ip/example/repository/FilmRepository.java @@ -1,7 +1,6 @@ package ru.ip.example.repository; -import ru.ip.example.domain.FilmEntity; - +import ru.ip.example.domain.entity.FilmEntity; import java.util.List; public interface FilmRepository { diff --git a/src/main/java/ru/ip/example/repository/SeazonRepository.java b/src/main/java/ru/ip/example/repository/SeazonRepository.java new file mode 100644 index 0000000..f9892e2 --- /dev/null +++ b/src/main/java/ru/ip/example/repository/SeazonRepository.java @@ -0,0 +1,14 @@ +package ru.ip.example.repository; + +import ru.ip.example.domain.SeazonDto; +import ru.ip.example.domain.entity.SeazonEntity; +import ru.ip.example.domain.entity.SeriesEntity; + +import java.util.List; + +public interface SeazonRepository { + + SeazonEntity save(SeazonEntity entity); + + void delete(Integer id); +} diff --git a/src/main/java/ru/ip/example/repository/SeriesRepository.java b/src/main/java/ru/ip/example/repository/SeriesRepository.java new file mode 100644 index 0000000..5858613 --- /dev/null +++ b/src/main/java/ru/ip/example/repository/SeriesRepository.java @@ -0,0 +1,10 @@ +package ru.ip.example.repository; + +import ru.ip.example.domain.entity.SeriesEntity; + +public interface SeriesRepository { + + SeriesEntity save(SeriesEntity entity); + + void delete(Integer id); +} diff --git a/src/main/java/ru/ip/example/repository/FilmRepositoryDao.java b/src/main/java/ru/ip/example/repository/impl/FilmRepositoryDao.java similarity index 84% rename from src/main/java/ru/ip/example/repository/FilmRepositoryDao.java rename to src/main/java/ru/ip/example/repository/impl/FilmRepositoryDao.java index ae5e251..9ca7e33 100644 --- a/src/main/java/ru/ip/example/repository/FilmRepositoryDao.java +++ b/src/main/java/ru/ip/example/repository/impl/FilmRepositoryDao.java @@ -1,7 +1,10 @@ -package ru.ip.example.repository; +package ru.ip.example.repository.impl; import org.springframework.stereotype.Service; -import ru.ip.example.domain.FilmEntity; +import ru.ip.example.domain.FilmDto; +import ru.ip.example.domain.entity.FilmEntity; +import ru.ip.example.domain.entity.SeazonEntity; +import ru.ip.example.repository.FilmRepository; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/ru/ip/example/repository/impl/SeazonRepositoryDao.java b/src/main/java/ru/ip/example/repository/impl/SeazonRepositoryDao.java new file mode 100644 index 0000000..33b23e2 --- /dev/null +++ b/src/main/java/ru/ip/example/repository/impl/SeazonRepositoryDao.java @@ -0,0 +1,38 @@ +package ru.ip.example.repository.impl; + +import org.springframework.stereotype.Service; +import ru.ip.example.domain.entity.SeazonEntity; +import ru.ip.example.domain.entity.SeriesEntity; +import ru.ip.example.repository.SeazonRepository; + +import java.util.List; + +@Service +public class SeazonRepositoryDao implements SeazonRepository { + + private static Integer SEAZON_SEQ = 0; + + public static List seazons; + + @Override + public SeazonEntity save(SeazonEntity entity) { + if (entity.getId() == null) { + entity.setId(SEAZON_SEQ++); + } else if (seazons.contains(entity)) { + int persistEntityIndex = seazons.indexOf(entity); + SeazonEntity savedSeazon = seazons.get(persistEntityIndex); + entity.setSeries(savedSeazon.getSeries()); + seazons.remove(entity); + } + seazons.add(entity); + System.out.println("save/upd film: " + entity); + return entity; + } + + @Override + public void delete(Integer id) { + SeazonEntity seazon = new SeazonEntity(); + seazon.setId(id); + seazons.remove(seazon); + } +} diff --git a/src/main/java/ru/ip/example/repository/impl/SerialRepositoryDao.java b/src/main/java/ru/ip/example/repository/impl/SerialRepositoryDao.java new file mode 100644 index 0000000..663bc52 --- /dev/null +++ b/src/main/java/ru/ip/example/repository/impl/SerialRepositoryDao.java @@ -0,0 +1,34 @@ +package ru.ip.example.repository.impl; + +import org.springframework.stereotype.Service; +import ru.ip.example.domain.entity.SeriesEntity; +import ru.ip.example.repository.SeriesRepository; + +import java.util.List; + +@Service +public class SerialRepositoryDao implements SeriesRepository { + + public static List series; + + private static Integer SERIES_SEQ = 0; + + @Override + public SeriesEntity save(SeriesEntity entity) { + if (entity.getId() == null) { + entity.setId(SERIES_SEQ++); + } else if (series.contains(entity)) { + series.remove(entity); + } + series.add(entity); + System.out.println("save/upd film: " + entity); + return entity; + } + + @Override + public void delete(Integer id) { + SeriesEntity seriesEntity = new SeriesEntity(); + seriesEntity.setId(id); + series.remove(seriesEntity); + } +} diff --git a/src/main/java/ru/ip/example/service/SeazonService.java b/src/main/java/ru/ip/example/service/SeazonService.java new file mode 100644 index 0000000..67d14b5 --- /dev/null +++ b/src/main/java/ru/ip/example/service/SeazonService.java @@ -0,0 +1,12 @@ +package ru.ip.example.service; + +import ru.ip.example.domain.SeazonDto; + +public interface SeazonService { + + SeazonDto save(SeazonDto dto); + + SeazonDto update(Integer id, SeazonDto dto); + + void delete(Integer id); +} diff --git a/src/main/java/ru/ip/example/service/SeriesService.java b/src/main/java/ru/ip/example/service/SeriesService.java new file mode 100644 index 0000000..c750c2a --- /dev/null +++ b/src/main/java/ru/ip/example/service/SeriesService.java @@ -0,0 +1,12 @@ +package ru.ip.example.service; + +import ru.ip.example.domain.SeriesDto; + +public interface SeriesService { + + SeriesDto save(SeriesDto dto); + + SeriesDto update(Integer id, SeriesDto dto); + + void delete(Integer id); +} diff --git a/src/main/java/ru/ip/example/service/FilmServiceImpl.java b/src/main/java/ru/ip/example/service/impl/FilmServiceImpl.java similarity index 85% rename from src/main/java/ru/ip/example/service/FilmServiceImpl.java rename to src/main/java/ru/ip/example/service/impl/FilmServiceImpl.java index 1025495..215f573 100644 --- a/src/main/java/ru/ip/example/service/FilmServiceImpl.java +++ b/src/main/java/ru/ip/example/service/impl/FilmServiceImpl.java @@ -1,28 +1,25 @@ -package ru.ip.example.service; +package ru.ip.example.service.impl; +import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import ru.ip.example.domain.FilmDto; -import ru.ip.example.domain.FilmEntity; +import ru.ip.example.domain.entity.FilmEntity; import ru.ip.example.mapper.FilmMapper; import ru.ip.example.repository.FilmRepository; +import ru.ip.example.service.FilmService; import java.util.ArrayList; import java.util.List; @Service +@RequiredArgsConstructor public class FilmServiceImpl implements FilmService { private final FilmRepository filmRepository; private final FilmMapper filmMapper; - @Autowired - public FilmServiceImpl(FilmRepository filmRepository, FilmMapper filmMapper) { - this.filmRepository = filmRepository; - this.filmMapper = filmMapper; - } - @Override public FilmDto saveFilm(FilmDto dto) { FilmEntity entity = filmMapper.toEntity(dto); diff --git a/src/main/java/ru/ip/example/service/impl/SeazonServiceImpl.java b/src/main/java/ru/ip/example/service/impl/SeazonServiceImpl.java new file mode 100644 index 0000000..0ffa072 --- /dev/null +++ b/src/main/java/ru/ip/example/service/impl/SeazonServiceImpl.java @@ -0,0 +1,38 @@ +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.entity.SeazonEntity; +import ru.ip.example.mapper.SeazonMapper; +import ru.ip.example.repository.SeazonRepository; +import ru.ip.example.service.SeazonService; + +@Service +@RequiredArgsConstructor +public class SeazonServiceImpl implements SeazonService { + + private final SeazonRepository seazonRepository; + + private final SeazonMapper seazonMapper; + + @Override + public SeazonDto save(SeazonDto dto) { + SeazonEntity entity = seazonMapper.toEntity(dto); + SeazonEntity savedEntity = seazonRepository.save(entity); + return seazonMapper.toDto(savedEntity); + } + + @Override + public SeazonDto update(Integer id, SeazonDto dto) { + SeazonEntity entity = seazonMapper.toEntity(dto); + entity.setId(id); + SeazonEntity savedEntity = seazonRepository.save(entity); + return seazonMapper.toDto(savedEntity); + } + + @Override + public void delete(Integer id) { + seazonRepository.delete(id); + } +} diff --git a/src/main/java/ru/ip/example/service/impl/SeriesServiceImpl.java b/src/main/java/ru/ip/example/service/impl/SeriesServiceImpl.java new file mode 100644 index 0000000..9bece4b --- /dev/null +++ b/src/main/java/ru/ip/example/service/impl/SeriesServiceImpl.java @@ -0,0 +1,39 @@ +package ru.ip.example.service.impl; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import ru.ip.example.domain.SeriesDto; +import ru.ip.example.domain.entity.SeazonEntity; +import ru.ip.example.domain.entity.SeriesEntity; +import ru.ip.example.mapper.SeriesMapper; +import ru.ip.example.repository.SeriesRepository; +import ru.ip.example.service.SeriesService; + +@Service +@RequiredArgsConstructor +public class SeriesServiceImpl implements SeriesService { + + private final SeriesMapper seriesMapper; + + private final SeriesRepository seriesRepository; + + @Override + public SeriesDto save(SeriesDto dto) { + SeriesEntity entity = seriesMapper.toEntity(dto); + SeriesEntity savedEntity = seriesRepository.save(entity); + return seriesMapper.toDto(savedEntity); + } + + @Override + public SeriesDto update(Integer id, SeriesDto dto) { + SeriesEntity entity = seriesMapper.toEntity(dto); + entity.setId(id); + SeriesEntity savedEntity = seriesRepository.save(entity); + return seriesMapper.toDto(savedEntity); + } + + @Override + public void delete(Integer id) { + seriesRepository.delete(id); + } +}