From fa6fbd2323112200ceeb11c606fdd2a8bb19609d Mon Sep 17 00:00:00 2001 From: ekallin Date: Mon, 18 Mar 2024 12:10:52 +0400 Subject: [PATCH] =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D1=81=D1=81=20=D0=B8=D0=B7?= =?UTF-8?q?=D0=B1=D1=80=D0=B0=D0=BD=D0=BD=D0=BE=D0=B5=20=D1=80=D0=B5=D0=BF?= =?UTF-8?q?=D0=BE=D0=B7=D0=B8=D1=82=D0=BE=D1=80=D0=B8=D0=B9=20=D0=B8=20?= =?UTF-8?q?=D1=81=D0=B5=D1=80=D0=B2=D0=B8=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/FavoriteRepository.java | 11 +++++ .../favorites/service/FavoriteService.java | 49 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 backend/src/main/java/com/example/backend/favorites/repository/FavoriteRepository.java create mode 100644 backend/src/main/java/com/example/backend/favorites/service/FavoriteService.java diff --git a/backend/src/main/java/com/example/backend/favorites/repository/FavoriteRepository.java b/backend/src/main/java/com/example/backend/favorites/repository/FavoriteRepository.java new file mode 100644 index 0000000..dfd86e8 --- /dev/null +++ b/backend/src/main/java/com/example/backend/favorites/repository/FavoriteRepository.java @@ -0,0 +1,11 @@ +package com.example.backend.favorites.repository; + +import org.springframework.stereotype.Repository; + +import com.example.backend.core.repository.MapRepository; +import com.example.backend.favorites.model.FavoriteEntity; + +@Repository +public class FavoriteRepository extends MapRepository { + +} diff --git a/backend/src/main/java/com/example/backend/favorites/service/FavoriteService.java b/backend/src/main/java/com/example/backend/favorites/service/FavoriteService.java new file mode 100644 index 0000000..4d77c8e --- /dev/null +++ b/backend/src/main/java/com/example/backend/favorites/service/FavoriteService.java @@ -0,0 +1,49 @@ +package com.example.backend.favorites.service; + +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +import org.springframework.stereotype.Service; + +import com.example.backend.core.errors.NotFoundException; +import com.example.backend.favorites.model.FavoriteEntity; +import com.example.backend.favorites.repository.FavoriteRepository; + +@Service +public class FavoriteService { + private final FavoriteRepository repository; + + public FavoriteService(FavoriteRepository repository) { + this.repository = repository; + } + + public List getAll(Integer userId) { + if (Objects.equals(userId, 0)) { + return repository.getAll(); + } + return repository.getAll().stream() + .filter(item -> item.getUser().getId().equals(userId)) + .toList(); + } + + public FavoriteEntity get(Integer id) { + return Optional.ofNullable(repository.get(id)).orElseThrow(() -> new NotFoundException(id)); + } + + public FavoriteEntity create(FavoriteEntity entity) { + return repository.create(entity); + } + + public FavoriteEntity update(Integer id, FavoriteEntity entity) { + final FavoriteEntity exisEntity = get(id); + exisEntity.setUser(entity.getUser()); + exisEntity.setMovie(entity.getMovie()); + return repository.update(exisEntity); + } + + public FavoriteEntity delete(Integer id) { + final FavoriteEntity exisEntity = get(id); + return repository.delete(exisEntity); + } +}