Add: support delete tag and its references

This commit is contained in:
2021-12-14 00:33:31 +08:00
parent 4bfcf460c9
commit 83ab1a91b2
5 changed files with 158 additions and 53 deletions

View File

@@ -99,6 +99,7 @@ func NewAPI(config Config) (*API, error) {
apiMux.HandleFunc("/put_tag_on_file", api.HandlePutTagOnFile)
apiMux.HandleFunc("/get_tags_on_file", api.HandleGetTagsOnFile)
apiMux.HandleFunc("/delete_tag_on_file", api.HandleDeleteTagOnFile)
apiMux.HandleFunc("/delete_tag", api.HandleDeleteTag)
// folder
apiMux.HandleFunc("/update_foldername", api.HandleUpdateFoldername)
// review

View File

@@ -125,3 +125,34 @@ func (api *API) HandleUpdateTag(w http.ResponseWriter, r *http.Request) {
return
}
}
type DeleteTagRequest struct {
ID int64 `json:"id"`
}
func (api *API) HandleDeleteTag(w http.ResponseWriter, r *http.Request) {
// check if user is admin
err := api.CheckAdmin(w, r)
if err != nil {
api.HandleError(w, r, err)
return
}
req := &DeleteTagRequest{}
err = json.NewDecoder(r.Body).Decode(req)
if err != nil {
api.HandleError(w, r, err)
return
}
err = api.Db.DeleteTag(req.ID)
if err != nil {
api.HandleError(w, r, err)
return
}
log.Println("Successfully deleted tag and its references", req.ID)
api.HandleOK(w, r)
}