tableUserPublicNotes.go (727B)
1 package database 2 3 import ( 4 "errors" 5 "github.com/asaskevich/govalidator" 6 "time" 7 ) 8 9 type UserPublicNote struct { 10 ID int64 11 UserID UserID 12 Notes string 13 CreatedAt time.Time 14 UpdatedAt time.Time 15 } 16 17 func (d *DkfDB) GetUserPublicNotes(userID UserID) (out UserPublicNote, err error) { 18 err = d.db.First(&out, "user_id = ?", userID).Error 19 return 20 } 21 22 func (d *DkfDB) SetUserPublicNotes(userID UserID, notes string) error { 23 if !govalidator.RuneLength(notes, "0", "10000") { 24 return errors.New("notes must have 10000 characters maximum") 25 } 26 n := UserPublicNote{UserID: userID} 27 if err := d.db.FirstOrCreate(&n, "user_id = ?", userID).Error; err != nil { 28 return err 29 } 30 n.Notes = notes 31 return d.db.Save(&n).Error 32 }