diff --git a/works.go b/works.go index 1ce2e81..e2d857d 100644 --- a/works.go +++ b/works.go @@ -472,6 +472,19 @@ func (u *User) GetMyWorkGrade(w *Work) (g WorkGrade, err error) { } func (w *Work) AddGrade(grade WorkGrade) error { + u := User{Id: grade.IdUser} + + // Search a previous record + g, err := u.GetMyWorkGrade(w) + if err != nil && err != sql.ErrNoRows { + return err + } else if err == nil { + _, err = g.Delete() + if err != nil { + return err + } + } + return w.AddGrades([]WorkGrade{grade}) }