add "Added By" for books

This commit is contained in:
2025-10-08 15:34:31 +02:00
parent fc31cc5507
commit c9991118ee
4 changed files with 52 additions and 34 deletions

View File

@@ -30,7 +30,12 @@ func PostBookHandler(c *gin.Context, db *gorm.DB) {
manageBindingError(c, err)
return
}
bookDb := book.toBook()
user, fetchUserErr := getAuthenticatedUser(c, db)
if fetchUserErr != nil {
manageDefaultError(c, err)
return
}
bookDb := book.toBook(&user)
err = db.Model(&model.Book{}).Save(&bookDb).Error
if err != nil {
manageDefaultError(c, err)
@@ -90,6 +95,16 @@ func isUserAndPasswordOk(db *gorm.DB, username string, password string) bool {
return err == nil
}
func getAuthenticatedUser(c *gin.Context, db *gorm.DB) (model.User, error) {
var user model.User
username, userIsInContext := c.Get("user")
if !userIsInContext {
return user, errors.New("User not found in context")
}
res := db.Where("name = ?", username).First(&user)
return user, res.Error
}
func manageBindingError(c *gin.Context, err error) {
var ve validator.ValidationErrors
if errors.As(err, &ve) {