summaryrefslogtreecommitdiff
path: root/data/datasource_http.go
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2024-01-22 09:06:33 -0500
committerGitHub <noreply@github.com>2024-01-22 09:06:33 -0500
commit0ac3aa24bf2e4ada9c26fd9ef5b7f0ae8c6b6cfb (patch)
tree9a95f27eec1e77ef8bfefcb2810f7e41681627a5 /data/datasource_http.go
parentf837061f953bda1e8b42095c6dba0496de11d993 (diff)
Use go-fsimpl to read from datasources (#1336)
* Use go-fsimpl to read from datasources Signed-off-by: Dave Henderson <dhenderson@gmail.com> * trying to fix windows bug Signed-off-by: Dave Henderson <dhenderson@gmail.com> * attempts to fix some of the path madness Signed-off-by: Dave Henderson <dhenderson@gmail.com> * remove 'HOME' from expected env vars Signed-off-by: Dave Henderson <dhenderson@gmail.com> * more tweaks Signed-off-by: Dave Henderson <dhenderson@gmail.com> * lint fix Signed-off-by: Dave Henderson <dhenderson@gmail.com> --------- Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'data/datasource_http.go')
-rw-r--r--data/datasource_http.go62
1 files changed, 0 insertions, 62 deletions
diff --git a/data/datasource_http.go b/data/datasource_http.go
deleted file mode 100644
index 23c7dc36..00000000
--- a/data/datasource_http.go
+++ /dev/null
@@ -1,62 +0,0 @@
-package data
-
-import (
- "context"
- "fmt"
- "io"
- "mime"
- "net/http"
- "net/url"
- "time"
-)
-
-func buildURL(base *url.URL, args ...string) (*url.URL, error) {
- if len(args) == 0 {
- return base, nil
- }
- p, err := url.Parse(args[0])
- if err != nil {
- return nil, fmt.Errorf("bad sub-path %s: %w", args[0], err)
- }
- return base.ResolveReference(p), nil
-}
-
-func readHTTP(ctx context.Context, source *Source, args ...string) ([]byte, error) {
- if source.hc == nil {
- source.hc = &http.Client{Timeout: time.Second * 5}
- }
- u, err := buildURL(source.URL, args...)
- if err != nil {
- return nil, err
- }
- req, err := http.NewRequestWithContext(ctx, http.MethodGet, u.String(), nil)
- if err != nil {
- return nil, err
- }
- req.Header = source.Header
- res, err := source.hc.Do(req)
- if err != nil {
- return nil, err
- }
- body, err := io.ReadAll(res.Body)
- if err != nil {
- return nil, err
- }
- err = res.Body.Close()
- if err != nil {
- return nil, err
- }
- if res.StatusCode != 200 {
- err := fmt.Errorf("unexpected HTTP status %d on GET from %s: %s", res.StatusCode, source.URL, string(body))
- return nil, err
- }
- ctypeHdr := res.Header.Get("Content-Type")
- if ctypeHdr != "" {
- mediatype, _, e := mime.ParseMediaType(ctypeHdr)
- if e != nil {
- return nil, e
- }
- source.mediaType = mediatype
- }
- return body, nil
-}