Add import edition from inventaire
This commit is contained in:
62
internal/inventaire/inventaireeditionfromid.go
Normal file
62
internal/inventaire/inventaireeditionfromid.go
Normal file
@@ -0,0 +1,62 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user