finclip-app-manager/infrastructure/client/httpcall/provider.go

304 lines
10 KiB
Go
Raw Normal View History

2023-10-31 14:07:26 +08:00
package httpcall
//
//import (
// "context"
// "encoding/json"
// "errors"
// "finclip-app-manager/infrastructure/config"
// "net/http"
//
// "github.com/gin-gonic/gin"
//)
//
//const (
// Opcreate = "create"
//)
//
//const (
// ObjectTypeApp = "app"
//)
//
//type Notification struct {
// ObjectType string `json:"objectType"`
// ObjectID string `json:"objectId"`
// Operator string `json:"operator"`
// Operation string `json:"operation"`
// Timestamp int64 `json:"timestamp"`
// CustomData map[string]interface{} `json:"customData"`
//}
//
//type NotifyResponse struct {
// Errcode string `json:"errcode"`
// Error string `json:"error"`
// Data map[string]interface{} `json:"data"`
//}
//
//type DeveloperData struct {
// AccountId string `json:"accountId" bson:"accountId"` //mysql改造使用
// Type int `json:"type" bson:"type"` //类型1:个人账号2:企业账号(已经提交企业资料申请)
// OrganTraceId string `json:"organTraceId" bson:"organTraceId"` //企业绑定id
// Name string `json:"name" bson:"name"` //姓名
// Email string `json:"email" bson:"email"` //邮箱
// Account string `json:"account" bson:"account"` //账号
// Status int `json:"status" bson:"status"` //1--正常 2--已冻结 3--已延期
//}
//
//const (
// ORGAN_ACCOUNT_TYPE_PERSON = 1
// ORGAN_ACCOUNT_TYPE_BUSINESS = 2
//)
//
//const (
// ORGAN_STATUS_NORMAL = 1 //正常
// ORGAN_STATUS_FREEZE = 2 //已冻结
// ORGAN_STATUS_DELAY = 3 //已延期
//)
//
//type GetDevelopResponse struct {
// Data DeveloperData `json:"data"`
//}
//
//type Provider struct {
// ClientBase
//}
//
//func NewProvider() *Provider {
// return &Provider{
// ClientBase: ClientBase{
// Service: "Provider",
// },
// }
//}
//
//func (p *Provider) GetGroupID(ctx context.Context, c *gin.Context, url string) (string, error) {
// if url == "" {
// log.Errorf("GetGroupID url empty!")
// return "", errors.New(ErrEmptyURL)
// }
// p.Method = "GET"
// p.URL = url
// p.RequestHeader = make(map[string]string)
// //zipkin上报
// if c != nil {
// spanId := c.Request.Header.Get("Zipkin-Span-Id")
// value := c.GetString("zipkin_trace_span_id_" + spanId)
// p.RequestHeader["Zipkin-Span-Context"] = value
// }
// log.Infof("GetGroupID url:%s", url)
// err := p.Fetch(ctx)
// if err != nil {
// log.Errorf("GetGroupID fetch err:%s", err.Error())
// return "", err
// } else if p.StatusCode != http.StatusOK {
// log.Errorf("GetGroupID StatusCode err,body:%s", string(p.ResponseBody))
// return "", errors.New(ErrHttpCode)
// }
// resp := GetGroupIDResponse{}
// if err := json.Unmarshal(p.ResponseBody, &resp); err != nil {
// log.Errorf("Failed to unmarshal response to GetGroupIDResponse: %v\n", err)
// return "", err
// }
// return resp.Data.GroupID, nil
//}
//
//func (p *Provider) GetGroupInfoByUserId(ctx context.Context, url string) (*GroupIDData, error) {
// if url == "" {
// log.Errorf(ErrEmptyURL)
// return nil, errors.New(ErrEmptyURL)
// }
// p.Method = "GET"
// p.URL = url
// p.RequestHeader = make(map[string]string)
// log.Infof("GetGroupInfoByUserId url:%s", url)
// err := p.Fetch(ctx)
// if err != nil {
// log.Errorf("GetGroupInfoByUserId fetch err:%s", err.Error())
// return nil, err
// } else if p.StatusCode != http.StatusOK {
// log.Errorf("GetGroupInfoByUserId StatusCode err,body:%s", string(p.ResponseBody))
// return nil, errors.New(ErrHttpCode)
// }
// resp := GetGroupIDResponse{}
// if err := json.Unmarshal(p.ResponseBody, &resp); err != nil {
// log.Errorf("Failed to unmarshal response to GetGroupIDResponse, error: %v\n", err)
// return nil, err
// }
// return &resp.Data, nil
//}
//
//func (p *Provider) Notify(ctx context.Context, c *gin.Context, n *Notification) (int, *NotifyResponse, error) {
// resp := &NotifyResponse{}
// url := config.Cfg.NotificationProviderURL
// if url == "" {
// log.Errorf("Notify url empty!")
// return http.StatusInternalServerError, nil, errors.New(ErrEmptyURL)
// }
// log.Infof("Notify url:%s", url)
// data, err := json.Marshal(n)
// if err != nil {
// log.Errorf("Failed to marshal notification: %v\n", err)
// return http.StatusInternalServerError, resp, errors.New(ErrSystemCall)
// }
// p.Method = "POST"
// p.RequestBody = data
// p.URL = url
// p.RequestHeader = map[string]string{
// "Accept": "application/json, text/plain, */*",
// "Content-Type": "application/json",
// "url-call": "internal",
// }
// //zipkin上报
// {
// spanId := c.Request.Header.Get("Zipkin-Span-Id")
// value := c.GetString("zipkin_trace_span_id_" + spanId)
// p.RequestHeader["Zipkin-Span-Context"] = value
// }
// err = p.Fetch(ctx)
// if err != nil {
// log.Errorf("Notify fetch err:%s", err.Error())
// return http.StatusInternalServerError, resp, err
// } else if p.StatusCode != http.StatusOK {
// log.Errorf("Notify StatusCode err,body:%s", string(p.ResponseBody))
// if err := json.Unmarshal(p.ResponseBody, &resp); err != nil {
// log.Errorf("Failed to unmarshal to NotifyResponse: %v", err)
// return http.StatusInternalServerError, resp, err
// }
// return p.StatusCode, resp, errors.New(ErrHttpCode)
// }
// return http.StatusOK, resp, nil
//}
//
//func (p *Provider) AddLimitInfo(ctx context.Context, c *gin.Context, n *AddLimitInfoReq) (int, *AddLimitInfoRsp, error) {
// resp := &AddLimitInfoRsp{}
// url := config.Cfg.AddLimitInfoURL
// if url == "" {
// log.Errorf("Notify url empty!")
// return http.StatusInternalServerError, nil, errors.New(ErrEmptyURL)
// }
// data, err := json.Marshal(n)
// if err != nil {
// log.Errorf("Failed to marshal notification: %v\n", err)
// return http.StatusInternalServerError, resp, errors.New(ErrSystemCall)
// }
// p.Method = "POST"
// p.RequestBody = data
// p.URL = url
// p.RequestHeader = map[string]string{
// "Accept": "application/json, text/plain, */*",
// "Content-Type": "application/json",
// "url-call": "internal",
// }
// //zipkin上报
// {
// spanId := c.Request.Header.Get("Zipkin-Span-Id")
// value := c.GetString("zipkin_trace_span_id_" + spanId)
// p.RequestHeader["Zipkin-Span-Context"] = value
// }
// log.Infof("AddLimitInfo info:%+v,url:%s", n, url)
// err = p.Fetch(ctx)
// if err != nil {
// log.Errorf("AddLimitInfo fetch err:%s", err.Error())
// return http.StatusInternalServerError, resp, err
// } else if p.StatusCode != http.StatusOK {
// log.Debugln("Notify StatusCode err,body:%s", string(p.ResponseBody))
// if err := json.Unmarshal(p.ResponseBody, &resp); err != nil {
// log.Errorf("Failed to unmarshal to NotifyResponse: %v\n", err)
// return http.StatusInternalServerError, resp, err
// }
// return p.StatusCode, resp, errors.New(ErrHttpCode)
// }
// return http.StatusOK, resp, nil
//}
//
//func (p *Provider) GetAccountInfo(ctx context.Context, c *gin.Context, url string, accountId string) (*AccountInfoData, error) {
// if url == "" {
// log.Errorf("GetAccountInfo url empty!")
// return nil, errors.New(ErrEmptyURL)
// }
// p.Method = "GET"
// p.URL = url
// p.RequestHeader = make(map[string]string)
// p.RequestHeader["X-Consumer-Custom-ID"] = accountId
// p.RequestHeader["Content-Type"] = "application/json"
// p.RequestHeader["url-call"] = "internal"
// //zipkin上报
// log.Infof("GetAccountInfo url:%s", url)
// err := p.Fetch(ctx)
// if err != nil {
// log.Errorf("GetAccountInfo fetch err:%s", err.Error())
// //p.LogError(err)
// return nil, err
// } else if p.StatusCode != http.StatusOK {
// log.Errorf("Notify StatusCode err,body:%s", string(p.ResponseBody))
// //p.LogError(err)
// return nil, errors.New(ErrHttpCode)
// }
// resp := GetAccountInfoResponse{}
// if err := json.Unmarshal(p.ResponseBody, &resp); err != nil {
// log.Errorf("Failed to unmarshal response to GetAccountInfoResponse, error: %v\n", err)
// return nil, err
// }
// return &resp.Data, nil
//}
//
//func (p *Provider) GetAdminAccountInfo(ctx context.Context, c *gin.Context, url string) (*AdminAccountInfo, error) {
// if url == "" {
// log.Errorf("GetAdminAccountInfo url empty!")
// return nil, errors.New(ErrEmptyURL)
// }
// p.Method = "GET"
// p.URL = url
// p.RequestHeader = make(map[string]string)
// //zipkin上报
// {
// spanId := c.Request.Header.Get("Zipkin-Span-Id")
// value := c.GetString("zipkin_trace_span_id_" + spanId)
// p.RequestHeader["Zipkin-Span-Context"] = value
// }
// err := p.Fetch(ctx)
// if err != nil {
// log.Errorf("GetAdminAccountInfo fetch err:%s", err.Error())
// return nil, err
// } else if p.StatusCode != http.StatusOK {
// log.Errorf("GetAdminAccountInfo StatusCode err,body:%s", string(p.ResponseBody))
// return nil, errors.New(ErrHttpCode)
// }
// resp := GetAdminAccountInfoResponse{}
// if err := json.Unmarshal(p.ResponseBody, &resp); err != nil {
// log.Errorf("Failed to unmarshal response to GetAdminAccountInfo Response, error: %v\n", err)
// return nil, err
// }
// return &resp.Data.Info, nil
//}
//
//func (p *Provider) SearchAccountInfo(ctx context.Context, c *gin.Context, url string, account string) (*AccountInfoData, error) {
// if url == "" {
// log.Errorf("GetAccountInfo url empty!")
// return nil, errors.New(ErrEmptyURL)
// }
// p.Method = "GET"
// p.URL = url + "?account=" + account
// p.RequestHeader = make(map[string]string)
// p.RequestHeader["Content-Type"] = "application/json"
// p.RequestHeader["url-call"] = "internal"
// //zipkin上报
// log.Infof("GetAccountInfo url:%s", url)
// err := p.Fetch(ctx)
// if err != nil {
// log.Errorf("GetAccountInfo fetch err:%s", err.Error())
// //p.LogError(err)
// return nil, err
// } else if p.StatusCode != http.StatusOK {
// log.Errorf("Notify StatusCode err,body:%s", string(p.ResponseBody))
// //p.LogError(err)
// return nil, errors.New(ErrHttpCode)
// }
// resp := GetAccountInfoResponse{}
// if err := json.Unmarshal(p.ResponseBody, &resp); err != nil {
// log.Errorf("Failed to unmarshal response to GetAccountInfoResponse, error: %v\n", err)
// return nil, err
// }
// return &resp.Data, nil
//}