From f6d498043c774b1f3b4da9705e71b6a204dd29ba Mon Sep 17 00:00:00 2001 From: ache Date: Sat, 16 Feb 2019 21:19:43 +0100 Subject: Method delete --- server.go | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'server.go') diff --git a/server.go b/server.go index 13cc673..3228bef 100644 --- a/server.go +++ b/server.go @@ -14,12 +14,15 @@ import ( var tmpl *template.Template +func getPath( r *http.Request ) string { + if r.URL.Path == "/" { + return "." + } + return r.URL.Path[1:] +} func handleGet( w http.ResponseWriter, r *http.Request, headOnly bool) { + filename := getPath(r) - filename := r.URL.Path[1:] - if filename == "" { - filename = "." - } fmt.Printf("Trying to get [%s]\n", filename) stat, err := os.Stat(filename) @@ -96,6 +99,24 @@ func handleGet( w http.ResponseWriter, r *http.Request, headOnly bool) { } } func handleDelete( w http.ResponseWriter, r *http.Request) { + filename := getPath(r) + + _, err := os.Stat(filename) + + if err != nil { + if os.IsNotExist(err) { + w.WriteHeader(http.StatusBadRequest) + fmt.Fprintf(w, "Bro, they is nothing here") + } else { + w.WriteHeader(http.StatusInternalServerError) + fmt.Fprintf(w, "Shit happen") + } + } + err = os.Remove(filename) + if err != nil { + w.WriteHeader(http.StatusConflict) + fmt.Fprintf(w, "Error : %s\n", err.Error()) + } } func handlePut( w http.ResponseWriter, r *http.Request) { filename := r.URL.Path[1:] -- cgit v1.2.3