46 lines
1.1 KiB
Java
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);
|
|
}
|
|
|
|
}
|