package routes import ( "net/http" "git.artlef.fr/PersonalLibraryManager/internal/appcontext" "git.artlef.fr/PersonalLibraryManager/internal/dto" "git.artlef.fr/PersonalLibraryManager/internal/mapper" "git.artlef.fr/PersonalLibraryManager/internal/model" "git.artlef.fr/PersonalLibraryManager/internal/myvalidator" ) func PostUserBookHandler(ac appcontext.AppContext) { var userbook dto.UserBookPostCreate err := ac.C.ShouldBindJSON(&userbook) if err != nil { myvalidator.ReturnErrorsAsJsonResponse(&ac, err) return } err = myvalidator.ValidateId(ac.Db, userbook.BookID, &model.Book{}) if err != nil { myvalidator.ReturnErrorsAsJsonResponse(&ac, err) return } user, fetchUserErr := ac.GetAuthenticatedUser() if fetchUserErr != nil { myvalidator.ReturnErrorsAsJsonResponse(&ac, err) return } userbookDb := mapper.UserBookWsToDb(userbook, &user) err = ac.Db.Save(&userbookDb).Error if err != nil { myvalidator.ReturnErrorsAsJsonResponse(&ac, err) return } ac.C.String(http.StatusOK, "Success") }