diff --git a/.project b/.project new file mode 100644 index 0000000..a77080e --- /dev/null +++ b/.project @@ -0,0 +1,11 @@ + + + Spring-Bloogt-Main + + + + + + + + diff --git a/SpringBloogtRestApiServer/pom.xml b/SpringBloogtRestApiServer/pom.xml index 2bce105..6d2aa9c 100644 --- a/SpringBloogtRestApiServer/pom.xml +++ b/SpringBloogtRestApiServer/pom.xml @@ -105,8 +105,17 @@ 0.11.2 runtime + + - + + + com.github.javafaker + javafaker + 0.14 + + + diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/BlogRestApiServerApplication.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/BlogRestApiServerApplication.java index bb1ef6f..da77ef0 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/BlogRestApiServerApplication.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/BlogRestApiServerApplication.java @@ -28,8 +28,8 @@ public static void main(String[] args) { @Override public void run(String... args) throws Exception { - userCreation.createBot(); - userCreation.createRandomPostsForBot(); + + } } diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/controllers/PostsManagement.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/controllers/PostsManagement.java index d638d33..fe0b37d 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/controllers/PostsManagement.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/controllers/PostsManagement.java @@ -25,7 +25,6 @@ import com.blog.project.app.entities.Hashtag; import com.blog.project.app.entities.Hashtag.PostsOfHashtag; import com.blog.project.app.entities.Post; -import com.blog.project.app.entities.Post.PostDetails; import com.blog.project.app.entities.Post.PostDetailsCommentsSortByDateAsc; import com.blog.project.app.entities.Post.PostDetailsCommentsSortByDateDesc; import com.blog.project.app.entities.Post.showPosts; @@ -97,7 +96,7 @@ public String listPostsById(Model model, @PathVariable(value = "id") int id) { - PostDetails returningJSON; + showPosts returningJSON; switch (orderType) { case "asc": returningJSON = (PostDetailsCommentsSortByDateDesc) postService.findPostByIdAndSortByCreatedDateDesc(id); @@ -167,7 +166,7 @@ public String listPostsFromHashtag(Model model, @PathVariable(value = "hashtag") PostsOfHashtag hash = hashtagService.findPostOfHashtagByName(hashtag); - List returningPostJSON = hash.getPosts(); + List returningPostJSON = hash.getPosts(); model.addAttribute("titulo", "#" + hashtag); diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/Hashtag.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/Hashtag.java index 8c8b887..a17082a 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/Hashtag.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/Hashtag.java @@ -16,7 +16,7 @@ import org.springframework.beans.factory.annotation.Value; -import com.blog.project.app.entities.Post.PostDetails; +import com.blog.project.app.entities.Post.showPosts; @Entity public class Hashtag implements Serializable { @@ -98,6 +98,6 @@ public interface PostsOfHashtag { String getName(); @Value("#{target.getPosts().size()}") int getPostCount(); - List getPosts(); + List getPosts(); } } diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/Post.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/Post.java index b0abd84..cc6f93f 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/Post.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/Post.java @@ -255,23 +255,20 @@ public interface showPosts { } - public interface PostDetails extends showPosts{ - - } // It will load PostDetails and then add the sorted comments - public interface PostDetailsCommentsSortByDateAsc extends PostDetails { + public interface PostDetailsCommentsSortByDateAsc extends showPosts { @Value("#{target.getCommentsSortDateAsc()}") List getComments(); } // It will load PostDetails and then add the sorted comments - public interface PostDetailsCommentsSortByDateDesc extends PostDetails { + public interface PostDetailsCommentsSortByDateDesc extends showPosts { @Value("#{target.getCommentsSortDateDesc()}") List getComments(); } - public interface PostDetailsCommentsSortByThumbsUp extends PostDetails { + public interface PostDetailsCommentsSortByThumbsUp extends showPosts { // TODO Thumbs up are not implemented ! } public interface PostBy{ diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/User.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/User.java index c8951b1..3e7fa46 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/User.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/User.java @@ -85,11 +85,11 @@ public class User implements Serializable { - @OneToMany + @OneToMany(cascade = CascadeType.ALL, orphanRemoval=true) @JoinColumn(name = "user_id", referencedColumnName = "id") private List comments; - @OneToMany + @OneToMany(cascade = CascadeType.ALL, orphanRemoval=true) @JoinColumn(name = "user_id", referencedColumnName = "id") private List posts; diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/chat/Chat.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/chat/Chat.java index ae34491..832a6fa 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/chat/Chat.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/chat/Chat.java @@ -173,7 +173,15 @@ public Date getLastMessageDate() { return dateMessages.get(0); } - + + public Message getLastMessage() { + List messages = this.getMessages(); + Collections.sort(messages); + if(messages == null) + return null; + + return messages.get(0); + } public String toString() { return "Id of chat : " + this.getId(); } @@ -191,7 +199,9 @@ public interface ListChatsOfUser { @Value("#{target.getMessages().size()}") int getMessageCount(); - + + @Value("#{target.getLastMessage()}") + MessageData getLastMessage(); int getUnreadMessages(); Map getUnreadMessagesEachUser(); diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/chat/Message.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/chat/Message.java index 6ab4338..d33a72d 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/chat/Message.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/chat/Message.java @@ -13,11 +13,12 @@ import org.springframework.format.annotation.DateTimeFormat; +import com.blog.project.app.entities.Comments; import com.blog.project.app.entities.User; import com.blog.project.app.entities.User.OnlyUsername; @Entity -public class Message implements Serializable{ +public class Message implements Serializable, Comparable{ private static final long serialVersionUID = 1L; @@ -87,6 +88,16 @@ public void setRead(boolean isRead) { this.isRead = isRead; } + + @Override + public int compareTo(Message m) { + if (this.getCreatedAt() == null || m.getCreatedAt() == null) { + return 0; + } + return getCreatedAt().compareTo(m.getCreatedAt()); + } + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////// Projections /////////// @@ -95,9 +106,10 @@ public void setRead(boolean isRead) { public interface MessageData { int getId(); - String message(); + String getMessage(); OnlyUsername getAuthor(); Date getCreatedAt(); boolean isRead(); - } + } + } diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/reaction/CommentReaction.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/reaction/CommentReaction.java index 899b794..838ccc4 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/reaction/CommentReaction.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/reaction/CommentReaction.java @@ -14,7 +14,7 @@ @Entity public class CommentReaction extends Reaction { - @ManyToOne(cascade = CascadeType.ALL) + @ManyToOne() // @JoinColumn(name = "reaction_id", referencedColumnName = "id") private Comments comment; diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/reaction/Reaction.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/reaction/Reaction.java index 835614c..3aeeb37 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/reaction/Reaction.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/entities/reaction/Reaction.java @@ -30,7 +30,7 @@ public abstract class Reaction { private boolean reaction; - @ManyToOne(cascade = CascadeType.ALL) + @ManyToOne() @JoinColumn(name = "user_id", referencedColumnName = "id") private User reactedBy; diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/dao/IComments.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/dao/IComments.java index 018dd33..26f5685 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/dao/IComments.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/dao/IComments.java @@ -5,6 +5,7 @@ import com.blog.project.app.entities.Category; import com.blog.project.app.entities.Comments; import com.blog.project.app.entities.Post; +import com.blog.project.app.entities.User; import com.blog.project.app.entities.Comments.ShowAllComments; import com.blog.project.app.entities.Comments.ShowComments; import com.blog.project.app.entities.Category.CategoryDetails; @@ -20,6 +21,7 @@ public interface IComments extends BaseRepository { List findByPost(Post post); List findAllProjectedBy(); + List findByCreatedBy(User user); public Comments findCommentById(int id); } diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/dao/IPost.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/dao/IPost.java index 36a3a73..00644e5 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/dao/IPost.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/dao/IPost.java @@ -2,11 +2,8 @@ import java.util.List; -import org.springframework.data.jpa.repository.Query; - import com.blog.project.app.entities.Category; import com.blog.project.app.entities.Post; -import com.blog.project.app.entities.Post.PostDetails; import com.blog.project.app.entities.Post.PostDetailsCommentsSortByDateAsc; import com.blog.project.app.entities.Post.PostDetailsCommentsSortByDateDesc; import com.blog.project.app.entities.Post.showPosts; @@ -14,7 +11,7 @@ public interface IPost extends BaseRepository { - PostDetails findById(int id); + showPosts findById(int id); Post findPostById(int id); PostDetailsCommentsSortByDateAsc findByIdOrderByCreatedAtAsc(int id); @@ -36,6 +33,7 @@ public interface IPost extends BaseRepository { + List findByCreatedBy(User user); List findByCreatedByIn(List listUser); List findByCreatedByInAndCategoryOrderByCreatedAtDesc(List listUser, Category category); diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/dao/ITrending.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/dao/ITrending.java new file mode 100644 index 0000000..147bc59 --- /dev/null +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/dao/ITrending.java @@ -0,0 +1,29 @@ +package com.blog.project.app.models.dao; + +import java.util.List; + +import org.springframework.data.jpa.repository.Query; + +import com.blog.project.app.entities.Post.showPosts; +import com.blog.project.app.entities.Role; + +public interface ITrending extends BaseRepository { + + @Query(value = "SELECT comment_id FROM reaction\r\n" + + "where reaction.dtype = 'CommentReaction' \r\n" + + "and reaction.reaction = true\r\n" + + "and reaction.created_at >= DATE_SUB(NOW(),INTERVAL 1 HOUR) \r\n" + + "group by reaction.comment_id\r\n" + + "order by count(*) desc\r\n" + + "limit ?1,?2", nativeQuery = true) + List getMoreLikedCommentsLastHour(int startAt, int limit); + + @Query(value = " SELECT post_id FROM reaction, post, category where reaction.dtype = 'PostReaction' and reaction.reaction = true and reaction.created_at >= DATE_SUB(NOW(),INTERVAL 1 HOUR) and post.id = reaction.post_id and post.category_id = category.id and category.name = ?1 group by reaction.post_id order by count(*) desc limit ?2, ?3", nativeQuery = true) + List getMoreLikedPostsLastHourOfCategory(String categoryName, int startAt, int limit); + + @Query(value = "SELECT post.id FROM post,category where post.category_id = category.id and category.name not like ?1 order by post.created_at desc limit ?2, ?3", nativeQuery = true) + List getLastPostsExceptCategory(String categoryName, int startAt, int limit); + + + +} diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/dao/IUser.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/dao/IUser.java index 5ac1cf9..69fbe1e 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/dao/IUser.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/dao/IUser.java @@ -14,6 +14,14 @@ public interface IUser extends BaseRepository { + @Query("select count(*) from User") + int countAll(); + + + + + @Query(value = "SELECT user.* FROM post, user where post.user_id = user.id and user.username like 'BOT-%' group by user.username", nativeQuery = true) + List getAllBotsThatHavePosts(); User findUserForLoginByUsername(String username); diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/IChatMessageService.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/IChatMessageService.java index 985e444..9941925 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/IChatMessageService.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/IChatMessageService.java @@ -19,7 +19,8 @@ public interface IChatMessageService { public Chat findChatById(int chatId); public void newMessageToChat(User fromUser, String message, int chatId); - public int getUnreadMessages(); + public int getUnreadMessagesLoggedSession(); + public int getUnreadMessages(User user); public void allMessagesToRead(Chat chat); public void changeMessageToRead(Message message); diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/IPostService.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/IPostService.java index 081e336..ba66c74 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/IPostService.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/IPostService.java @@ -4,7 +4,6 @@ import com.blog.project.app.entities.Category; import com.blog.project.app.entities.Post; -import com.blog.project.app.entities.Post.PostDetails; import com.blog.project.app.entities.Post.showPosts; import com.blog.project.app.entities.User; @@ -16,7 +15,7 @@ public interface IPostService { /// Custom - public PostDetails findPostById(int id); + public showPosts findPostById(int id); public List findAllPostsProjection(); public List findAllPostsProjectionByCategory(Category category); public List findAllPostsProjectionByCategoryNot(Category category); @@ -27,8 +26,8 @@ public interface IPostService { public Post findReturnPostById(int id); void deletePostById(int id); - PostDetails findPostByIdAndSortByCreatedDateDesc(int id); - PostDetails findPostByIdAndSortByCreatedDateAsc(int id); + showPosts findPostByIdAndSortByCreatedDateDesc(int id); + showPosts findPostByIdAndSortByCreatedDateAsc(int id); public void addVisit(int id); } diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/ITrendingService.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/ITrendingService.java new file mode 100644 index 0000000..0fd84ac --- /dev/null +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/ITrendingService.java @@ -0,0 +1,10 @@ +package com.blog.project.app.models.service; + +import java.util.List; + +import com.blog.project.app.entities.Post.showPosts; + +public interface ITrendingService { + List getMoreVotedPostsLastHour(String category, int start, int end); + List getLastPostsExceptCategory(String category, int start, int end); +} diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/implementation/ChatMessageServiceImpl.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/implementation/ChatMessageServiceImpl.java index fffdd76..35d0ad7 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/implementation/ChatMessageServiceImpl.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/implementation/ChatMessageServiceImpl.java @@ -107,15 +107,22 @@ public void newMessageToChat(User fromUser, String message, int chatId) { } @Override - public int getUnreadMessages() { + public int getUnreadMessagesLoggedSession() { try { User fromUser = userService.getLoggedUser(); - return chatDao.getUnreadMessages(fromUser.getId()); + return this.getUnreadMessages(fromUser); + } catch (Exception e) { + return 0; + } + } + @Override + public int getUnreadMessages(User user) { + try { + return chatDao.getUnreadMessages(user.getId()); } catch (Exception e) { return 0; } } - @Override public void changeMessageToRead(Message message) { message.setRead(true); diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/implementation/PostServiceImpl.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/implementation/PostServiceImpl.java index 18c17c0..58b42fd 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/implementation/PostServiceImpl.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/implementation/PostServiceImpl.java @@ -7,9 +7,8 @@ import com.blog.project.app.entities.Category; import com.blog.project.app.entities.Post; -import com.blog.project.app.entities.User; -import com.blog.project.app.entities.Post.PostDetails; import com.blog.project.app.entities.Post.showPosts; +import com.blog.project.app.entities.User; import com.blog.project.app.models.dao.IPost; import com.blog.project.app.models.service.IPostService; @@ -30,8 +29,8 @@ public void savePost(Post post) { } @Override - public PostDetails findPostById(int id) { - return (PostDetails) postDao.findById(id); + public showPosts findPostById(int id) { + return (showPosts) postDao.findById(id); } @Override @@ -43,13 +42,13 @@ public void deletePost(Long id) { ////////////////////////////////////////////// @Override - public PostDetails findPostByIdAndSortByCreatedDateAsc(int id) { - return (PostDetails) postDao.findByIdOrderByCreatedAtAsc(id); + public showPosts findPostByIdAndSortByCreatedDateAsc(int id) { + return (showPosts) postDao.findByIdOrderByCreatedAtAsc(id); } @Override - public PostDetails findPostByIdAndSortByCreatedDateDesc(int id) { - return (PostDetails) postDao.findByIdOrderByCreatedAtDesc(id); + public showPosts findPostByIdAndSortByCreatedDateDesc(int id) { + return (showPosts) postDao.findByIdOrderByCreatedAtDesc(id); } // CUSTOM diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/implementation/TrendingServiceImpl.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/implementation/TrendingServiceImpl.java new file mode 100644 index 0000000..cd9b3b0 --- /dev/null +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/implementation/TrendingServiceImpl.java @@ -0,0 +1,51 @@ +package com.blog.project.app.models.service.implementation; + +import java.util.LinkedList; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.blog.project.app.entities.Post.showPosts; +import com.blog.project.app.models.dao.IPost; +import com.blog.project.app.models.dao.ITrending; +import com.blog.project.app.models.service.ITrendingService; + +@Service +public class TrendingServiceImpl implements ITrendingService{ + + @Autowired + ITrending trendingDao; + + @Autowired + IPost postDao; + + public List getMoreVotedPostsLastHour(String category, int start, int end){ + List listInt = trendingDao.getMoreLikedPostsLastHourOfCategory(category, start, end); + List listPosts = new LinkedList<>(); + + + for(Integer indInt : listInt) { + showPosts post = postDao.findById(indInt); + listPosts.add(post); + } + + return listPosts; + + } + + @Override + public List getLastPostsExceptCategory(String category, int start, int end) { + List listInt = trendingDao.getLastPostsExceptCategory(category, start, end); + List listPosts = new LinkedList<>(); + + + for(Integer indInt : listInt) { + showPosts post = postDao.findById(indInt); + listPosts.add(post); + } + + return listPosts; + } + +} diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/implementation/UserServiceImpl.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/implementation/UserServiceImpl.java index bef4216..795c9a9 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/implementation/UserServiceImpl.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/models/service/implementation/UserServiceImpl.java @@ -236,7 +236,6 @@ public void saveUserAndAssignRole(User user, String role) { throw new RuntimeException("User already contains that role"); } - System.out.println(basicRole.getAuthority()); if(user.getRoles() == null) user.setRoles(new LinkedList()); diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/ChatController.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/ChatController.java index 40198fd..b5de2d1 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/ChatController.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/ChatController.java @@ -83,14 +83,32 @@ public ChatsAndMessageOfUser getChatsLoggedUser( } ChatsAndMessageOfUser listChats = chatService.findChatOfUserProjection(chat, authenticatedUser); + + chatService.allMessagesToReadExceptAuthored(chat, authenticatedUser); return listChats; } - - - + + @GetMapping("/unreadMessages") + public JSONObject getUnreadMessages(@RequestHeader(value="Authorization", required=false) String authorization) { + + if(authorization == null || !jwtHandler.containsRole(authorization, "ROLE_USER")) + throw new UnauthorizedArea(); + + User authenticatedUser = userService.getUserByUsername(jwtHandler.getUsernameFromJWT(authorization)); + + JSONObject responseJson = new JSONObject(); + + + int unreadMessages = chatService.getUnreadMessages(authenticatedUser); + responseJson.appendField("status", "OK"); + responseJson.appendField("unreadMessages", unreadMessages); + + return responseJson; + +} //////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////POST diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/CommentsController.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/CommentsController.java index 691e802..8f2f9a1 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/CommentsController.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/CommentsController.java @@ -9,8 +9,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; @@ -22,21 +20,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.blog.project.app.entities.Category; -import com.blog.project.app.entities.Category.CategoryDetails; -import com.blog.project.app.entities.Category.CategoryList; import com.blog.project.app.entities.Comments; import com.blog.project.app.entities.Comments.ShowAllComments; import com.blog.project.app.entities.Comments.ShowComments; -import com.blog.project.app.entities.Post; import com.blog.project.app.entities.User; -import com.blog.project.app.entities.Post.PostDetails; -import com.blog.project.app.entities.Post.showPosts; -import com.blog.project.app.entities.User.UserData; import com.blog.project.app.errors.InvalidPayloadException; import com.blog.project.app.errors.NoPayloadDataException; import com.blog.project.app.errors.UnauthorizedArea; -import com.blog.project.app.models.service.ICategoryService; import com.blog.project.app.models.service.ICommentsService; import com.blog.project.app.models.service.IPostService; import com.blog.project.app.models.service.IUserService; diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/FollowsController.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/FollowsController.java index af2c381..09ca0da 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/FollowsController.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/FollowsController.java @@ -28,6 +28,7 @@ import com.blog.project.app.models.service.IUserService; import com.blog.project.app.rest.auth.JWTHandler; import com.blog.project.app.utils.LocalUtils; +import com.github.javafaker.Faker; import net.minidev.json.JSONObject; @@ -48,6 +49,8 @@ public class FollowsController { @GetMapping("/{username}/following") public List getFollows(HttpServletRequest request, HttpServletResponse response, @PathVariable(value = "username") String username) { + + response.setContentType(contentType); diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/HashtagController.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/HashtagController.java index adde887..d458a48 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/HashtagController.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/HashtagController.java @@ -18,23 +18,12 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.blog.project.app.entities.Category; -import com.blog.project.app.entities.Category.CategoryDetails; -import com.blog.project.app.entities.Category.CategoryList; import com.blog.project.app.entities.Hashtag; import com.blog.project.app.entities.Hashtag.HashtagShow; import com.blog.project.app.entities.Hashtag.PostsOfHashtag; -import com.blog.project.app.entities.Post; -import com.blog.project.app.entities.User; -import com.blog.project.app.entities.Post.PostDetails; -import com.blog.project.app.entities.Post.showPosts; -import com.blog.project.app.entities.User.UserData; import com.blog.project.app.errors.NoPayloadDataException; import com.blog.project.app.errors.UnauthorizedArea; -import com.blog.project.app.models.service.ICategoryService; import com.blog.project.app.models.service.IHashtagService; -import com.blog.project.app.models.service.IPostService; -import com.blog.project.app.models.service.IUserService; import com.blog.project.app.rest.auth.JWTHandler; import com.blog.project.app.utils.LocalUtils; diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/PostsController.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/PostsController.java index 2f1afee..d03aa51 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/PostsController.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/PostsController.java @@ -1,6 +1,5 @@ package com.blog.project.app.rest.controllers; -import java.util.Collections; import java.util.Date; import java.util.LinkedList; import java.util.List; @@ -27,7 +26,6 @@ import com.blog.project.app.entities.Category; import com.blog.project.app.entities.Hashtag; import com.blog.project.app.entities.Post; -import com.blog.project.app.entities.Post.PostDetails; import com.blog.project.app.entities.Post.showPosts; import com.blog.project.app.entities.User; import com.blog.project.app.errors.NoPayloadDataException; @@ -153,11 +151,11 @@ public List getAllPostsOfCategoryNotById(HttpServletResponse response } @GetMapping("/getById/{id}") - public PostDetails getPostById(HttpServletResponse response, HttpServletRequest request, + public showPosts getPostById(HttpServletResponse response, HttpServletRequest request, @PathVariable(value = "id") int id) { response.setContentType(contentType); - PostDetails returningJSON = postService.findPostById(id); + showPosts returningJSON = postService.findPostById(id); if (returningJSON.equals(null)) LocalUtils.ThrowPayloadEmptyException(request); diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/ReactionController.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/ReactionController.java index d29190a..d06b89e 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/ReactionController.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/ReactionController.java @@ -59,8 +59,7 @@ public List postsReactionsOfUser( User user = userService.getUserByUsername(username); - List reactionPostData = null; - + List reactionPostData = null; if(reaction == true) { reactionPostData = commentReactionService.getPostReactionUpOrDownOfUser(true,user); @@ -68,8 +67,7 @@ public List postsReactionsOfUser( } if(reaction == false) { reactionPostData = commentReactionService.getPostReactionUpOrDownOfUser(false,user); - return reactionPostData; - + return reactionPostData; } reactionPostData = commentReactionService.getPostReactionsOfUser(user); @@ -98,8 +96,7 @@ public List commentReactionsOfUser( if(reaction == false) { reactionCommentData = commentReactionService.getCommentReactionUpOrDownOfUser(false,user); return reactionCommentData; - } - + } reactionCommentData = commentReactionService.getCommentReactionsOfUser(user); diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/TrendingController.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/TrendingController.java new file mode 100644 index 0000000..bd70725 --- /dev/null +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/rest/controllers/TrendingController.java @@ -0,0 +1,67 @@ +package com.blog.project.app.rest.controllers; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.blog.project.app.entities.User; +import com.blog.project.app.entities.Post.showPosts; +import com.blog.project.app.entities.reaction.PostReaction.ReactionPostByUser; +import com.blog.project.app.errors.UnauthorizedArea; +import com.blog.project.app.models.dao.ITrending; +import com.blog.project.app.models.service.ITrendingService; +import com.blog.project.app.utils.LocalUtils; + +@RestController +@CrossOrigin +@RequestMapping("/api/trending") +public class TrendingController { + + + @Autowired + ITrending trendingDao; + + + @Autowired + ITrendingService trendingService; + + @GetMapping("/betterPost/{category}/{start}/{end}") + public List getBetterPosts(HttpServletResponse response, HttpServletRequest request, + @PathVariable(value = "category") String category, + @PathVariable(value = "start") int start, + @PathVariable(value = "end") int end) { + + //List listPosts = trendingDao.getMoreLikedPostsLastHourOfCategory(category, start, end); + List listPosts = trendingService.getMoreVotedPostsLastHour(category, start, end); + + if (listPosts.isEmpty()) + LocalUtils.ThrowPayloadEmptyException(request); + + return listPosts; + + } + @GetMapping("/lastsPostsExceptCategory/{category}/{start}/{end}") + public List getAllPostsExceptCategory(HttpServletResponse response, HttpServletRequest request, + @PathVariable(value = "category") String category, + @PathVariable(value = "start") int start, + @PathVariable(value = "end") int end) { + + //List listPosts = trendingDao.getMoreLikedPostsLastHourOfCategory(category, start, end); + List listPosts = trendingService.getLastPostsExceptCategory(category, start, end); + + if (listPosts.isEmpty()) + LocalUtils.ThrowPayloadEmptyException(request); + + return listPosts; + + } +} diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/scheduled/SimulateActivity.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/scheduled/SimulateActivity.java new file mode 100644 index 0000000..65e6b0e --- /dev/null +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/scheduled/SimulateActivity.java @@ -0,0 +1,296 @@ +package com.blog.project.app.scheduled; + +import java.util.Date; +import java.util.LinkedList; +import java.util.List; +import java.util.Random; + +import javax.transaction.Transactional; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; + +import com.blog.project.app.entities.Comments; +import com.blog.project.app.entities.Post; +import com.blog.project.app.entities.User; +import com.blog.project.app.models.dao.IComments; +import com.blog.project.app.models.dao.IPost; +import com.blog.project.app.models.dao.IUser; +import com.blog.project.app.models.service.ICategoryService; +import com.blog.project.app.models.service.ICommentsService; +import com.blog.project.app.models.service.IPostService; +import com.blog.project.app.models.service.IReactionService; +import com.blog.project.app.models.service.IUserService; +import com.blog.project.app.utils.LocalUtils; +import com.blog.project.app.utils.RandomData; + +@Service +@EnableAsync +@ConditionalOnProperty(value = "simulate.activity", havingValue = "true") +public class SimulateActivity { + + + private static final Logger logger = LoggerFactory.getLogger(SimulateActivity.class); + + @Autowired + private IUserService userService; + + @Autowired + private IUser userDao; + + @Autowired + private IPostService postService; + @Autowired + private ICommentsService commentService; + + @Autowired + private IPost postDao; + @Autowired + private IComments commentsDao; + + @Autowired + private ICategoryService categoryService; + + @Autowired + private IReactionService reactionService; + + @Autowired + RandomData randomData; + + + @Scheduled(fixedRate = 1000) + @Async + public void simulation() { + Random rand = new Random(); + int int_random = rand.nextInt(10); + + if((int_random >= 0 && (int_random <= 1)) ) { + logger.info("Randomly creating Bot"); + this.createBot(); + } + else if(int_random >= 2 && (int_random <= 3)) { + logger.info("Randomly creating post of Bot"); + int randomUserId = getRandomUserIdOfBot(); + + if(randomUserId == -1) + return; + + this.createRandomPostsForBot(getRandomUserIdOfBot()); + } + else if(int_random >= 4 && (int_random <= 7)) { + logger.info("Randomly creating comment"); + this.randomCreateComment(); + } + else if(int_random >= 8 && (int_random <= 10)) { + int times = 5; + for(int i=0;i!=times;i++) { + try { + randomReactToPostOfBot(); + logger.info("Randomly liking post"); + } catch (Exception e) { + + } + } + for(int i=0;i!=times;i++) { + try { + this.randomReactToCommentOfBot(); + logger.info("Randomly liking comment"); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + else { + return; + } + } + @Async + @Transactional + public void randomCreateComment() { + int randomUserId = getRandomUserIdOfBot(); + int randomUserIdHasPost = getRandomUserIdOfBotThasHasPosted(); + int randomPost = getRandomPostIdOfBot(randomUserIdHasPost); + + if(randomUserIdHasPost == -1 || !(randomPost > 0)) + return; + + + Comments newComment = new Comments(); + + newComment.setCreatedAt( LocalUtils.getActualDate()); + newComment.setMessage(randomData.randomMessage()); + ////////////////////////////////////////////// + + newComment.setCreatedBy(userService.findReturnUserById(randomUserId)); + newComment.setPost(postService.findReturnPostById(randomPost)); + + commentService.save(newComment); + + } + @Async + @Transactional + public void randomReactToPostOfBot() { + int randomUserId = getRandomUserIdOfBot(); + int randomUserIdHasPost = getRandomUserIdOfBotThasHasPosted(); + if(randomUserId == -1) + return; + + User user = userService.findReturnUserById(randomUserId); + int randomPostId = getRandomPostIdOfBot(randomUserIdHasPost); + + if(randomUserId == -1 || randomPostId == -1) + return; + + + if(new Random().nextInt(10) >= 3 ) + reactionService.likeOrDislikePostOrComment(user, randomPostId, true, "Post"); + else + reactionService.likeOrDislikePostOrComment(user, randomPostId, false, "Post"); + + } + + @Async + @Transactional + public void randomReactToCommentOfBot() { + int randomUserId = getRandomUserIdOfBot(); + int randomUserIdHasPost = getRandomUserIdOfBotThasHasPosted(); + if(randomUserId == -1) + return; + + User user = userService.findReturnUserById(randomUserId); + int randomCommentId = getRandomCommentIdOfBot(randomUserIdHasPost); + + if(randomUserId == -1 || randomCommentId == -1) + return; + + + if(new Random().nextInt(10) >= 3 ) + reactionService.likeOrDislikePostOrComment(user, randomCommentId, true, "Comment"); + else + reactionService.likeOrDislikePostOrComment(user, randomCommentId, false, "Comment"); + + } + + @Async + public int getRandomCommentIdOfBot(int userId) { + User user = userService.findReturnUserById(userId); + + Random rand = new Random(); + int upperLimit = 0; + + upperLimit = commentsDao.findByCreatedBy(user).size()-1; + + if(upperLimit <=0) + return -1; + + return commentsDao.findByCreatedBy(user).get(rand.nextInt(upperLimit)).getId(); + } + + @Async + public int getRandomPostIdOfBot(int userId) { + User user = userService.findReturnUserById(userId); + + Random rand = new Random(); + int upperLimit = 0; + + upperLimit = postDao.findByCreatedBy(user).size()-1; + if(upperLimit <=0) + return -1; + + return postDao.findByCreatedBy(user).get(rand.nextInt(upperLimit)).getId(); + } + + @Async + public int getRandomUserIdOfBotThasHasPosted() { + List bots = userDao.getAllBotsThatHavePosts(); + int upperLimit = bots.size(); + Random rand = new Random(); + + + if(upperLimit==0) + return -1; + + int int_random = rand.nextInt(upperLimit); + + int userID = bots.get(int_random).getId(); + return userID; + } + @Async + public int getRandomUserIdOfBot() { + List listUsers= userService.findAll(); + List bots = new LinkedList(); + int upperLimit = 0; + Random rand = new Random(); + + + for(User user : listUsers) { + if(user.getUsername().startsWith("BOT-")) { + bots.add(user); + upperLimit++; + } + } + + if(upperLimit==0) + return -1; + int int_random = rand.nextInt(upperLimit); + + + return bots.get(int_random).getId(); + } + + @Async + @Transactional + public void createBot() { + User newUser = new User(); + Random rand = new Random(); + int int_random = rand.nextInt(5000); + + List listUsers= userService.findAll(); + String randomUsername = randomData.randomBotUsernameNotAlreadyRegistered(listUsers); + + newUser.setUsername(randomUsername); + + String randomFirstName = randomData.randomFirstName(); + String randomLastName = randomData.randomLastName(); + + + newUser.setName(randomFirstName); + newUser.setAvatar("https://pngimg.com/uploads/robot/robot_PNG92.png"); + newUser.setSurname(randomLastName); + + + newUser.setPassword("123456"); + + newUser.setCreatedAt((Date) LocalUtils.getActualDate()); + + newUser.setEmail(randomFirstName + "-" + randomLastName + "@posterbot.com"); + + userService.saveUserAndAssignRole(newUser,"ROLE_USER"); + } + + @Async + @Transactional + public void createRandomPostsForBot(int userId) { + User user = userService.findReturnUserById(userId); + + String postTitle = "randomtitle"; + Post newPost = new Post(); + + newPost.setCategory(categoryService.findCategoryByName("QuickPost")); + newPost.setTitle(postTitle); + + newPost.setContent(randomData.randomMessage()); + newPost.setTimesViewed(0); + newPost.setCreatedAt((Date) LocalUtils.getActualDate()); + newPost.setCreatedBy(user); + + postService.savePost(newPost); + } +} diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/scheduled/UserCreation.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/scheduled/UserCreation.java index 7d1ae2f..3780649 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/scheduled/UserCreation.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/scheduled/UserCreation.java @@ -15,6 +15,7 @@ import com.blog.project.app.models.service.IPostService; import com.blog.project.app.models.service.IUserService; import com.blog.project.app.utils.LocalUtils; +import com.github.javafaker.Faker; @Service public class UserCreation { @@ -35,7 +36,7 @@ public void createBot() { String username = "PosterBot"; newUser.setUsername(username); - + newUser.setName("Hello"); newUser.setAvatar("https://pngimg.com/uploads/robot/robot_PNG92.png"); diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/utils/LocalUtils.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/utils/LocalUtils.java index 111f703..95ca947 100644 --- a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/utils/LocalUtils.java +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/utils/LocalUtils.java @@ -89,7 +89,7 @@ public void addDataToMenu(Model model){ model.addAttribute("categoriesForMenu", categoryService.findAllProjectedBy()); model.addAttribute("hashtagsForMenu", hashtagService.findAllProjectedBy()); - model.addAttribute("unreadMessages", chatService.getUnreadMessages()); + model.addAttribute("unreadMessages", chatService.getUnreadMessagesLoggedSession()); } @@ -98,7 +98,7 @@ public void addDataToMenu(Model model, /*IPostService postService, IUserService model.addAttribute("categoriesForMenu", categoryService.findAllProjectedBy()); model.addAttribute("hashtagsForMenu", hashtagService.findAllProjectedBy()); - model.addAttribute("unreadMessages", chatService.getUnreadMessages()); + model.addAttribute("unreadMessages", chatService.getUnreadMessagesLoggedSession()); } diff --git a/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/utils/RandomData.java b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/utils/RandomData.java new file mode 100644 index 0000000..862b360 --- /dev/null +++ b/SpringBloogtRestApiServer/src/main/java/com/blog/project/app/utils/RandomData.java @@ -0,0 +1,123 @@ +package com.blog.project.app.utils; + +import java.util.List; +import java.util.Random; + +import org.springframework.stereotype.Service; + +import com.blog.project.app.entities.User; +import com.github.javafaker.Faker; + +@Service +public class RandomData { + + public String randomBotUsernameNotAlreadyRegistered(List users) { + String randomName = "BOT-" + this.randomUsername(); + + for(User user : users) { + if(user.getUsername().equals(randomName)) { + return this.randomBotUsernameNotAlreadyRegistered(users); + } + } + return randomName; + } + + public String randomUsername() { + Faker faker = new Faker(); + Random rand = new Random(); + int int_random = rand.nextInt(14); + + if(int_random == 1) + return faker.ancient().god(); + + else if(int_random == 2) + return faker.ancient().primordial(); + + else if(int_random == 3) + return faker.ancient().titan(); + + else if(int_random == 4) + return faker.rickAndMorty().character(); + + else if(int_random == 5) + return faker.pokemon().name(); + + else if(int_random == 6) + return faker.lordOfTheRings().character(); + + else if(int_random == 7) + return faker.harryPotter().character(); + + else if(int_random == 8) + return faker.cat().name(); + + else if(int_random == 9) + return faker.witcher().character(); + + else if(int_random == 10) + return faker.book().author(); + + else if(int_random == 11) + return faker.beer().name(); + + else if(int_random == 12) + return faker.artist().name(); + + else if(int_random == 13) + return faker.gameOfThrones().character(); + + else if(int_random == 14) + return faker.gameOfThrones().city(); + + else + return faker.ancient().hero(); + } + + public String randomFirstName() { + Faker faker = new Faker(); + return faker.name().firstName(); + } + + public String randomLastName() { + Faker faker = new Faker(); + return faker.name().lastName(); + } + + public String randomMessage() { + Faker faker = new Faker(); + Random rand = new Random(); + int int_random = rand.nextInt(9); + + if(int_random == 1) + return faker.rickAndMorty().quote(); + + else if(int_random == 2) + return faker.yoda().quote(); + + else if(int_random == 3) + return faker.chuckNorris().fact(); + + else if(int_random == 4) + return faker.shakespeare().romeoAndJulietQuote(); + + else if(int_random == 5) + return faker.shakespeare().asYouLikeItQuote(); + + else if(int_random == 6) + return faker.shakespeare().kingRichardIIIQuote(); + + else if(int_random == 7) + return faker.harryPotter().quote(); + + else if(int_random == 8) + return faker.witcher().quote(); + + else if(int_random == 9) + return faker.lorem().paragraph(); + + else + return faker.gameOfThrones().quote(); + + } + +} diff --git a/SpringBloogtRestApiServer/src/main/resources/application.properties b/SpringBloogtRestApiServer/src/main/resources/application.properties index 4bc3df3..603379c 100644 --- a/SpringBloogtRestApiServer/src/main/resources/application.properties +++ b/SpringBloogtRestApiServer/src/main/resources/application.properties @@ -17,7 +17,6 @@ spring.dataSource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect -logging.level.org.hibernate.SQL=debug # Crea automaticamente las tablas y las elimina cuando se tira el servidor spring.jpa.hibernate.ddl-auto=create-drop # -------------------------------------------------------------------------------- @@ -27,4 +26,12 @@ spring.servlet.multipart.max-request-size=10MB # -------------------------------------------------------------------------------- -server.error.include-stacktrace=never \ No newline at end of file +server.error.include-stacktrace=never + + +# -------------------------------------------------------------------------------- +# APP SETTINGS +# -------------------------------------------------------------------------------- +simulate.activity=true +spring.jpa.show-sql=false +logging.level.org.hibernate.SQL=OFF \ No newline at end of file diff --git a/SpringBloogtRestApiServer/src/main/resources/import.sql b/SpringBloogtRestApiServer/src/main/resources/import.sql index e2910da..a770c8c 100644 --- a/SpringBloogtRestApiServer/src/main/resources/import.sql +++ b/SpringBloogtRestApiServer/src/main/resources/import.sql @@ -33,13 +33,7 @@ INSERT INTO post (`id`,`content`,`created_at`,`image_post`,`times_viewed`,`title INSERT INTO post (`id`,`content`,`created_at`,`image_post`,`times_viewed`,`title`,`category_id`,`user_id`) VALUES (8,'dargsdfgsdfg

iujn  

','2021-03-19 00:25:25.285000','',1,'Emoji TEST',2,1); -INSERT INTO comments(id, message, removed_by_moderator, user_id, post_id, created_at) VALUES(1,"First Comment",0, 1,7,"2021-11-05 18:06:12"); -INSERT INTO comments(id, message, removed_by_moderator, user_id, post_id, created_at) VALUES(2,"Second comment",0, 2,9,"2016-11-05 18:06:12"); -INSERT INTO comments(id, message, removed_by_moderator, user_id, post_id, created_at) VALUES(3,"Third comment",0, 3,7,"2018-11-05 18:06:12"); -INSERT INTO comments(id, message, removed_by_moderator, user_id, post_id, created_at) VALUES(4,"Fourth comment",0, 4,8,"2019-11-05 18:06:12"); -INSERT INTO comments(id, message, removed_by_moderator, user_id, post_id, created_at) VALUES(5,"Sixth comment",0, 1,7,"2015-11-05 18:06:12"); -INSERT INTO comments(id, message, removed_by_moderator, user_id, post_id, created_at) VALUES(6,"Seventh comment",0, 3,8,"2014-12-13 11:32:45"); -INSERT INTO comments(id, message, removed_by_moderator, user_id, post_id, created_at) VALUES(7,"Eight comment",0, 2,7,"2023-06-09 17:12:00"); + INSERT INTO hashtag(id, name) VALUES(1, "Heart"); INSERT INTO hashtag(id, name) VALUES(2, "Health"); diff --git a/SpringBloogtRestApiServer/src/main/resources/templates/postdetails.html b/SpringBloogtRestApiServer/src/main/resources/templates/postdetails.html index 596a6e2..ac190b1 100644 --- a/SpringBloogtRestApiServer/src/main/resources/templates/postdetails.html +++ b/SpringBloogtRestApiServer/src/main/resources/templates/postdetails.html @@ -60,8 +60,8 @@ th:href="@{/profile/} + ${post.createdBy.username}" th:text="${post.createdBy.username} " /> + src="https://www.glyphicons.com/img/glyphicons/halflings/2x/glyphicons-halflings-21-calendar@2x.png" /> +
diff --git a/SpringBloogtRestApiServer/src/main/resources/templates/profile.html b/SpringBloogtRestApiServer/src/main/resources/templates/profile.html index ec2c45d..57f0c22 100644 --- a/SpringBloogtRestApiServer/src/main/resources/templates/profile.html +++ b/SpringBloogtRestApiServer/src/main/resources/templates/profile.html @@ -18,7 +18,7 @@
    @@ -92,8 +92,12 @@ th:text="'#' + ${hashtag.name}">
+ +