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) getRepoActorByEmail(email 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.email= ?", nil, email).Scan(&repo).Error; err != nil {
26 return nil, err
27 }
28 return &repo, nil
29}
30
31func (s *Server) getRepoActorByDid(did string) (*models.RepoActor, error) {
32 var repo models.RepoActor
33 if err := s.db.Raw("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 {
34 return nil, err
35 }
36 return &repo, nil
37}