@@ -66,6 +66,126 @@ public String getTweetById(
6666 return "tweet/id" ;
6767 }
6868
69+ @ RequestMapping ("/timeline/home" )
70+ public String getHomeTimeline (
71+ @ RequestParam (name = "page" , defaultValue ="" + ControllerHelper .FIRST_PAGE_NUMBER ) int page ,
72+ Model model
73+ ){
74+ String title = "Tweets" ;
75+ model = controllerHelper .setupPage (
76+ model ,
77+ title ,
78+ "Home Timneline" ,
79+ Symbols .HOME_TIMELINE_TWEETS .toString ()
80+ );
81+ String sortByColumn = "createdAt" ;
82+ Pageable pageRequest = new PageRequest (
83+ page ,
84+ frontendProperties .getPageSize (),
85+ Sort .Direction .DESC ,
86+ sortByColumn
87+ );
88+ Page <Tweet > latest = tweetService .getHomeTimeline (pageRequest );
89+ model .addAttribute ("latestTweets" , latest );
90+ return "tweet/all" ;
91+ }
92+
93+ @ RequestMapping ("/timeline/user" )
94+ public String getUserTimeline (
95+ @ RequestParam (name = "page" , defaultValue ="" + ControllerHelper .FIRST_PAGE_NUMBER ) int page ,
96+ Model model
97+ ){
98+ String title = "Tweets" ;
99+ model = controllerHelper .setupPage (
100+ model ,
101+ title ,
102+ "User Timeline" ,
103+ Symbols .USER_TIMELINE_TWEETS .toString ()
104+ );
105+ String sortByColumn = "createdAt" ;
106+ Pageable pageRequest = new PageRequest (
107+ page ,
108+ frontendProperties .getPageSize (),
109+ Sort .Direction .DESC ,
110+ sortByColumn
111+ );
112+ Page <Tweet > latest = tweetService .getUserTimeline (pageRequest );
113+ model .addAttribute ("latestTweets" , latest );
114+ return "tweet/all" ;
115+ }
116+
117+ @ RequestMapping ("/mentions" )
118+ public String getMentions (
119+ @ RequestParam (name = "page" , defaultValue ="" + ControllerHelper .FIRST_PAGE_NUMBER ) int page ,
120+ Model model
121+ ){
122+ String title = "Tweets" ;
123+ model = controllerHelper .setupPage (
124+ model ,
125+ title ,
126+ "Mentions" ,
127+ Symbols .MENTIONS_TWEETS .toString ()
128+ );
129+ String sortByColumn = "createdAt" ;
130+ Pageable pageRequest = new PageRequest (
131+ page ,
132+ frontendProperties .getPageSize (),
133+ Sort .Direction .DESC ,
134+ sortByColumn
135+ );
136+ Page <Tweet > latest = tweetService .getMentions (pageRequest );
137+ model .addAttribute ("latestTweets" , latest );
138+ return "tweet/all" ;
139+ }
140+
141+ @ RequestMapping ("/favorites" )
142+ public String getFavorites (
143+ @ RequestParam (name = "page" , defaultValue ="" + ControllerHelper .FIRST_PAGE_NUMBER ) int page ,
144+ Model model
145+ ){
146+ String title = "Tweets" ;
147+ model = controllerHelper .setupPage (
148+ model ,
149+ title ,
150+ "Favorites" ,
151+ Symbols .FAVORITES_TWEETS .toString ()
152+ );
153+ String sortByColumn = "createdAt" ;
154+ Pageable pageRequest = new PageRequest (
155+ page ,
156+ frontendProperties .getPageSize (),
157+ Sort .Direction .DESC ,
158+ sortByColumn
159+ );
160+ Page <Tweet > latest = tweetService .getFavorites (pageRequest );
161+ model .addAttribute ("latestTweets" , latest );
162+ return "tweet/all" ;
163+ }
164+
165+ @ RequestMapping ("/retweets" )
166+ public String getRetweetsOfMe (
167+ @ RequestParam (name = "page" , defaultValue ="" + ControllerHelper .FIRST_PAGE_NUMBER ) int page ,
168+ Model model
169+ ){
170+ String title = "Tweets" ;
171+ model = controllerHelper .setupPage (
172+ model ,
173+ title ,
174+ "Retweets Of Me" ,
175+ Symbols .RETWEETS_OF_ME_FAVORITES_TWEETS .toString ()
176+ );
177+ String sortByColumn = "createdAt" ;
178+ Pageable pageRequest = new PageRequest (
179+ page ,
180+ frontendProperties .getPageSize (),
181+ Sort .Direction .DESC ,
182+ sortByColumn
183+ );
184+ Page <Tweet > latest = tweetService .getRetweetsOfMe (pageRequest );
185+ model .addAttribute ("latestTweets" , latest );
186+ return "tweet/all" ;
187+ }
188+
69189 private static final Logger log = LoggerFactory .getLogger (TweetController .class );
70190
71191 private final TweetService tweetService ;
0 commit comments