fix api for truncate

master
Bel LaPointe 2021-02-27 12:43:37 -06:00
parent ac68fa5ef4
commit 359f56479a
1 changed files with 17 additions and 3 deletions

20
main.go
View File

@ -5,6 +5,7 @@ import (
"fmt" "fmt"
"io" "io"
"local/args" "local/args"
"local/gziphttp"
"local/logb" "local/logb"
"local/storage" "local/storage"
"net/http" "net/http"
@ -41,13 +42,20 @@ func main() {
} }
func (server server) ServeHTTP(w http.ResponseWriter, r *http.Request) { func (server server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if gziphttp.Can(r) {
w2 := gziphttp.New(w)
defer w2.Close()
w = w2
}
fileServer := http.FileServer(http.Dir("./")) fileServer := http.FileServer(http.Dir("./"))
switch r.URL.Path { switch r.URL.Path {
case "/api": case "/api":
logb.Debug("serving api", r.URL.Path, r.URL.Query())
if err := server.apiHandler(w, r); err != nil { if err := server.apiHandler(w, r); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError) http.Error(w, err.Error(), http.StatusInternalServerError)
} }
default: default:
logb.Debug("serving dir", r.URL.Path)
fileServer.ServeHTTP(w, r) fileServer.ServeHTTP(w, r)
} }
} }
@ -67,7 +75,7 @@ func (server server) apiHandler(w http.ResponseWriter, r *http.Request) error {
default: default:
v, err := server.db.GetStream(key) v, err := server.db.GetStream(key)
if err == storage.ErrNotFound { if err == storage.ErrNotFound {
return nil return json.NewEncoder(w).Encode(nil)
} }
if err != nil { if err != nil {
return err return err
@ -76,9 +84,15 @@ func (server server) apiHandler(w http.ResponseWriter, r *http.Request) error {
return err return err
} }
case http.MethodPost: case http.MethodPost:
return server.db.SetStream(key, r.Body) if err := server.db.SetStream(key, r.Body); err != nil {
return err
}
return json.NewEncoder(w).Encode(nil)
case http.MethodDelete: case http.MethodDelete:
return server.db.SetStream(key, nil) if err := server.db.SetStream(key, nil); err != nil {
return err
}
return json.NewEncoder(w).Encode(nil)
default: default:
http.NotFound(w, r) http.NotFound(w, r)
} }