package http import ( "encoding/json" "go-common/library/ecode" bm "go-common/library/net/http/blademaster" "io/ioutil" ) // clearStreamStatus 清理互推标志 func clearStreamStatus(c *bm.Context) { type room struct { RoomID json.Number `json:"room_id"` } vp := &room{} switch c.Request.Header.Get("Content-Type") { case "application/x-www-form-urlencoded": if len(c.Request.PostForm) == 0 { c.Set("output_data", "clearStreamStatus = empty post body") c.JSONMap(map[string]interface{}{"message": "empty post body"}, ecode.RequestErr) c.Abort() return } vp.RoomID = json.Number(c.Request.PostFormValue("room_id")) default: defer c.Request.Body.Close() b, err := ioutil.ReadAll(c.Request.Body) if err != nil { c.Set("output_data", err.Error()) c.JSONMap(map[string]interface{}{"message": err.Error()}, ecode.RequestErr) c.Abort() return } if len(b) == 0 { c.Set("output_data", "clearStreamStatus empty params") c.JSONMap(map[string]interface{}{"message": "empty params"}, ecode.RequestErr) c.Abort() return } err = json.Unmarshal(b, &vp) if err != nil { c.Set("output_data", "room_id is not right") c.JSONMap(map[string]interface{}{"message": "room_id is not right"}, ecode.RequestErr) c.Abort() return } } roomID, err := vp.RoomID.Int64() if roomID <= 0 || err != nil { c.Set("output_data", "room_id is not right") c.JSONMap(map[string]interface{}{"message": "room_id is not right"}, ecode.RequestErr) c.Abort() return } c.Set("input_params", map[string]int64{"room_id": roomID}) err = srv.ClearStreamStatus(c, roomID) if err != nil { c.Set("output_data", err.Error()) c.JSONMap(map[string]interface{}{"message": err.Error()}, ecode.RequestErr) c.Abort() return } c.Set("output_data", "clear status success") c.JSONMap(map[string]interface{}{"message": "ok"}, nil) }