diff --git a/cmd/fetch/fetch.go b/cmd/fetch/fetch.go index 863cf77..54af0df 100644 --- a/cmd/fetch/fetch.go +++ b/cmd/fetch/fetch.go @@ -3,12 +3,13 @@ package main import ( "encoding/json" "fmt" - "io" "log" "net/http" "os" ) +const UPSTREAM_URL = "https://keyserver.freifunk-franken.de/v2/" + func run() error { var root []root @@ -17,44 +18,26 @@ func run() error { return err } - req, err := http.NewRequest(http.MethodGet, "https://keyserver.freifunk-franken.de/v2/hoods.php", nil) + res, err := http.Get(UPSTREAM_URL + "hoods.php") if err != nil { return err } + defer res.Body.Close() - res, err := http.DefaultClient.Do(req) - if err != nil { - return err - } - - body, err := io.ReadAll(res.Body) - if err != nil { - return err - } - - err = json.Unmarshal(body, &root) + err = json.NewDecoder(res.Body).Decode(&root) if err != nil { return err } for _, h := range root { + res, err := http.Get(fmt.Sprintf("%s/?hoodid=%d", UPSTREAM_URL, h.Id)) + if err != nil { + return err + } + defer res.Body.Close() + var hood Hood - req, err := http.NewRequest(http.MethodGet, fmt.Sprintf("https://keyserver.freifunk-franken.de/v2/?hoodid=%d", h.Id), nil) - if err != nil { - return err - } - - res, err := http.DefaultClient.Do(req) - if err != nil { - return err - } - - body, err := io.ReadAll(res.Body) - if err != nil { - return err - } - - err = json.Unmarshal(body, &hood) + err = json.NewDecoder(res.Body).Decode(&hood) if err != nil { return err }