123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- package datadao
- import (
- "context"
- "encoding/json"
- "fmt"
- "net/url"
- "go-common/library/ecode"
- "go-common/library/log"
- "go-common/library/net/metadata"
- )
- // HTTPDataHandle .
- func (d *Dao) HTTPDataHandle(c context.Context, params url.Values, key string) (data interface{}, err error) {
- var (
- uri string
- res struct {
- Code int `json:"code"`
- Data json.RawMessage `json:"data"`
- Message string `json:"message"`
- }
- )
- if uri, err = d.getURI(key); err != nil {
- return
- }
- if err = d.bmClient.Get(c, uri, metadata.String(c, metadata.RemoteIP), params, &res); err != nil {
- return
- }
- if res.Code != 0 {
- log.Error("d.bmClient.Get(%s,%d)", uri+"?"+params.Encode(), res.Code)
- err = ecode.Error(ecode.Int(res.Code), res.Message)
- return
- }
- data = res.Data
- return
- }
- // getURI .
- func (d *Dao) getURI(key string) (uri string, err error) {
- var (
- ok bool
- url struct {
- host string
- uri string
- }
- _url = map[string]struct {
- host string
- uri string
- }{
- "archives": {
- uri: "/x/internal/creative/archives",
- host: d.Conf.Host.API,
- },
- "archiveHistoryList": {
- uri: "/x/internal/creative/archive/history/list",
- host: d.Conf.Host.API,
- },
- "archiveVideos": {
- uri: "/x/internal/creative/archive/videos",
- host: d.Conf.Host.API,
- },
- "dataArchive": {
- uri: "/x/internal/creative/data/archive",
- host: d.Conf.Host.API,
- },
- "dataVideoQuit": {
- uri: "/x/internal/creative/data/videoquit",
- host: d.Conf.Host.API,
- },
- "danmuDistri": {
- uri: "/x/internal/creative/danmu/distri",
- host: d.Conf.Host.API,
- },
- "dataBase": {
- uri: "/x/internal/creative/data/base",
- host: d.Conf.Host.API,
- },
- "dataTrend": {
- uri: "/x/internal/creative/data/trend",
- host: d.Conf.Host.API,
- },
- "dataAction": {
- uri: "/x/internal/creative/data/action",
- host: d.Conf.Host.API,
- },
- "dataFan": {
- uri: "/x/internal/creative/data/fan",
- host: d.Conf.Host.API,
- },
- "dataPandect": {
- uri: "/x/internal/creative/data/pandect",
- host: d.Conf.Host.API,
- },
- "dataSurvey": {
- uri: "/x/internal/creative/data/survey",
- host: d.Conf.Host.API,
- },
- "dataPlaySource": {
- uri: "/x/internal/creative/data/playsource",
- host: d.Conf.Host.API,
- },
- "dataPlayAnalysis": {
- uri: "/x/internal/creative/data/playanalysis",
- host: d.Conf.Host.API,
- },
- "dataArticleRank": {
- uri: "/x/internal/creative/data/article/rank",
- host: d.Conf.Host.API,
- },
- }
- )
- if url, ok = _url[key]; !ok {
- return uri, fmt.Errorf("url(%s) not exist", key)
- }
- uri = url.host + url.uri
- return uri, err
- }
|