diff --git a/main.go b/main.go index f575529..04a5d0b 100644 --- a/main.go +++ b/main.go @@ -36,8 +36,8 @@ func core() { defer sclient.Close() ex.SClient = sclient - var server *server.Server - if server, err = server.New(config.Port, + var srv *server.Server + if srv, err = server.New(config.Port, ex.NewFeed, ex.GetFeedRSS, ex.GetFeedItem, @@ -45,14 +45,14 @@ func core() { ); err != nil { panic(err) } - ex.Srv = server + ex.Srv = srv if err := ex.LoadDB(); err != nil { panic(err) } logger.Log("Starting with", config) - if err := server.Serve(); err != nil { + if err := srv.Serve(); err != nil { panic(err) } } diff --git a/main_test.go b/main_test.go index 0820d8f..95aa828 100644 --- a/main_test.go +++ b/main_test.go @@ -96,13 +96,12 @@ func Test_Core(t *testing.T) { }, { method: "get", - path: "api/feed/item", - body: "http___127_0_0_1_" + strings.Split(rssserver.URL, ":")[2] + "_feed.20181010_http___127_0_0_1_" + strings.Split(rssserver.URL, ":")[2] + "_itemB", + path: "api/feed/item/http___127_0_0_1_" + strings.Split(rssserver.URL, ":")[2] + "_feed.20181010_http___127_0_0_1_" + strings.Split(rssserver.URL, ":")[2] + "_itemB", status: 200, }, { method: "get", - path: "api/feed/tag?url=gotest", + path: "api/feed/tag/gotest", status: 200, }, { diff --git a/server/server.go b/server/server.go index 731429b..40b1dd7 100644 --- a/server/server.go +++ b/server/server.go @@ -142,15 +142,14 @@ func (s *Server) newFeed(w http.ResponseWriter, r *http.Request) { } func (s *Server) getFeedTag(w http.ResponseWriter, r *http.Request) { - url, err := url.ParseQuery(r.URL.RawQuery) - if err != nil { - logger.Logf("cannot get feed tag to read: %v", err) - s.mybad(w, r) + url := advance(r) + if url == "" { + s.bad(w, r) return } - feedBody, err := s.getFeedTagHandler(url.Get("url")) + feedBody, err := s.getFeedTagHandler(url) if err != nil { - logger.Logf("cannot get feed tag %s: %v", url.Get("url"), err) + logger.Logf("cannot get feed tag %s: %v", url, err) s.mybad(w, r) return } @@ -158,15 +157,14 @@ func (s *Server) getFeedTag(w http.ResponseWriter, r *http.Request) { } func (s *Server) getFeedItem(w http.ResponseWriter, r *http.Request) { - url, err := url.ParseQuery(r.URL.RawQuery) - if err != nil { - logger.Logf("cannot get feed item to read: %v", err) - s.mybad(w, r) + url := advance(r) + if url == "" { + s.bad(w, r) return } - feedBody, err := s.getFeedItemHandler(url.Get("url")) + feedBody, err := s.getFeedItemHandler(url) if err != nil { - logger.Logf("cannot get feed item %s: %v", url.Get("url"), err) + logger.Logf("cannot get feed item %s: %v", url, err) s.mybad(w, r) return } diff --git a/server/server_test.go b/server/server_test.go index 82fa0fc..2c4c5a8 100644 --- a/server/server_test.go +++ b/server/server_test.go @@ -49,10 +49,10 @@ func Test_Server(t *testing.T) { if err := checkStatus("GET", "api/feed?url=localhost_1234", http.StatusOK); err != nil { t.Errorf(err.Error()) } - if err := checkStatus("GET", "api/feed/item?url=localhost_1234", http.StatusOK); err != nil { + if err := checkStatus("GET", "api/feed/item/localhost_1234", http.StatusOK); err != nil { t.Errorf(err.Error()) } - if err := checkStatus("GET", "api/feed/tag?url=b", http.StatusOK); err != nil { + if err := checkStatus("GET", "api/feed/tag/b", http.StatusOK); err != nil { t.Errorf(err.Error()) } syscall.Kill(syscall.Getpid(), syscall.SIGINT)