Added start read date

This commit is contained in:
2025-11-20 22:55:26 +01:00
parent 4cbddfb15f
commit 0bfd0dc231
16 changed files with 263 additions and 33 deletions

View File

@@ -4,6 +4,7 @@ import (
"errors"
"net/http"
"strconv"
"time"
"git.artlef.fr/PersonalLibraryManager/internal/appcontext"
"git.artlef.fr/PersonalLibraryManager/internal/model"
@@ -63,6 +64,42 @@ func PutWantReadUserBookHandler(ac appcontext.AppContext) {
ac.C.String(http.StatusOK, "Success")
}
func PutStartReadUserBookHandler(ac appcontext.AppContext) {
data, err := retrieveDataFromContext(ac)
if err != nil {
return
}
bookId := data.BookId
user := data.User
var startDateToParse userbookPutStartRead
err = ac.C.ShouldBindJSON(&startDateToParse)
if err != nil {
myvalidator.ReturnErrorsAsJsonResponse(&ac, err)
return
}
userbook, err := fetchOrCreateUserBook(ac, bookId, &user)
if err != nil {
myvalidator.ReturnErrorsAsJsonResponse(&ac, err)
return
}
//string equal to "null" to unset value
if startDateToParse.StartDate == "null" {
userbook.StartReadDate = nil
} else {
startDate, err := time.Parse(time.DateOnly, startDateToParse.StartDate)
if err != nil {
myvalidator.ReturnErrorsAsJsonResponse(&ac, err)
return
}
userbook.StartReadDate = &startDate
}
ac.Db.Save(&userbook)
ac.C.String(http.StatusOK, "Success")
}
func PutRateUserBookHandler(ac appcontext.AppContext) {
data, err := retrieveDataFromContext(ac)
if err != nil {
@@ -104,6 +141,10 @@ type userbookPutRating struct {
Rating int `json:"rating" binding:"min=0,max=10"`
}
type userbookPutStartRead struct {
StartDate string `json:"startDate" binding:"required"`
}
type apiCallData struct {
BookId uint
User model.User