FILE / ScuroNeko/mtg

telegram/api/api.go

Исходный файл и его история в репозитории.
FILE 64859069ed82d1ccf3f941b43698e5532cfdd9b8
Files
mtg/telegram/api/api.go
T
2022-08-09 17:41:59 +03:00

44 lines
807 B
Go

package api
import (
"context"
"fmt"
"io"
"net/http"
"time"
)
const (
apiUserAgent = "github.com/9seconds/mtg"
apiHTTPTimeout = 30 * time.Second
)
var httpClient = http.Client{
Timeout: apiHTTPTimeout,
}
func request(url string) (io.ReadCloser, error) {
ctx, cancel := context.WithTimeout(context.Background(), apiHTTPTimeout)
defer cancel()
req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil)
if err != nil {
panic(err)
}
req.Header.Set("Accept", "text/plan")
req.Header.Set("User-Agent", apiUserAgent)
resp, err := httpClient.Do(req)
if err != nil {
if resp != nil {
io.Copy(io.Discard, resp.Body) //nolint: errcheck
resp.Body.Close()
}
return nil, fmt.Errorf("cannot perform a request: %w", err)
}
return resp.Body, err //nolint: wrapcheck
}