@@ -191,28 +191,7 @@ func (reader *Reader) NewView(w http.ResponseWriter, r *http.Request) {
191191 })
192192}
193193
194- // FeedView handles requests to the feed page.
195- func (reader * Reader ) FeedView (w http.ResponseWriter , r * http.Request ) {
196- if r .URL .Query ().Has ("id" ) {
197- feedId := r .URL .Query ().Get ("id" )
198- feed , err := reader .GetFeed (feedId )
199- if err != nil {
200- reader .Error (w , err )
201- return
202- }
203- limit := NewLimitFromQuery (r .URL .Query ())
204- posts , err := reader .GetPostsByFeedId (feedId , limit )
205- if err != nil {
206- reader .Error (w , err )
207- return
208- }
209- reader .Render (w , "posts" , H {
210- "feed" : feed ,
211- "posts" : posts ,
212- "pagination" : limit ,
213- })
214- return
215- }
194+ func (reader * Reader ) FeedsView (w http.ResponseWriter , r * http.Request ) {
216195 var conditions []string
217196 if r .URL .Query ().Has ("category" ) {
218197 categoryId := r .URL .Query ().Get ("category" )
@@ -234,6 +213,51 @@ func (reader *Reader) FeedView(w http.ResponseWriter, r *http.Request) {
234213 })
235214}
236215
216+ func (reader * Reader ) PostsView (w http.ResponseWriter , r * http.Request ) {
217+ feedId := r .URL .Query ().Get ("id" )
218+ feed , err := reader .GetFeed (feedId )
219+ if err != nil {
220+ reader .Error (w , err )
221+ return
222+ }
223+ limit := NewLimitFromQuery (r .URL .Query ())
224+ posts , err := reader .GetPostsByFeedId (feedId , limit )
225+ if err != nil {
226+ reader .Error (w , err )
227+ return
228+ }
229+ reader .Render (w , "posts" , H {
230+ "feed" : feed ,
231+ "posts" : posts ,
232+ "pagination" : limit ,
233+ })
234+ }
235+
236+ func (reader * Reader ) DeleteFeedView (w http.ResponseWriter , r * http.Request ) {
237+ feedId := r .URL .Query ().Get ("id" )
238+ err := reader .DeleteFeed (feedId )
239+ if err != nil {
240+ reader .Error (w , err )
241+ return
242+ }
243+ w .WriteHeader (http .StatusOK )
244+ }
245+
246+ // FeedView handles requests to the feed page.
247+ func (reader * Reader ) FeedView (w http.ResponseWriter , r * http.Request ) {
248+ switch r .Method {
249+ case "GET" :
250+ if r .URL .Query ().Has ("id" ) {
251+ reader .PostsView (w , r )
252+ } else {
253+ reader .FeedsView (w , r )
254+ }
255+ case "DELETE" :
256+ reader .DeleteFeedView (w , r )
257+ }
258+
259+ }
260+
237261// PostView handles requests to view a specific post.
238262func (reader * Reader ) PostView (w http.ResponseWriter , r * http.Request ) {
239263 if r .URL .Query ().Has ("id" ) {
0 commit comments