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"
"io"
"local/args"
"local/gziphttp"
"local/logb"
"local/storage"
"net/http"
@ -41,13 +42,20 @@ func main() {
}
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("./"))
switch r.URL.Path {
case "/api":
logb.Debug("serving api", r.URL.Path, r.URL.Query())
if err := server.apiHandler(w, r); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
default:
logb.Debug("serving dir", r.URL.Path)
fileServer.ServeHTTP(w, r)
}
}
@ -67,7 +75,7 @@ func (server server) apiHandler(w http.ResponseWriter, r *http.Request) error {
default:
v, err := server.db.GetStream(key)
if err == storage.ErrNotFound {
return nil
return json.NewEncoder(w).Encode(nil)
}
if err != nil {
return err
@ -76,9 +84,15 @@ func (server server) apiHandler(w http.ResponseWriter, r *http.Request) error {
return err
}
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:
return server.db.SetStream(key, nil)
if err := server.db.SetStream(key, nil); err != nil {
return err
}
return json.NewEncoder(w).Encode(nil)
default:
http.NotFound(w, r)
}