aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorFelix Hanley <felix@userspace.com.au>2020-02-20 02:55:05 +0000
committerFelix Hanley <felix@userspace.com.au>2020-02-20 02:55:05 +0000
commitdcc9d4bf599eeeffee615cf198b2b74734bcaa48 (patch)
tree1e5173e89989db8f75d8f85d067270bab04afde3 /cmd
parentcc933f411e5d40c16bf07e80a20ded70a26a6a64 (diff)
downloadsws-dcc9d4bf599eeeffee615cf198b2b74734bcaa48.tar.gz
sws-dcc9d4bf599eeeffee615cf198b2b74734bcaa48.tar.bz2
Change counter API
Diffstat (limited to 'cmd')
-rw-r--r--cmd/server/helpers.go5
-rw-r--r--cmd/server/main.go1
-rw-r--r--cmd/server/sites.go21
3 files changed, 15 insertions, 12 deletions
diff --git a/cmd/server/helpers.go b/cmd/server/helpers.go
index 3038b91..f3733c5 100644
--- a/cmd/server/helpers.go
+++ b/cmd/server/helpers.go
@@ -33,6 +33,11 @@ var funcMap = template.FuncMap{
},
}
+func httpError(w http.ResponseWriter, code int, msg string) {
+ log(msg)
+ http.Error(w, http.StatusText(500), 500)
+}
+
func extractTimeRange(r *http.Request) (*time.Time, *time.Time) {
begin := timePtr(time.Now().Round(time.Hour).Add(-168 * time.Hour))
end := timePtr(time.Now())
diff --git a/cmd/server/main.go b/cmd/server/main.go
index 24a706e..7f9041e 100644
--- a/cmd/server/main.go
+++ b/cmd/server/main.go
@@ -148,7 +148,6 @@ func main() {
r.Get("/*", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
p := strings.TrimPrefix(r.URL.Path, "/")
- log("serving", p)
if b, err := StaticLoadTemplate(p); err == nil {
name := filepath.Base(p)
http.ServeContent(w, r, name, time.Now(), bytes.NewReader(b))
diff --git a/cmd/server/sites.go b/cmd/server/sites.go
index 59bb1f0..d59eb1c 100644
--- a/cmd/server/sites.go
+++ b/cmd/server/sites.go
@@ -11,8 +11,8 @@ func handleSites(db sws.SiteStore, rndr Renderer) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
sites, err := db.GetSites()
if err != nil {
- log(err)
- http.Error(w, http.StatusText(500), 500)
+ httpError(w, 500, err.Error())
+ return
}
payload := struct {
Sites []*sws.Site
@@ -20,8 +20,8 @@ func handleSites(db sws.SiteStore, rndr Renderer) http.HandlerFunc {
Sites: sites,
}
if err := rndr.Render(w, "sites", payload); err != nil {
- log(err)
- http.Error(w, http.StatusText(500), 500)
+ httpError(w, 500, err.Error())
+ return
}
}
}
@@ -31,14 +31,12 @@ func handleSite(db sws.SiteStore, rndr Renderer) http.HandlerFunc {
ctx := r.Context()
site, ok := ctx.Value("site").(*sws.Site)
if !ok {
- log("no site in context")
- http.Error(w, http.StatusText(422), 422)
+ httpError(w, 422, "no site in context")
return
}
begin, end := extractTimeRange(r)
if begin == nil || end == nil {
- log("invalid time range")
- http.Error(w, http.StatusText(406), 406)
+ httpError(w, 406, "invalid time range")
return
}
@@ -47,7 +45,8 @@ func handleSite(db sws.SiteStore, rndr Renderer) http.HandlerFunc {
"end": *end,
})
if err != nil {
- log(err)
+ httpError(w, 500, err.Error())
+ return
}
pages := sws.PagesFromHits(hits)
@@ -68,8 +67,8 @@ func handleSite(db sws.SiteStore, rndr Renderer) http.HandlerFunc {
Hits: buckets,
}
if err := rndr.Render(w, "site", payload); err != nil {
- log(err)
- http.Error(w, http.StatusText(500), 500)
+ httpError(w, 500, err.Error())
+ return
}
}
}