You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.1 KiB
48 lines
1.1 KiB
package dao |
|
|
|
import ( |
|
"context" |
|
"net/http" |
|
|
|
"go-common/app/admin/ep/melloi/model" |
|
"go-common/library/ecode" |
|
"go-common/library/log" |
|
) |
|
|
|
const ( |
|
_dapperDependUri = "/x/internal/dapper/service-depend?service_name=" |
|
_dapperRspCode = 0 |
|
) |
|
|
|
// QueryServiceDepend query service depend |
|
func (d *Dao) QueryServiceDepend(c context.Context, serviceName string) (ret []string, err error) { |
|
var ( |
|
req *http.Request |
|
DependURL = d.c.Dapper.Host + _dapperDependUri + serviceName |
|
res struct { |
|
Code int `json:"code"` |
|
Data *model.DependResponse `json:"data"` |
|
Message string `json:"message"` |
|
} |
|
) |
|
|
|
if req, err = d.newRequest(http.MethodGet, DependURL, nil); err != nil { |
|
return |
|
} |
|
|
|
if err = d.httpClient.Do(c, req, &res); err != nil { |
|
log.Error("d.Depend url(%s) res($s) error(%v)", DependURL, res, err) |
|
return |
|
} |
|
if res.Code != _dapperRspCode { |
|
err = ecode.MelloiTreeRequestErr |
|
log.Error("d.Tree.Response url(%s) resCode(%s) error(%v)", DependURL, res.Code, err) |
|
return |
|
} |
|
|
|
for _, item := range res.Data.Items { |
|
ret = append(ret, item.ServiceName) |
|
} |
|
|
|
return |
|
}
|
|
|