func videoDelete(w http.ResponseWriter, r *http.Request) { w = utils.SetJSONHeader(w) if utils.CheckAuth(r) == false { w.Header().Set("WWW-Authenticate", `Basic realm="MY REALM"`) w.WriteHeader(401) w.Write([]byte("401 Unauthorized\n")) return } o := orm.NewOrm() vars := mux.Vars(r) videoID, err := strconv.Atoi(vars["videoId"]) w = utils.SetJSONHeader(w) if err != nil { w.WriteHeader(400) return } video := Video{Id: videoID} if _, err := o.Delete(&video); err == nil { w.WriteHeader(204) } else { w.WriteHeader(404) } }
func videoUpdate(w http.ResponseWriter, r *http.Request) { w = utils.SetJSONHeader(w) if utils.CheckAuth(r) == false { w.Header().Set("WWW-Authenticate", `Basic realm="MY REALM"`) w.WriteHeader(401) w.Write([]byte("401 Unauthorized\n")) return } o := orm.NewOrm() //パラメタからアップデートしたいvideoIdを取得 vars := mux.Vars(r) videoID, _ := strconv.Atoi(vars["videoId"]) video := Video{Id: videoID} //bodyからデータを取り出す。 body, err := ioutil.ReadAll(io.LimitReader(r.Body, 1048576)) checkError(w, err) if err := r.Body.Close(); err != nil { w.WriteHeader(400) utils.CheckError(w, err) panic(err) } var newVideo Video //jsonをパース if err := json.Unmarshal(body, &newVideo); err != nil { w.WriteHeader(422) if err := json.NewEncoder(w).Encode(err); err != nil { panic(err) } panic(err) } if o.Read(&video) == nil { //データがぞんざいすればアップデートする video.VideoId = newVideo.VideoId video.Title = newVideo.Title video.Artist = newVideo.Artist if _, err := o.Update(&video); err == nil { w.WriteHeader(200) response, err := json.Marshal(video) utils.CheckError(w, err) fmt.Fprintln(w, string(response)) } } }