MCPcopy Create free account
hub / github.com/archlinux-de/pkgstats-cli / SendRequest

Method SendRequest

internal/api/submit/client.go:33–69  ·  view source on GitHub ↗
(request Request)

Source from the content-addressed store, hash-verified

31}
32
33func (client *Client) SendRequest(request Request) error {
34 payload, err := json.Marshal(request)
35 if err != nil {
36 return err
37 }
38
39 u, err := url.Parse(client.BaseURL)
40 if err != nil {
41 return err
42 }
43 u = u.JoinPath("/api/submit")
44
45 req, err := http.NewRequest(http.MethodPost, u.String(), bytes.NewReader(payload))
46 if err != nil {
47 return err
48 }
49 req.Header.Set("Content-Type", "application/json")
50 req.Header.Set("Accept", "application/json")
51 req.Header.Set("User-Agent", build.UserAgent)
52 // #nosec G704 -- baseURL is provided by the user via CLI flags
53 response, err := client.Client.Do(req)
54 if err != nil {
55 return err
56 }
57
58 defer response.Body.Close()
59
60 if response.StatusCode != http.StatusNoContent {
61 body, err := io.ReadAll(response.Body)
62 if err != nil {
63 return err
64 }
65 return fmt.Errorf("server error %d: %s", response.StatusCode, string(body))
66 }
67
68 return nil
69}

Callers 4

TestSendRequestFunction · 0.95
submitRequestFunction · 0.95

Calls

no outgoing calls

Tested by 3

TestSendRequestFunction · 0.76