review-api/src/main/java/com/guams/review/service/PostService.java
2025-01-23 21:54:29 +01:00

46 lines
1.1 KiB
Java

package com.guams.review.service;
import com.guams.review.model.AuthorRepository;
import com.guams.review.model.dao.Post;
import com.guams.review.model.PostRepository;
import com.guams.review.model.dao.PostWithAuthor;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
@Service
@RequiredArgsConstructor
public class PostService
{
private final PostRepository postRepository;
private final AuthorRepository authorRepository;
public List<Post> list() {
return postRepository.findAll();
}
public Optional<Post> findById(Long id) {
return postRepository.findById(id);
}
public List<PostWithAuthor> listWithAuthors() {
return postRepository.findPostsWithAuthors();
}
public Post insert(Post post) {
return postRepository.save(post);
}
@Transactional
public void delete(UUID authorId, Long postId) {
authorRepository.deletePublication(authorId, postId);
postRepository.deleteById(postId);
}
}