From 842aa08e5147417e7f1c71d002a8a18cedd6bcbc Mon Sep 17 00:00:00 2001 From: Arthur Lefebvre Date: Mon, 24 Nov 2025 14:44:29 +0100 Subject: [PATCH] Add isbn --- demodata.sql | 2 +- front/src/BookForm.vue | 2 +- internal/apitest/get_book_test.go | 2 ++ internal/model/book.go | 1 + internal/query/query.go | 3 ++- 5 files changed, 7 insertions(+), 3 deletions(-) diff --git a/demodata.sql b/demodata.sql index 738677b..c3212d2 100644 --- a/demodata.sql +++ b/demodata.sql @@ -78,7 +78,7 @@ INSERT INTO books(created_at, title, author, added_by_id, cover_id) VALUES ('NOW INSERT INTO user_books(created_at, user_id, book_id, read, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM books WHERE title = 'Vers le Phare'),true,6); INSERT INTO books(created_at, title, author, added_by_id, cover_id) VALUES ('NOW', 'L''insoutenable légèreté de l''être', 'Milan Kundera', (SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM static_files WHERE name = 'insoutenablelégèretédeletre.jpg')); INSERT INTO user_books(created_at, user_id, book_id, read, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo2'),(SELECT id FROM books WHERE title = 'L''insoutenable légèreté de l''être'), true,8); -INSERT INTO books(created_at, title, author, summary, added_by_id, cover_id) VALUES ('NOW', 'Le complot contre l''Amérique','Philip Roth', 'Lorsque le célèbre aviateur Charles Lindbergh battit le président Roosevelt aux élections présidentielles de 1940, la peur s''empara des Juifs américains. Non seulement Lindbergh avait, dans son discours radiophonique à la nation, reproché aux Juifs de pousser l''Amérique à entreprendre une guerre inutile avec l''Allemagne nazie, mais, en devenant trente-troisième président des États-Unis, il s''empressa de signer un pacte de non-agression avec Hitler. Alors la terreur pénétra dans les foyers juifs, notamment dans celui de la famille Roth. Ce contexte sert de décor historique au Complot contre l''Amérique, un roman où Philip Roth, qui avait sept ans à l''époque, raconte ce que vécut et ressentit sa famille - et des millions de familles semblables dans tout le pays - lors des lourdes années où s''exerça la présidence de Lindbergh, quand les citoyens américains qui étaient aussi des Juifs avaient de bonnes raisons de craindre le pire. Ce faisant, il nous offre un nouveau chef-d''oeuvre.', (SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM static_files WHERE name = 'lecomplotcontrelamerique.jpg')); +INSERT INTO books(created_at, title, isbn, author, summary, added_by_id, cover_id) VALUES ('NOW', 'Le complot contre l''Amérique', '9782070337903', 'Philip Roth', 'Lorsque le célèbre aviateur Charles Lindbergh battit le président Roosevelt aux élections présidentielles de 1940, la peur s''empara des Juifs américains. Non seulement Lindbergh avait, dans son discours radiophonique à la nation, reproché aux Juifs de pousser l''Amérique à entreprendre une guerre inutile avec l''Allemagne nazie, mais, en devenant trente-troisième président des États-Unis, il s''empressa de signer un pacte de non-agression avec Hitler. Alors la terreur pénétra dans les foyers juifs, notamment dans celui de la famille Roth. Ce contexte sert de décor historique au Complot contre l''Amérique, un roman où Philip Roth, qui avait sept ans à l''époque, raconte ce que vécut et ressentit sa famille - et des millions de familles semblables dans tout le pays - lors des lourdes années où s''exerça la présidence de Lindbergh, quand les citoyens américains qui étaient aussi des Juifs avaient de bonnes raisons de craindre le pire. Ce faisant, il nous offre un nouveau chef-d''oeuvre.', (SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM static_files WHERE name = 'lecomplotcontrelamerique.jpg')); INSERT INTO user_books(created_at, user_id, book_id, read, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM books WHERE title = 'Le complot contre l''Amérique'),true,6); INSERT INTO books(created_at, title, author, added_by_id, cover_id) VALUES ('NOW', 'Nord','Louis-Ferdinand Céline', (SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM static_files WHERE name = 'Nord.jpg')); INSERT INTO user_books(created_at, user_id, book_id, read, rating) VALUES ('NOW',(SELECT id FROM users WHERE name = 'demo'),(SELECT id FROM books WHERE title = 'Nord'),true, 10); diff --git a/front/src/BookForm.vue b/front/src/BookForm.vue index 5ab9714..24b78a7 100644 --- a/front/src/BookForm.vue +++ b/front/src/BookForm.vue @@ -106,6 +106,7 @@

