func DeleteFile(w http.ResponseWriter, r *http.Request, cfg config.Configuration, ctx model.Context) { var err error params := mux.Vars(r) f := model.File{} f.SetFilename(params["filename"]) if err != nil { ctx.Log.Println(err) http.Error(w, "Invalid filename specified. It contains illegal characters or is too short.", 400) return } err = f.SetTag(params["tag"]) if err != nil { ctx.Log.Println(err) http.Error(w, "Invalid tag specified. It contains illegal characters or is too short.", 400) return } f.SetTagDir(cfg.Filedir) if f.Exists() == false { ctx.Log.Println("The file does not exist.") http.Error(w, "File Not Found", 404) return } t := model.Tag{} t.SetTag(f.Tag) t.SetTagDir(cfg.Filedir) t.CalculateExpiration(cfg.Expiration) expired, err := t.IsExpired(cfg.Expiration) if err != nil { ctx.Log.Println(err) http.Error(w, "Internal server error", 500) return } if expired { ctx.Log.Println("Expired: " + t.ExpirationReadable) http.Error(w, "This tag has expired.", 410) return } f.GenerateLinks(cfg.Baseurl) err = f.DetectMIME() if err != nil { ctx.Log.Println("Unable to detect MIME: ", err) } err = f.StatInfo() if err != nil { ctx.Log.Println(err) http.Error(w, "Internal Server Error", 500) return } err = f.Remove() if err != nil { ctx.Log.Println("Unable to remove file: ", err) http.Error(w, "Internal Server Error", 500) return } headers := make(map[string]string) headers["Content-Type"] = "application/json" var status = 200 output.JSONresponse(w, status, headers, f, ctx) return }