Vow, uncensorable PDS written in Go

fix: return error for empty Did in getters (#65)

authored by shi.gg and committed by

GitHub 484fb48c ea980a7e

+13
+13
server/common.go
··· 4 4 "context" 5 5 6 6 "github.com/haileyok/cocoon/models" 7 + "gorm.io/gorm" 7 8 ) 8 9 9 10 func (s *Server) getActorByHandle(ctx context.Context, handle string) (*models.Actor, error) { 10 11 var actor models.Actor 11 12 if err := s.db.First(ctx, &actor, models.Actor{Handle: handle}).Error; err != nil { 12 13 return nil, err 14 + } 15 + if actor.Did == "" { 16 + return nil, gorm.ErrRecordNotFound 13 17 } 14 18 return &actor, nil 15 19 } ··· 18 22 var repo models.Repo 19 23 if err := s.db.First(ctx, &repo, models.Repo{Email: email}).Error; err != nil { 20 24 return nil, err 25 + } 26 + if repo.Did == "" { 27 + return nil, gorm.ErrRecordNotFound 21 28 } 22 29 return &repo, nil 23 30 } ··· 27 34 if err := s.db.Raw(ctx, "SELECT r.*, a.* FROM repos r LEFT JOIN actors a ON r.did = a.did WHERE r.email= ?", nil, email).Scan(&repo).Error; err != nil { 28 35 return nil, err 29 36 } 37 + if repo.Repo.Did == "" { 38 + return nil, gorm.ErrRecordNotFound 39 + } 30 40 return &repo, nil 31 41 } 32 42 ··· 34 44 var repo models.RepoActor 35 45 if err := s.db.Raw(ctx, "SELECT r.*, a.* FROM repos r LEFT JOIN actors a ON r.did = a.did WHERE r.did = ?", nil, did).Scan(&repo).Error; err != nil { 36 46 return nil, err 47 + } 48 + if repo.Repo.Did == "" { 49 + return nil, gorm.ErrRecordNotFound 37 50 } 38 51 return &repo, nil 39 52 }