package openlibrary import "git.artlef.fr/PersonalLibraryManager/internal/callapiutils" type OpenLibrarySearchResult struct { Books []OpenLibrarySearchBook `json:"docs"` NumFound int `json:"numFound"` } type OpenLibrarySearchBook struct { Title string `json:"title"` Authors []string `json:"author_name"` OpenLibraryId string `json:"cover_edition_key"` } func CallOpenLibrarySearch(searchterm string, limit int, offset int) (OpenLibrarySearchResult, error) { var queryResult OpenLibrarySearchResult u, err := computeOpenLibraryUrl("search.json") if err != nil { return queryResult, err } if limit != 0 { callapiutils.AddQueryParamInt(u, "limit", limit) } if offset != 0 { callapiutils.AddQueryParamInt(u, "offset", offset) } callapiutils.AddQueryParam(u, "q", searchterm) err = callapiutils.FetchAndParseResult(u, &queryResult) return queryResult, err }