123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package http
- import (
- "encoding/json"
- "go-common/app/service/video/stream-mng/service"
- "go-common/library/ecode"
- bm "go-common/library/net/http/blademaster"
- "io/ioutil"
- )
- // streamValidate 流鉴权接口
- func streamValidate(c *bm.Context) {
- var vp service.ValidateParams
- switch c.Request.Header.Get("Content-Type") {
- case "application/x-www-form-urlencoded":
- if len(c.Request.PostForm) == 0 {
- c.Set("output_data", "stream_valid_err = empty post body")
- c.JSONMap(map[string]interface{}{"message": "empty post body"}, ecode.RequestErr)
- c.Abort()
- return
- }
- vp.Key = c.Request.PostFormValue("key")
- vp.StreamName = c.Request.PostFormValue("stream_name")
- vp.Src = c.Request.PostFormValue("src")
- vp.Type = json.Number(c.Request.PostFormValue("type"))
- 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", "stream_valid_err = 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", err.Error())
- c.JSONMap(map[string]interface{}{"message": err.Error()}, ecode.RequestErr)
- c.Abort()
- return
- }
- }
- c.Set("input_params", vp)
- permission, err := srv.CheckStreamValidate(c, &vp, false)
- if err != nil {
- c.Set("output_data", err.Error())
- if err.Error() == "room is closed" {
- c.JSONMap(map[string]interface{}{"message": err.Error()}, ecode.LimitExceed)
- } else {
- c.JSONMap(map[string]interface{}{"message": err.Error()}, ecode.RequestErr)
- }
- c.Abort()
- return
- }
- c.Set("output_data", permission)
- c.JSONMap(map[string]interface{}{"data": map[string]int{"permission": permission}}, nil)
- }
|