12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package dao
- import (
- "bytes"
- "context"
- "encoding/json"
- "fmt"
- "net/http"
- "go-common/library/log"
- )
- const _mask = "/dl/api/masks/v1"
- func (d *Dao) maskURI() string {
- return d.conf.Host.Mask + _mask
- }
- // GenerateMask ask AI to generate dm mask
- func (d *Dao) GenerateMask(c context.Context, cid, mid int64, plat int8, priority int32, aid int64, duration int64, typeID int32) (err error) {
- var (
- res struct {
- Code int64 `json:"errcode"`
- Message string `json:"errmsg"`
- }
- params = make(map[string]interface{})
- )
- params["cid"] = cid
- params["mask_platform"] = plat
- params["priority"] = priority
- params["mid"] = mid
- params["aid"] = aid
- params["duration"] = duration
- params["region_2"] = typeID
- data, err := json.Marshal(params)
- if err != nil {
- log.Error("json.Marshal(%v) error(%v)", params, err)
- return
- }
- reader := bytes.NewReader(data)
- req, err := http.NewRequest("POST", d.maskURI(), reader)
- if err != nil {
- log.Error("http.NewRequest error(%v)", err)
- return
- }
- req.Header.Set("Content-Type", "application/json")
- for i := 0; i < 3; i++ {
- if err = d.httpCli.Do(c, req, &res); err != nil {
- log.Error("d.httpCli.DO(%v) error(%v)", req, err)
- continue
- }
- if res.Code != 200 {
- err = fmt.Errorf("uri:%s,code:%d", d.maskURI(), res.Code)
- log.Error("http code error(%v)", err)
- continue
- }
- log.Info("send genarate mask request succeed(cid:%d)", cid)
- break
- }
- return
- }
|