diff --git a/front/src/BookForm.vue b/front/src/BookForm.vue index dcf1488..c66b607 100644 --- a/front/src/BookForm.vue +++ b/front/src/BookForm.vue @@ -22,6 +22,7 @@ data.value.rating = rating * 2; if (data.value.rating > 0) { data.value.read = true; + data.value.wantread = false; } putRateBook(props.id, {rating: data.value.rating}); } diff --git a/internal/apitest/put_userbook_rate_test.go b/internal/apitest/put_userbook_rate_test.go index 4f9349c..be1cf33 100644 --- a/internal/apitest/put_userbook_rate_test.go +++ b/internal/apitest/put_userbook_rate_test.go @@ -33,6 +33,19 @@ func TestPutRatingUserBooksHandler_RateNewBookMakeItRead(t *testing.T) { assert.Equal(t, false, book.WantRead) } +func TestPutRatingUserBooksHandler_RateWantedBook(t *testing.T) { + payload := + `{ + "rating": 6 + }` + bookId := "2" + testPutRateUserBooks(t, payload, bookId, http.StatusOK) + book := testGetBook(t, bookId, http.StatusOK) + assert.Equal(t, 6, book.Rating) + assert.Equal(t, true, book.Read) + assert.Equal(t, false, book.WantRead) +} + func TestPutRatingUserBooksHandler_RatingTypeWrong(t *testing.T) { payload := `{ diff --git a/internal/routes/userbookputupdate.go b/internal/routes/userbookputupdate.go index 2e034e5..1f88da6 100644 --- a/internal/routes/userbookputupdate.go +++ b/internal/routes/userbookputupdate.go @@ -85,6 +85,8 @@ func PutRateUserBookHandler(ac appcontext.AppContext) { //if rated, set to "read" (a rating = 0 means unrated) if userbook.Rating > 0 { userbook.Read = true + //if set to read, remove want read + userbook.WantRead = false } ac.Db.Save(&userbook) ac.C.String(http.StatusOK, "Success")