Missing handlers but there we goddamn GO
Former-commit-id: 2505146a54acaf18eadfdebf1dd2720889aef795
This commit is contained in:
@@ -3,19 +3,22 @@ package server
|
||||
import (
|
||||
"local/router"
|
||||
"local/rssmon3/config"
|
||||
"local/rssmon3/monitor"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type Server struct {
|
||||
Port string
|
||||
router *router.Router
|
||||
Jobs chan<- *monitor.Item
|
||||
}
|
||||
|
||||
func New() *Server {
|
||||
func New(jobs chan<- *monitor.Item) *Server {
|
||||
config := config.Values()
|
||||
s := &Server{
|
||||
Port: ":" + strings.TrimPrefix(config.Port, ":"),
|
||||
router: router.New(),
|
||||
Jobs: jobs,
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
@@ -10,5 +10,5 @@ func TestNew(t *testing.T) {
|
||||
os.Setenv("DB", "MAP")
|
||||
os.Args = []string{"ok"}
|
||||
config.New()
|
||||
New()
|
||||
New(nil)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package server
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"local/router"
|
||||
"local/rssmon3/monitor"
|
||||
@@ -77,16 +76,21 @@ func (s *Server) feed(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
var putFeed struct {
|
||||
URL string `json:"url"`
|
||||
Interval time.Duration `json:"refresh"`
|
||||
TitleFilter string `json:"items"`
|
||||
ContentFilter string `json:"content"`
|
||||
Tags []string `json:"tags"`
|
||||
URL string `json:"url"`
|
||||
Interval string `json:"refresh"`
|
||||
TitleFilter string `json:"items"`
|
||||
ContentFilter string `json:"content"`
|
||||
Tags []string `json:"tags"`
|
||||
}
|
||||
if err := json.NewDecoder(r.Body).Decode(&putFeed); err != nil {
|
||||
s.userError(w, r, err)
|
||||
return
|
||||
}
|
||||
interval, err := time.ParseDuration(putFeed.Interval)
|
||||
if err != nil {
|
||||
s.userError(w, r, err)
|
||||
return
|
||||
}
|
||||
f := &rss.Feed{
|
||||
Key: putFeed.URL,
|
||||
URL: putFeed.URL,
|
||||
@@ -98,12 +102,10 @@ func (s *Server) feed(w http.ResponseWriter, r *http.Request) {
|
||||
s.error(w, r, err)
|
||||
return
|
||||
}
|
||||
i, err := monitor.NewItem(f.Key, putFeed.Interval)
|
||||
i, err := monitor.NewItem(f.Key, interval)
|
||||
if err != nil {
|
||||
s.error(w, r, err)
|
||||
return
|
||||
}
|
||||
log.Println(i)
|
||||
s.error(w, r, errors.New("not impl"))
|
||||
// TODO
|
||||
s.Jobs <- i
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ func TestRoutes(t *testing.T) {
|
||||
if err := config.New(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
s := New()
|
||||
s := New(nil)
|
||||
if err := s.Routes(); err != nil {
|
||||
t.Fatalf("cannot routes(): %v", err)
|
||||
}
|
||||
@@ -66,7 +66,7 @@ func TestRoutes(t *testing.T) {
|
||||
func TestServerHandlersNotFound(t *testing.T) {
|
||||
os.Args = []string{"a"}
|
||||
config.New()
|
||||
s := New()
|
||||
s := New(nil)
|
||||
w := httptest.NewRecorder()
|
||||
r, _ := http.NewRequest("GET", "/", nil)
|
||||
s.notFound(w, r)
|
||||
@@ -78,7 +78,7 @@ func TestServerHandlersNotFound(t *testing.T) {
|
||||
func TestServerHandlers(t *testing.T) {
|
||||
os.Args = []string{"a"}
|
||||
config.New()
|
||||
s := New()
|
||||
s := New(nil)
|
||||
cases := []struct {
|
||||
foo func(http.ResponseWriter, *http.Request, error)
|
||||
code int
|
||||
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
|
||||
func TestServerRun(t *testing.T) {
|
||||
config.New()
|
||||
s := New()
|
||||
s := New(nil)
|
||||
go s.Run()
|
||||
time.Sleep(time.Millisecond * 100)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user