send_request.go (33 lines of code) (raw):

package vertexai import ( "encoding/json" "fmt" "io" "net/http" ) func (c *client) sendRequest(req *http.Request, val any) error { token, err := c.tokenizer.getToken(c.clientConfig.authToken) if err != nil { return fmt.Errorf("failed to get auth token: %v", err) } req.Header.Set("Content-Type", "application/json") req.Header.Set("Authorization", "Bearer "+token) res, err := c.httpClient.Do(req) if err != nil { return err } if res.StatusCode != http.StatusOK { b, err := io.ReadAll(res.Body) defer res.Body.Close() if err != nil { return fmt.Errorf("status code: %s, message: %w", res.Status, err) } return fmt.Errorf("status code: %s, message: %s", res.Status, string(b)) } if val != nil { if err = json.NewDecoder(res.Body).Decode(val); err != nil { return err } } return nil }