package v3 import ( "encoding/json" "log/slog" "net/http" ) func parseFaculties(url string, client *http.Client) (faculties, error) { // the url is paginated, so we need to fetch all pages // example url: https://luna.htwk-leipzig.de/api/fakultaeten?page=1&itemsPerPage=100 // the itemsPerPage is set to 100, so we need to fetch all pages until we get an empty response var fetchedFaculties []faculty var itemsPerPage = 999 responses, err := paginatedFetch(url, itemsPerPage, client) if err != nil { slog.Error("Error while fetching faculties", err) return faculties{}, err } for _, response := range responses { var facs faculties err = json.Unmarshal([]byte(response), &facs) if err != nil { slog.Error("Error while unmarshalling faculties", err) return faculties{}, err } fetchedFaculties = append(fetchedFaculties, facs.Faculties...) } return faculties{ Faculties: fetchedFaculties, }, nil }