+3
-3
appview/middleware/middleware.go
+3
-3
appview/middleware/middleware.go
···
12
13
"github.com/bluesky-social/indigo/atproto/identity"
14
"github.com/go-chi/chi/v5"
15
-
"tangled.sh/tangled.sh/core/appview"
16
"tangled.sh/tangled.sh/core/appview/db"
17
"tangled.sh/tangled.sh/core/appview/oauth"
18
"tangled.sh/tangled.sh/core/appview/pages"
19
"tangled.sh/tangled.sh/core/appview/pagination"
20
"tangled.sh/tangled.sh/core/appview/reporesolver"
21
"tangled.sh/tangled.sh/core/rbac"
22
)
23
24
type Middleware struct {
···
26
db *db.DB
27
enforcer *rbac.Enforcer
28
repoResolver *reporesolver.RepoResolver
29
-
resolver *appview.Resolver
30
pages *pages.Pages
31
}
32
33
-
func New(oauth *oauth.OAuth, db *db.DB, enforcer *rbac.Enforcer, repoResolver *reporesolver.RepoResolver, resolver *appview.Resolver, pages *pages.Pages) Middleware {
34
return Middleware{
35
oauth: oauth,
36
db: db,
···
12
13
"github.com/bluesky-social/indigo/atproto/identity"
14
"github.com/go-chi/chi/v5"
15
"tangled.sh/tangled.sh/core/appview/db"
16
"tangled.sh/tangled.sh/core/appview/oauth"
17
"tangled.sh/tangled.sh/core/appview/pages"
18
"tangled.sh/tangled.sh/core/appview/pagination"
19
"tangled.sh/tangled.sh/core/appview/reporesolver"
20
"tangled.sh/tangled.sh/core/rbac"
21
+
"tangled.sh/tangled.sh/core/resolver"
22
)
23
24
type Middleware struct {
···
26
db *db.DB
27
enforcer *rbac.Enforcer
28
repoResolver *reporesolver.RepoResolver
29
+
resolver *resolver.Resolver
30
pages *pages.Pages
31
}
32
33
+
func New(oauth *oauth.OAuth, db *db.DB, enforcer *rbac.Enforcer, repoResolver *reporesolver.RepoResolver, resolver *resolver.Resolver, pages *pages.Pages) Middleware {
34
return Middleware{
35
oauth: oauth,
36
db: db,
+2
-1
appview/oauth/handler/handler.go
+2
-1
appview/oauth/handler/handler.go
···
21
"tangled.sh/tangled.sh/core/appview/pages"
22
"tangled.sh/tangled.sh/core/knotclient"
23
"tangled.sh/tangled.sh/core/rbac"
24
)
25
26
const (
···
30
type OAuthHandler struct {
31
Config *appview.Config
32
Pages *pages.Pages
33
-
Resolver *appview.Resolver
34
Db *db.DB
35
Store *sessions.CookieStore
36
OAuth *oauth.OAuth
···
21
"tangled.sh/tangled.sh/core/appview/pages"
22
"tangled.sh/tangled.sh/core/knotclient"
23
"tangled.sh/tangled.sh/core/rbac"
24
+
"tangled.sh/tangled.sh/core/resolver"
25
)
26
27
const (
···
31
type OAuthHandler struct {
32
Config *appview.Config
33
Pages *pages.Pages
34
+
Resolver *resolver.Resolver
35
Db *db.DB
36
Store *sessions.CookieStore
37
OAuth *oauth.OAuth
+3
-2
appview/pulls/pulls.go
+3
-2
appview/pulls/pulls.go
···
21
"tangled.sh/tangled.sh/core/appview/reporesolver"
22
"tangled.sh/tangled.sh/core/knotclient"
23
"tangled.sh/tangled.sh/core/patchutil"
24
"tangled.sh/tangled.sh/core/types"
25
26
"github.com/bluekeyes/go-gitdiff/gitdiff"
···
36
oauth *oauth.OAuth
37
repoResolver *reporesolver.RepoResolver
38
pages *pages.Pages
39
-
resolver *appview.Resolver
40
db *db.DB
41
config *appview.Config
42
posthog posthog.Client
43
}
44
45
-
func New(oauth *oauth.OAuth, repoResolver *reporesolver.RepoResolver, pages *pages.Pages, resolver *appview.Resolver, db *db.DB, config *appview.Config) *Pulls {
46
return &Pulls{oauth: oauth, repoResolver: repoResolver, pages: pages, resolver: resolver, db: db, config: config}
47
}
48
···
21
"tangled.sh/tangled.sh/core/appview/reporesolver"
22
"tangled.sh/tangled.sh/core/knotclient"
23
"tangled.sh/tangled.sh/core/patchutil"
24
+
"tangled.sh/tangled.sh/core/resolver"
25
"tangled.sh/tangled.sh/core/types"
26
27
"github.com/bluekeyes/go-gitdiff/gitdiff"
···
37
oauth *oauth.OAuth
38
repoResolver *reporesolver.RepoResolver
39
pages *pages.Pages
40
+
resolver *resolver.Resolver
41
db *db.DB
42
config *appview.Config
43
posthog posthog.Client
44
}
45
46
+
func New(oauth *oauth.OAuth, repoResolver *reporesolver.RepoResolver, pages *pages.Pages, resolver *resolver.Resolver, db *db.DB, config *appview.Config) *Pulls {
47
return &Pulls{oauth: oauth, repoResolver: repoResolver, pages: pages, resolver: resolver, db: db, config: config}
48
}
49
+3
-2
appview/reporesolver/resolver.go
+3
-2
appview/reporesolver/resolver.go
···
22
"tangled.sh/tangled.sh/core/appview/pages/repoinfo"
23
"tangled.sh/tangled.sh/core/knotclient"
24
"tangled.sh/tangled.sh/core/rbac"
25
)
26
27
type ResolvedRepo struct {
···
40
type RepoResolver struct {
41
config *appview.Config
42
enforcer *rbac.Enforcer
43
-
resolver *appview.Resolver
44
execer db.Execer
45
}
46
47
-
func New(config *appview.Config, enforcer *rbac.Enforcer, resolver *appview.Resolver, execer db.Execer) *RepoResolver {
48
return &RepoResolver{config: config, enforcer: enforcer, resolver: resolver, execer: execer}
49
}
50
···
22
"tangled.sh/tangled.sh/core/appview/pages/repoinfo"
23
"tangled.sh/tangled.sh/core/knotclient"
24
"tangled.sh/tangled.sh/core/rbac"
25
+
"tangled.sh/tangled.sh/core/resolver"
26
)
27
28
type ResolvedRepo struct {
···
41
type RepoResolver struct {
42
config *appview.Config
43
enforcer *rbac.Enforcer
44
+
resolver *resolver.Resolver
45
execer db.Execer
46
}
47
48
+
func New(config *appview.Config, enforcer *rbac.Enforcer, resolver *resolver.Resolver, execer db.Execer) *RepoResolver {
49
return &RepoResolver{config: config, enforcer: enforcer, resolver: resolver, execer: execer}
50
}
51
+3
-3
appview/resolver.go
resolver/resolver.go
+3
-3
appview/resolver.go
resolver/resolver.go
+6
-5
appview/state/state.go
+6
-5
appview/state/state.go
···
27
"tangled.sh/tangled.sh/core/jetstream"
28
"tangled.sh/tangled.sh/core/knotclient"
29
"tangled.sh/tangled.sh/core/rbac"
30
)
31
32
type State struct {
···
35
enforcer *rbac.Enforcer
36
tidClock syntax.TIDClock
37
pages *pages.Pages
38
-
resolver *appview.Resolver
39
posthog posthog.Client
40
jc *jetstream.JetstreamClient
41
config *appview.Config
···
57
58
pgs := pages.NewPages(config)
59
60
-
resolver, err := appview.RedisResolver(config.Redis)
61
if err != nil {
62
log.Printf("failed to create redis resolver: %v", err)
63
-
resolver = appview.DefaultResolver()
64
}
65
66
oauth := oauth.NewOAuth(d, config)
···
70
return nil, fmt.Errorf("failed to create posthog client: %w", err)
71
}
72
73
-
repoResolver := reporesolver.New(config, enforcer, resolver, d)
74
75
wrapper := db.DbWrapper{d}
76
jc, err := jetstream.NewJetstreamClient(
···
102
enforcer,
103
clock,
104
pgs,
105
-
resolver,
106
posthog,
107
jc,
108
config,
···
27
"tangled.sh/tangled.sh/core/jetstream"
28
"tangled.sh/tangled.sh/core/knotclient"
29
"tangled.sh/tangled.sh/core/rbac"
30
+
"tangled.sh/tangled.sh/core/resolver"
31
)
32
33
type State struct {
···
36
enforcer *rbac.Enforcer
37
tidClock syntax.TIDClock
38
pages *pages.Pages
39
+
resolver *resolver.Resolver
40
posthog posthog.Client
41
jc *jetstream.JetstreamClient
42
config *appview.Config
···
58
59
pgs := pages.NewPages(config)
60
61
+
res, err := resolver.RedisResolver(config.Redis.ToURL())
62
if err != nil {
63
log.Printf("failed to create redis resolver: %v", err)
64
+
res = resolver.DefaultResolver()
65
}
66
67
oauth := oauth.NewOAuth(d, config)
···
71
return nil, fmt.Errorf("failed to create posthog client: %w", err)
72
}
73
74
+
repoResolver := reporesolver.New(config, enforcer, res, d)
75
76
wrapper := db.DbWrapper{d}
77
jc, err := jetstream.NewJetstreamClient(
···
103
enforcer,
104
clock,
105
pgs,
106
+
res,
107
posthog,
108
jc,
109
config,