An atproto PDS written in Go
1package server 2 3import ( 4 "github.com/haileyok/cocoon/models" 5) 6 7func (s *Server) getActorByHandle(handle string) (*models.Actor, error) { 8 var actor models.Actor 9 if err := s.db.First(&actor, models.Actor{Handle: handle}).Error; err != nil { 10 return nil, err 11 } 12 return &actor, nil 13} 14 15func (s *Server) getRepoByEmail(email string) (*models.Repo, error) { 16 var repo models.Repo 17 if err := s.db.First(&repo, models.Repo{Email: email}).Error; err != nil { 18 return nil, err 19 } 20 return &repo, nil 21} 22 23func (s *Server) getRepoActorByDid(did string) (*models.RepoActor, error) { 24 var repo models.RepoActor 25 if err := s.db.Raw("SELECT r.*, a.* FROM repos r LEFT JOIN actors a ON r.did = a.did WHERE r.did = ?", did).Scan(&repo).Error; err != nil { 26 return nil, err 27 } 28 return &repo, nil 29}