bilibili-backup/app/admin/main/apm/service/platform.go

45 lines
1.2 KiB
Go
Raw Normal View History

2019-04-22 10:59:20 +08:00
package service
import (
"context"
"encoding/json"
"net/url"
"go-common/app/admin/main/apm/conf"
"go-common/library/ecode"
"go-common/library/log"
)
// PlatformProxy proxy.
func (s *Service) PlatformProxy(c context.Context, method, loc string, params url.Values) (data interface{}, err error) {
uri := conf.Conf.Host.MANAGERCo + "/" + loc
data, err = s.pcurl(c, method, uri, loc, params)
return
}
func (s *Service) pcurl(c context.Context, method, uri, loc string, params url.Values) (data json.RawMessage, err error) {
var res struct {
Code int `json:"code"`
Data json.RawMessage `json:"data"`
Message string `json:"message"`
}
if method == "GET" {
if err = s.client.Get(c, uri, "", params, &res); err != nil {
log.Error("apmSvc.PlatformProxy get url:"+uri+" params:(%v) error(%v)", params.Encode(), err)
return
}
} else {
if err = s.client.Post(c, uri, "", params, &res); err != nil {
log.Error("apmSvc.PlatformProxy post url:"+uri+" params:(%v) error(%v)", params.Encode(), err)
return
}
}
if res.Code != 0 {
err = ecode.Int(res.Code)
log.Error("apmSvc.PlatformProxy url:"+uri+" params:(%v) ecode(%v)", params.Encode(), err)
return
}
data = res.Data
return
}