MCPcopy Create free account
hub / github.com/actiontech/dtle / InvokeApiWithKvData

Function InvokeApiWithKvData

api/handler/common.go:38–80  ·  view source on GitHub ↗
(method, uri string, args map[string]string, respStruct interface{}, header ...http.Header)

Source from the content-addressed store, hash-verified

36}
37
38func InvokeApiWithKvData(method, uri string, args map[string]string, respStruct interface{}, header ...http.Header) (err error) {
39 var req *http.Request
40 switch method {
41 case http.MethodGet:
42 req, err = http.NewRequest(method, uri, nil)
43 if err != nil {
44 return fmt.Errorf("NewRequest failed: %v", err)
45 }
46 param := req.URL.Query()
47 for k, v := range args {
48 param.Add(k, v)
49 }
50 req.URL.RawQuery = param.Encode()
51 case http.MethodPost:
52 formData := url.Values{}
53 for k, v := range args {
54 formData.Add(k, v)
55 }
56 req, err = http.NewRequest(method, uri, strings.NewReader(formData.Encode()))
57 if err != nil {
58 return fmt.Errorf("NewRequest failed: %v", err)
59 }
60 req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
61 default:
62 return fmt.Errorf("unsupported method: %v", method)
63 }
64 if len(header) != 0 {
65 for k, s := range header[0] {
66 req.Header[k] = s
67 }
68 }
69 client := &http.Client{}
70 resp, err := client.Do(req)
71 if err != nil {
72 return fmt.Errorf("send request failed: %v", err)
73 }
74 defer resp.Body.Close()
75 if err := handleNomadResponse(resp.Body, resp.StatusCode, &respStruct); nil != err {
76 return fmt.Errorf("parse response failed: %v", err)
77 }
78
79 return nil
80}
81
82func InvokePostApiWithJson(url string, reqJson []byte, respStruct interface{}) error {
83 resp, err := http.Post(url, "application/json", bytes.NewReader(reqJson))

Callers 5

findAllocationsFunction · 0.92
getJobDetailFromNomadFunction · 0.92
FindNomadNodesFunction · 0.92
GetNodeInfoFunction · 0.92
FindNodeListFunction · 0.92

Calls 3

handleNomadResponseFunction · 0.85
SetMethod · 0.45
CloseMethod · 0.45

Tested by

no test coverage detected