diff --git a/internal/inventaire/inventaire_test.go b/internal/inventaire/inventaire_test.go index 450d240..feb9e3a 100644 --- a/internal/inventaire/inventaire_test.go +++ b/internal/inventaire/inventaire_test.go @@ -132,6 +132,27 @@ func TestCallInventaireEdition(t *testing.T) { result) } +func TestCalInventaireEditionNoAuthor(t *testing.T) { + + result, err := CallInventaireEdition(getBaseInventaireUrl(), "isbn:9782226487162", "fr") + if err != nil { + t.Error(err) + } + assert.Equal(t, + InventaireEditionDetailedSingleResult{ + Id: "isbn:9782226487162", + Title: "Les Yeux de Mona", + Author: nil, + Description: "", + ISBN: "978-2-226-48716-2", + Publisher: "éditions Albin Michel", + ReleaseDate: "2024-02-01", + Image: "https://inventaire.io/img/entities/3ca857913983d694be03dee712bb2af9e2c51747", + Lang: "fr", + }, + result) +} + func TestCallInventaireEditionFromISBN(t *testing.T) { result, err := CallInventaireFromISBN(getBaseInventaireUrl(), "9782070379248", "fr") if err != nil { diff --git a/internal/routes/bookpostimport.go b/internal/routes/bookpostimport.go index 84cb1e8..ba6ade6 100644 --- a/internal/routes/bookpostimport.go +++ b/internal/routes/bookpostimport.go @@ -40,18 +40,21 @@ func PostImportBookHandler(ac appcontext.AppContext) { } func saveInventaireBookToDb(ac appcontext.AppContext, inventaireEdition inventaire.InventaireEditionDetailedSingleResult, user *model.User) (*model.Book, error) { - author, err := fetchOrCreateInventaireAuthor(ac, inventaireEdition.Author) - if err != nil { - return nil, err - } book := model.Book{ Title: inventaireEdition.Title, SmallDescription: inventaireEdition.Description, InventaireID: inventaireEdition.Id, - Author: *author, AddedBy: *user, } + if inventaireEdition.Author != nil { + author, err := fetchOrCreateInventaireAuthor(ac, inventaireEdition.Author) + if err != nil { + return nil, err + } + book.Author = *author + } + if inventaireEdition.Image != "" { cover, err := fileutils.DownloadFile(ac, inventaireEdition.Image) if err != nil { @@ -59,7 +62,7 @@ func saveInventaireBookToDb(ac appcontext.AppContext, inventaireEdition inventai } book.Cover = cover } - err = ac.Db.Save(&book).Error + err := ac.Db.Save(&book).Error return &book, err }