diff --git a/main.go b/main.go index 600c02b..34e05d9 100644 --- a/main.go +++ b/main.go @@ -63,6 +63,26 @@ func handleRequest(w http.ResponseWriter, r *http.Request) { } else { w.WriteHeader(http.StatusMethodNotAllowed) } + case "DELETE": + if strings.HasPrefix(path, "/delete") { + urlItem := strings.Split(path, "/") + if urlExist("/" + urlItem[2]) { + secret := r.URL.Query().Get("secret") + if secret == db.HGet(ctx, "/"+urlItem[2], "secret").Val() { + err := db.Del(ctx, "/"+urlItem[2]) + if err != nil { + log.Println(err) + } + w.WriteHeader(http.StatusNoContent) + } else { + w.WriteHeader(http.StatusForbidden) + } + } else { + w.WriteHeader(http.StatusNotFound) + } + } else { + w.WriteHeader(http.StatusMethodNotAllowed) + } } }