1package server
2
3import (
4 "context"
5
6 "github.com/haileyok/cocoon/models"
7)
8
9func (s *Server) getActorByHandle(ctx context.Context, handle string) (*models.Actor, error) {
10 var actor models.Actor
11 if err := s.db.First(ctx, &actor, models.Actor{Handle: handle}).Error; err != nil {
12 return nil, err
13 }
14 return &actor, nil
15}
16
17func (s *Server) getRepoByEmail(ctx context.Context, email string) (*models.Repo, error) {
18 var repo models.Repo
19 if err := s.db.First(ctx, &repo, models.Repo{Email: email}).Error; err != nil {
20 return nil, err
21 }
22 return &repo, nil
23}
24
25func (s *Server) getRepoActorByEmail(ctx context.Context, email string) (*models.RepoActor, error) {
26 var repo models.RepoActor
27 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 return nil, err
29 }
30 return &repo, nil
31}
32
33func (s *Server) getRepoActorByDid(ctx context.Context, did string) (*models.RepoActor, error) {
34 var repo models.RepoActor
35 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 return nil, err
37 }
38 return &repo, nil
39}