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); + } +}