diff --git a/internal/handlers/server.go b/internal/handlers/server.go index 7303b48..4211621 100644 --- a/internal/handlers/server.go +++ b/internal/handlers/server.go @@ -77,6 +77,7 @@ func (server *Server) setupRouter() { subRouter.HandleFunc("/me/videos/update", server.editVideoView).Methods(http.MethodGet) subRouter.HandleFunc("/me/videos/update/{xid}", server.editVideoView).Methods(http.MethodGet) subRouter.HandleFunc("/me/videos/update", server.editVideo).Methods(http.MethodPost) + subRouter.HandleFunc("/me/videos/delete", server.deleteVideo).Methods(http.MethodPost) subRouter.HandleFunc("/upload_image", server.uploadImage).Methods(http.MethodPost) subRouter.HandleFunc("/upload_file", server.uploadVideo).Methods(http.MethodPost) diff --git a/internal/handlers/video.go b/internal/handlers/video.go index 0b4eb14..1f97bcd 100644 --- a/internal/handlers/video.go +++ b/internal/handlers/video.go @@ -2,7 +2,9 @@ package handlers import ( "context" + "encoding/json" "fmt" + "log" "net/http" "strconv" "strings" @@ -47,6 +49,11 @@ type videoEditPageData struct { StatusMsg string } +// videoDeleteRequest 视频删除请求参数 +type videoDeleteRequest struct { + ID string `json:"id"` +} + // view // videoView 视频播放页面 @@ -198,6 +205,27 @@ func (server *Server) editVideo(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "/me/videos", http.StatusFound) } +// deleteVideo 视频删除 +func (server *Server) deleteVideo(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() + + var req videoDeleteRequest + if err := json.NewDecoder(r.Body).Decode(&req); err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + + log.Println(req.ID) + err := server.store.DeleteVideo(r.Context(), req.ID) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + w.WriteHeader(http.StatusOK) + w.Write([]byte("删除成功")) +} + // transfer 视频转码 func (server *Server) transfer(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) diff --git a/web/templates/video/videos.html.tmpl b/web/templates/video/videos.html.tmpl index ebd808d..51470a3 100644 --- a/web/templates/video/videos.html.tmpl +++ b/web/templates/video/videos.html.tmpl @@ -58,8 +58,11 @@ that.attr("disable", true).html('删除中...') let id = that.attr("data-id") $.ajax({ - url: '/transfer/' + id, + url: '/me/videos/delete', type: 'post', + contentType: 'application/json', + dataType: 'json', + data:JSON.stringify({"id": id}), success: function (obj) { $('#msg').html(obj) },