Set HTTP request headers properly

This commit is contained in:
shylie 2026-03-14 21:29:40 -04:00
parent 1ffd466dfc
commit b4f45d759c

View File

@ -6,7 +6,6 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"io" "io"
"io/ioutil"
"log" "log"
"net/http" "net/http"
"os" "os"
@ -144,19 +143,31 @@ type BulkIndex struct {
} `json:"data"` } `json:"data"`
} }
func makeRequest(url string) (*http.Response, error) {
req, err := http.NewRequest("GET", url, nil)
if err != nil {
log.Fatalf("Error creating HTTP request: %v", err)
}
req.Header.Set("User-Agent", fmt.Sprintf("Serra_Collection_Tracker/%s", Version))
req.Header.Set("Accept", "*/*")
return http.DefaultClient.Do(req)
}
func fetchBulkDownloadURL() (string, error) { func fetchBulkDownloadURL() (string, error) {
url := "https://api.scryfall.com/bulk-data" url := "https://api.scryfall.com/bulk-data"
downloadURL := "" downloadURL := ""
// Make an HTTP GET request // Make an HTTP GET request
resp, err := http.Get(url) resp, err := makeRequest(url)
if err != nil { if err != nil {
log.Fatalf("Error fetching data: %v", err) log.Fatalf("Error fetching data: %v", err)
} }
defer resp.Body.Close() defer resp.Body.Close()
// Read the response body // Read the response body
body, err := ioutil.ReadAll(resp.Body) body, err := io.ReadAll(resp.Body)
if err != nil { if err != nil {
log.Fatalf("Error reading response body: %v", err) log.Fatalf("Error reading response body: %v", err)
} }
@ -194,7 +205,7 @@ func downloadBulkData(downloadURL string) (string, error) {
// defer tempFile.Close() // Ensure we close the file when we're done // defer tempFile.Close() // Ensure we close the file when we're done
// Download the file // Download the file
resp, err := http.Get(downloadURL) resp, err := makeRequest(downloadURL)
if err != nil { if err != nil {
log.Fatalf("Error downloading file: %v", err) log.Fatalf("Error downloading file: %v", err)
} }
@ -293,13 +304,14 @@ func (c Card) getValue(foil bool) float64 {
} }
func fetchCard(setName, collectorNumber string) (*Card, error) { func fetchCard(setName, collectorNumber string) (*Card, error) {
resp, err := http.Get(fmt.Sprintf("https://api.scryfall.com/cards/%s/%s/", setName, collectorNumber)) resp, err := makeRequest(fmt.Sprintf("https://api.scryfall.com/cards/%s/%s", setName, collectorNumber))
if err != nil { if err != nil {
log.Fatalln(err) log.Fatalln(err)
return &Card{}, err return &Card{}, err
} }
if resp.StatusCode != 200 { if resp.StatusCode != 200 {
log.Println(resp.StatusCode)
return &Card{}, fmt.Errorf("Card %s/%s not found", setName, collectorNumber) return &Card{}, fmt.Errorf("Card %s/%s not found", setName, collectorNumber)
} }
@ -325,7 +337,7 @@ func fetchCard(setName, collectorNumber string) (*Card, error) {
val.Prices.Date = primitive.NewDateTimeFromTime(time.Now()) val.Prices.Date = primitive.NewDateTimeFromTime(time.Now())
val.SerraPrices = append(val.SerraPrices, val.Prices) val.SerraPrices = append(val.SerraPrices, val.Prices)
imgResp, imgErr := http.Get(val.ImageUris.Png) imgResp, imgErr := makeRequest(val.ImageUris.Png)
if imgErr != nil { if imgErr != nil {
log.Fatalln(err) log.Fatalln(err)
return &Card{}, err return &Card{}, err
@ -343,7 +355,7 @@ func fetchCard(setName, collectorNumber string) (*Card, error) {
func fetchSets() (*SetList, error) { func fetchSets() (*SetList, error) {
// TODO: better URL Building... // TODO: better URL Building...
resp, err := http.Get("https://api.scryfall.com/sets") resp, err := makeRequest("https://api.scryfall.com/sets")
if err != nil { if err != nil {
log.Fatalln(err) log.Fatalln(err)
return &SetList{}, err return &SetList{}, err