1package notify
2
3import (
4 "context"
5
6 "github.com/bluesky-social/indigo/atproto/syntax"
7 "tangled.org/core/appview/models"
8)
9
10type Notifier interface {
11 NewRepo(ctx context.Context, repo *models.Repo)
12
13 NewStar(ctx context.Context, star *models.Star)
14 DeleteStar(ctx context.Context, star *models.Star)
15
16 NewIssue(ctx context.Context, issue *models.Issue, mentions []syntax.DID)
17 NewIssueComment(ctx context.Context, comment *models.IssueComment, mentions []syntax.DID)
18 NewIssueState(ctx context.Context, actor syntax.DID, issue *models.Issue)
19 DeleteIssue(ctx context.Context, issue *models.Issue)
20
21 NewFollow(ctx context.Context, follow *models.Follow)
22 DeleteFollow(ctx context.Context, follow *models.Follow)
23
24 NewPull(ctx context.Context, pull *models.Pull)
25 NewPullComment(ctx context.Context, comment *models.PullComment, mentions []syntax.DID)
26 NewPullState(ctx context.Context, actor syntax.DID, pull *models.Pull)
27
28 UpdateProfile(ctx context.Context, profile *models.Profile)
29
30 NewString(ctx context.Context, s *models.String)
31 EditString(ctx context.Context, s *models.String)
32 DeleteString(ctx context.Context, did, rkey string)
33}
34
35// BaseNotifier is a listener that does nothing
36type BaseNotifier struct{}
37
38var _ Notifier = &BaseNotifier{}
39
40func (m *BaseNotifier) NewRepo(ctx context.Context, repo *models.Repo) {}
41
42func (m *BaseNotifier) NewStar(ctx context.Context, star *models.Star) {}
43func (m *BaseNotifier) DeleteStar(ctx context.Context, star *models.Star) {}
44
45func (m *BaseNotifier) NewIssue(ctx context.Context, issue *models.Issue, mentions []syntax.DID) {}
46func (m *BaseNotifier) NewIssueComment(ctx context.Context, comment *models.IssueComment, mentions []syntax.DID) {
47}
48func (m *BaseNotifier) NewIssueState(ctx context.Context, actor syntax.DID, issue *models.Issue) {}
49func (m *BaseNotifier) DeleteIssue(ctx context.Context, issue *models.Issue) {}
50
51func (m *BaseNotifier) NewFollow(ctx context.Context, follow *models.Follow) {}
52func (m *BaseNotifier) DeleteFollow(ctx context.Context, follow *models.Follow) {}
53
54func (m *BaseNotifier) NewPull(ctx context.Context, pull *models.Pull) {}
55func (m *BaseNotifier) NewPullComment(ctx context.Context, models *models.PullComment, mentions []syntax.DID) {
56}
57func (m *BaseNotifier) NewPullState(ctx context.Context, actor syntax.DID, pull *models.Pull) {}
58
59func (m *BaseNotifier) UpdateProfile(ctx context.Context, profile *models.Profile) {}
60
61func (m *BaseNotifier) NewString(ctx context.Context, s *models.String) {}
62func (m *BaseNotifier) EditString(ctx context.Context, s *models.String) {}
63func (m *BaseNotifier) DeleteString(ctx context.Context, did, rkey string) {}