Added FilterService.java and my-discussions page
This commit is contained in:
1 parent
e6ce921af1
commit
c5df48f563
6 files changed
+82
-40
No files matched your search
@@ -3,12 +3,15 @@ package site.easystartup.easystartupcore.config;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
|
||||
@Configuration
|
||||
@ComponentScan(basePackages = {"site.easystartup.easystartupcore"})
|
||||
public class AppConfig {
|
||||
|
||||
|
||||
@Bean
|
||||
public PasswordEncoder passwordEncoder() {
|
||||
return new BCryptPasswordEncoder();
|
||||
|
||||
@@ -4,11 +4,15 @@ import com.google.common.collect.Lists;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.val;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.security.core.userdetails.User;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import site.easystartup.easystartupcore.domain.forum.Discussion;
|
||||
import site.easystartup.easystartupcore.domain.forum.Topic;
|
||||
import site.easystartup.easystartupcore.filter.FilterService;
|
||||
import site.easystartup.easystartupcore.repos.forum.TopicRepo;
|
||||
|
||||
import java.util.Collections;
|
||||
@@ -18,7 +22,7 @@ import java.util.Collections;
|
||||
public class ForumController {
|
||||
private final TopicRepo topicRepo;
|
||||
|
||||
private final Discussion discussion;
|
||||
private final FilterService filterService;
|
||||
|
||||
@GetMapping("/forum")
|
||||
public String forumMain(Model model) {
|
||||
@@ -29,8 +33,9 @@ public class ForumController {
|
||||
|
||||
@GetMapping("/forum/my")
|
||||
public String forumMy(Model model) {
|
||||
val topic = Lists.newArrayList(topicRepo.findAll());
|
||||
model.addAttribute("topics", topic);
|
||||
return "forum";
|
||||
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
||||
val discussions = filterService.getDiscussionsByAuthor(user.getUsername());
|
||||
model.addAttribute("discussions", discussions);
|
||||
return "my-discussions";
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,36 @@
|
||||
package site.easystartup.easystartupcore.filter;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import site.easystartup.easystartupcore.domain.forum.Discussion;
|
||||
import site.easystartup.easystartupcore.domain.forum.DiscussionMessage;
|
||||
import site.easystartup.easystartupcore.repos.forum.DiscussionMessageRepo;
|
||||
import site.easystartup.easystartupcore.repos.forum.DiscussionRepo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface FilterService {
|
||||
List<DiscussionMessage> getMessagesByDiscussionId(long discussionId);
|
||||
@Component
|
||||
@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
||||
public class FilterService {
|
||||
private final DiscussionMessageRepo discussionMessageRepo;
|
||||
|
||||
List<Discussion> getDiscussionByAuthor(String author);
|
||||
private final DiscussionRepo discussionRepo;
|
||||
|
||||
List<Discussion> getDiscussionByMember(String member);
|
||||
public List<DiscussionMessage> getMessagesByDiscussionId(long discussionId) {
|
||||
return Lists.newArrayList(discussionMessageRepo.findAll()).stream()
|
||||
.filter(m -> m.getId() == discussionId).toList();
|
||||
}
|
||||
|
||||
public List<Discussion> getDiscussionsByAuthor(String author) {
|
||||
return Lists.newArrayList(discussionRepo.findAll()).stream()
|
||||
.filter(d -> d.getAuthor().equals(author)).toList();
|
||||
}
|
||||
|
||||
public List<Discussion> getDiscussionsByMember(String member) {
|
||||
return Lists.newArrayList(discussionRepo.findAll()).stream()
|
||||
.filter(d -> getMessagesByDiscussionId(d.getId()).stream()
|
||||
.anyMatch(m -> m.getSender().equals(member))).toList();
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
package site.easystartup.easystartupcore.filter;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import site.easystartup.easystartupcore.domain.forum.Discussion;
|
||||
import site.easystartup.easystartupcore.domain.forum.DiscussionMessage;
|
||||
import site.easystartup.easystartupcore.repos.forum.DiscussionMessageRepo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
||||
public class StreamFilterService implements FilterService {
|
||||
private final DiscussionMessageRepo discussionMessageRepo;
|
||||
|
||||
@Override
|
||||
public List<DiscussionMessage> getMessagesByDiscussionId(long discussionId) {
|
||||
//Lists.newArrayList(discussionMessageRepo.findAll()).stream().filter()
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Discussion> getDiscussionByAuthor(String author) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Discussion> getDiscussionByMember(String member) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user