Missing handlers but there we goddamn GO

Former-commit-id: 2505146a54acaf18eadfdebf1dd2720889aef795
This commit is contained in:
bel
2019-06-22 16:23:27 -06:00
parent 093d468f87
commit 35b3ff2c2d
24 changed files with 216 additions and 37 deletions

View File

@@ -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
}

View File

@@ -10,5 +10,5 @@ func TestNew(t *testing.T) {
os.Setenv("DB", "MAP")
os.Args = []string{"ok"}
config.New()
New()
New(nil)
}

View File

@@ -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
}

View File

@@ -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

View File

@@ -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)
}