package inventaire import ( "fmt" ) type InventaireEditionDetailedSingleResult struct { Id string Title string Description string Author *InventaireAuthorResult ISBN string Publisher string ReleaseDate string Image string Lang string } func CallInventaireEdition(inventaireId string, lang string) (InventaireEditionDetailedSingleResult, error) { var result InventaireEditionDetailedSingleResult editionQueryResults, err := callInventaireEditionEntities([]string{inventaireId}) if err != nil { return result, err } var editionQueryResult inventaireEditionQueryEntity if len(editionQueryResults.Entities) < 1 { return result, fmt.Errorf("No edition found on inventaire for id %s", inventaireId) } editionQueryResult = editionQueryResults.Entities[0] var publisher string if editionQueryResult.EditionId != "" { publisher, err = callInventairePublisherGetName(editionQueryResult.EditionId, lang) if err != nil { return result, err } } var author *InventaireAuthorResult var description string if editionQueryResult.WorkId != "" { workQueryResult, err := callInventaireBook(editionQueryResult.WorkId, lang) if err != nil { return result, err } author = workQueryResult.Author description = workQueryResult.Description } result = InventaireEditionDetailedSingleResult{ Id: editionQueryResult.Uri, Title: editionQueryResult.Title, Author: author, Description: description, ISBN: editionQueryResult.ISBN, Publisher: publisher, ReleaseDate: editionQueryResult.ReleaseDate, Image: editionQueryResult.Image, Lang: editionQueryResult.Lang, } return result, err }