mirror of https://github.com/halo-dev/halo
Enhance post creation api
parent
3d80e34215
commit
f27f4f8833
|
@ -5,6 +5,7 @@ import cc.ryanc.halo.repository.base.BaseRepository;
|
||||||
import org.springframework.data.jpa.repository.Query;
|
import org.springframework.data.jpa.repository.Query;
|
||||||
import org.springframework.lang.NonNull;
|
import org.springframework.lang.NonNull;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
@ -44,4 +45,13 @@ public interface PostCategoryRepository extends BaseRepository<PostCategory, Int
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
List<PostCategory> findAllByPostIdIn(@NonNull Iterable<Integer> postIds);
|
List<PostCategory> findAllByPostIdIn(@NonNull Iterable<Integer> postIds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds all post categories by post id.
|
||||||
|
*
|
||||||
|
* @param postId post id must not be null
|
||||||
|
* @return a list of post categories
|
||||||
|
*/
|
||||||
|
@NonNull
|
||||||
|
List<PostCategory> findAllByPostId(@NonNull Integer postId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,12 +96,15 @@ public class PostCategoryServiceImpl extends AbstractCrudService<PostCategory, I
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build post categories
|
// Build post categories
|
||||||
List<PostCategory> postCategories = categoryIds.stream().map(categoryId -> {
|
Set<PostCategory> postCategories = categoryIds.stream().map(categoryId -> {
|
||||||
PostCategory postCategory = new PostCategory();
|
PostCategory postCategory = new PostCategory();
|
||||||
postCategory.setPostId(postId);
|
postCategory.setPostId(postId);
|
||||||
postCategory.setCategoryId(categoryId);
|
postCategory.setCategoryId(categoryId);
|
||||||
return postCategory;
|
return postCategory;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toSet());
|
||||||
|
|
||||||
|
// List all post categories and remove them
|
||||||
|
postCategories.removeAll(postCategoryRepository.findAllByPostId(postId));
|
||||||
|
|
||||||
// Create them
|
// Create them
|
||||||
return createInBatch(postCategories);
|
return createInBatch(postCategories);
|
||||||
|
|
|
@ -120,6 +120,9 @@ public class PostTagServiceImpl extends AbstractCrudService<PostTag, Integer> im
|
||||||
return postTag;
|
return postTag;
|
||||||
}).collect(Collectors.toSet());
|
}).collect(Collectors.toSet());
|
||||||
|
|
||||||
|
// Get post tag exist and remove them
|
||||||
|
postTags.removeAll(postTagRepository.findAllByPostId(postId));
|
||||||
|
|
||||||
// Create in batch
|
// Create in batch
|
||||||
return createInBatch(postTags);
|
return createInBatch(postTags);
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,24 +31,8 @@ public class PostController {
|
||||||
|
|
||||||
private final PostService postService;
|
private final PostService postService;
|
||||||
|
|
||||||
private final TagService tagService;
|
public PostController(PostService postService) {
|
||||||
|
|
||||||
private final CategoryService categoryService;
|
|
||||||
|
|
||||||
private final PostTagService postTagService;
|
|
||||||
|
|
||||||
private final PostCategoryService postCategoryService;
|
|
||||||
|
|
||||||
public PostController(PostService postService,
|
|
||||||
TagService tagService,
|
|
||||||
CategoryService categoryService,
|
|
||||||
PostTagService postTagService,
|
|
||||||
PostCategoryService postCategoryService) {
|
|
||||||
this.postService = postService;
|
this.postService = postService;
|
||||||
this.tagService = tagService;
|
|
||||||
this.categoryService = categoryService;
|
|
||||||
this.postTagService = postTagService;
|
|
||||||
this.postCategoryService = postCategoryService;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("latest")
|
@GetMapping("latest")
|
||||||
|
|
Loading…
Reference in New Issue