Add: delete tag on file

This commit is contained in:
2021-12-12 17:35:30 +08:00
parent 003f8cace2
commit 93a0fe7a31
6 changed files with 104 additions and 3 deletions

View File

@@ -89,6 +89,7 @@ func NewAPI(config Config) (*API, error) {
apiMux.HandleFunc("/update_tag", api.HandleUpdateTag)
apiMux.HandleFunc("/put_tag_on_file", api.HandlePutTagOnFile)
apiMux.HandleFunc("/get_tags_on_file", api.HandleGetTagsOnFile)
apiMux.HandleFunc("/delete_tag_on_file", api.HandleDeleteTagOnFile)
// below needs token
apiMux.HandleFunc("/walk", api.HandleWalk)
apiMux.HandleFunc("/reset", api.HandleReset)

View File

@@ -80,3 +80,40 @@ func (api *API) HandleGetTagsOnFile(w http.ResponseWriter, r *http.Request) {
return
}
}
type DeleteTagOnFileRequest struct {
TagID int64 `json:"tag_id"`
FileID int64 `json:"file_id"`
}
func (api *API) HandleDeleteTagOnFile(w http.ResponseWriter, r *http.Request) {
// check if the user is admin
err := api.CheckAdmin(w, r)
if err != nil {
api.HandleError(w, r, err)
return
}
req := &DeleteTagOnFileRequest{}
err = json.NewDecoder(r.Body).Decode(req)
if err != nil {
api.HandleError(w, r, err)
return
}
// check empty
if req.TagID == 0 || req.FileID == 0 {
api.HandleError(w, r, ErrEmpty)
return
}
log.Println("Delete tag on file request:", req)
err = api.Db.DeleteTagOnFile(req.TagID, req.FileID)
if err != nil {
api.HandleError(w, r, err)
return
}
api.HandleOK(w, r)
}