{{data.title}}

{{data.author}}

{{data.summary}}

+
ISBN: {{data.isbn}}
@@ -161,5 +162,4 @@ img { border-bottom: none; } - diff --git a/internal/apitest/get_book_test.go b/internal/apitest/get_book_test.go index bd3c7fd..40ed96f 100644 --- a/internal/apitest/get_book_test.go +++ b/internal/apitest/get_book_test.go @@ -14,6 +14,7 @@ import ( type fetchedBook struct { Title string `json:"title" binding:"required,max=300"` Author string `json:"author" binding:"max=100"` + ISBN string `json:"isbn"` Summary string `json:"summary"` Rating int `json:"rating"` Read bool `json:"read"` @@ -49,6 +50,7 @@ func TestGetBook_Description(t *testing.T) { fetchedBook{ Title: "Le complot contre l'Amérique", Author: "Philip Roth", + ISBN: "9782070337903", Summary: "Lorsque le célèbre aviateur Charles Lindbergh battit le président Roosevelt aux élections présidentielles de 1940, la peur s'empara des Juifs américains. Non seulement Lindbergh avait, dans son discours radiophonique à la nation, reproché aux Juifs de pousser l'Amérique à entreprendre une guerre inutile avec l'Allemagne nazie, mais, en devenant trente-troisième président des États-Unis, il s'empressa de signer un pacte de non-agression avec Hitler. Alors la terreur pénétra dans les foyers juifs, notamment dans celui de la famille Roth. Ce contexte sert de décor historique au Complot contre l'Amérique, un roman où Philip Roth, qui avait sept ans à l'époque, raconte ce que vécut et ressentit sa famille - et des millions de familles semblables dans tout le pays - lors des lourdes années où s'exerça la présidence de Lindbergh, quand les citoyens américains qui étaient aussi des Juifs avaient de bonnes raisons de craindre le pire. Ce faisant, il nous offre un nouveau chef-d'oeuvre.", Rating: 6, Read: true, diff --git a/internal/model/book.go b/internal/model/book.go index 9fb5d43..b217499 100644 --- a/internal/model/book.go +++ b/internal/model/book.go @@ -5,6 +5,7 @@ import "gorm.io/gorm" type Book struct { gorm.Model Title string `json:"title" gorm:"not null"` + ISBN string `json:"isbn"` Author string `json:"author"` Summary string `json:"summary"` AddedBy User diff --git a/internal/query/query.go b/internal/query/query.go index 3bc36d9..aafc0ee 100644 --- a/internal/query/query.go +++ b/internal/query/query.go @@ -11,6 +11,7 @@ import ( type BookGet struct { Title string `json:"title" binding:"required,max=300"` Author string `json:"author" binding:"max=100"` + ISBN string `json:"isbn"` Summary string `json:"summary"` Rating int `json:"rating"` Read bool `json:"read"` @@ -23,7 +24,7 @@ type BookGet struct { func FetchBookGet(db *gorm.DB, userId uint, bookId uint64) (BookGet, error) { var book BookGet query := db.Model(&model.Book{}) - selectQueryString := "books.title, books.author, books.summary, " + + selectQueryString := "books.title, books.author, books.isbn, books.summary, " + "user_books.rating, user_books.read, user_books.want_read, " + "DATE(user_books.start_read_date) as start_read_date, " + "DATE(user_books.end_read_date) AS end_read_date, " +