ai_scheduler/internal/domain/tools/hyt/warehouse_search/client.go

64 lines
1.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package warehouse_search
import (
"ai_scheduler/internal/config"
"ai_scheduler/internal/pkg/l_request"
"context"
"encoding/json"
"fmt"
)
type Client struct {
cfg config.ToolConfig
}
func New(cfg config.ToolConfig) *Client {
return &Client{
cfg: cfg,
}
}
func (c *Client) Call(ctx context.Context, name string) (int, error) {
if name == "" {
// 如果没有仓库名返回0不报错由上层业务决定是否允许
return 0, nil
}
// GET 请求参数
params := map[string]string{
"name": name,
"page": "1",
"limit": "1",
}
req := l_request.Request{
Method: "Get",
Url: c.cfg.BaseURL,
Params: params,
Headers: map[string]string{
"User-Agent": "Apifox/1.0.0 (https://apifox.com)",
"Content-Type": "application/json",
},
}
res, err := req.Send()
if err != nil {
return 0, fmt.Errorf("请求失败err: %v", err)
}
var resData SearchResponse
if err := json.Unmarshal([]byte(res.Text), &resData); err != nil {
return 0, fmt.Errorf("解析响应失败err: %v", err)
}
if resData.Code != 200 {
return 0, fmt.Errorf("业务错误code: %d, msg: %s", resData.Code, resData.Msg)
}
if len(resData.Data.List) == 0 {
return 0, fmt.Errorf("仓库不存在: %s", name)
}
return resData.Data.List[0].ID, nil
}