···1111 "tangled.sh/tangled.sh/core/jetstream"
1212 "tangled.sh/tangled.sh/core/knotserver/config"
1313 "tangled.sh/tangled.sh/core/knotserver/db"
1414+ "tangled.sh/tangled.sh/core/knotserver/notifier"
1415 "tangled.sh/tangled.sh/core/rbac"
1516)
1617···2425 jc *jetstream.JetstreamClient
2526 e *rbac.Enforcer
2627 l *slog.Logger
2828+ n *notifier.Notifier
27292830 // init is a channel that is closed when the knot has been initailized
2931 // i.e. when the first user (knot owner) has been added.
···3133 knotInitialized bool
3234}
33353434-func Setup(ctx context.Context, c *config.Config, db *db.DB, e *rbac.Enforcer, jc *jetstream.JetstreamClient, l *slog.Logger) (http.Handler, error) {
3636+func Setup(ctx context.Context, c *config.Config, db *db.DB, e *rbac.Enforcer, jc *jetstream.JetstreamClient, l *slog.Logger, n *notifier.Notifier) (http.Handler, error) {
3537 r := chi.NewRouter()
36383739 h := Handle{
···4042 e: e,
4143 l: l,
4244 jc: jc,
4545+ n: n,
4346 init: make(chan struct{}),
4447 }
4548
+5-2
knotserver/internal.go
···1212 "github.com/go-chi/chi/v5/middleware"
1313 "tangled.sh/tangled.sh/core/knotserver/config"
1414 "tangled.sh/tangled.sh/core/knotserver/db"
1515+ "tangled.sh/tangled.sh/core/knotserver/notifier"
1516 "tangled.sh/tangled.sh/core/rbac"
1617)
1718···2021 c *config.Config
2122 e *rbac.Enforcer
2223 l *slog.Logger
2424+ n *notifier.Notifier
2325}
24262527func (h *InternalHandle) PushAllowed(w http.ResponseWriter, r *http.Request) {
···99101 }
100102101103 for _, op := range ops {
102102- err := h.db.InsertOp(op)
104104+ err := h.db.InsertOp(op, h.n)
103105 if err != nil {
104106 l.Error("failed to insert op", "err", err, "op", op)
105107 continue
···109111 return
110112}
111113112112-func Internal(ctx context.Context, c *config.Config, db *db.DB, e *rbac.Enforcer, l *slog.Logger) http.Handler {
114114+func Internal(ctx context.Context, c *config.Config, db *db.DB, e *rbac.Enforcer, l *slog.Logger, n *notifier.Notifier) http.Handler {
113115 r := chi.NewRouter()
114116115117 h := InternalHandle{
···117119 c,
118120 e,
119121 l,
122122+ n,
120123 }
121124122125 r.Get("/push-allowed", h.PushAllowed)