···
···
"tangled.org/core/appview/db"
"tangled.org/core/appview/models"
"tangled.org/core/appview/oauth"
20
-
"tangled.org/core/appview/pages"
"tangled.org/core/appview/pages/repoinfo"
22
-
"tangled.org/core/idresolver"
···
type RepoResolver struct {
36
-
config *config.Config
37
-
enforcer *rbac.Enforcer
38
-
idResolver *idresolver.Resolver
31
+
config *config.Config
32
+
enforcer *rbac.Enforcer
42
-
func New(config *config.Config, enforcer *rbac.Enforcer, resolver *idresolver.Resolver, execer db.Execer) *RepoResolver {
43
-
return &RepoResolver{config: config, enforcer: enforcer, idResolver: resolver, execer: execer}
36
+
func New(config *config.Config, enforcer *rbac.Enforcer, execer db.Execer) *RepoResolver {
37
+
return &RepoResolver{config: config, enforcer: enforcer, execer: execer}
// NOTE: this... should not even be here. the entire package will be removed in future refactor
···
83
-
func (f *ResolvedRepo) Collaborators(ctx context.Context) ([]pages.Collaborator, error) {
84
-
repoCollaborators, err := f.rr.enforcer.E.GetImplicitUsersForResourceByDomain(f.DidSlashRepo(), f.Knot)
89
-
var collaborators []pages.Collaborator
90
-
for _, item := range repoCollaborators {
91
-
// currently only two roles: owner and member
96
-
case "repo:collaborator":
97
-
role = "collaborator"
104
-
c := pages.Collaborator{
108
-
collaborators = append(collaborators, c)
111
-
return collaborators, nil
// this function is a bit weird since it now returns RepoInfo from an entirely different
// package. we should refactor this or get rid of RepoInfo entirely.
func (f *ResolvedRepo) RepoInfo(user *oauth.User) repoinfo.RepoInfo {
···
isStarred = db.GetStarStatus(f.rr.execer, user.Did, repoAt)
123
-
starCount, err := db.GetStarCount(f.rr.execer, repoAt)
125
-
log.Println("failed to get star count for ", repoAt)
127
-
issueCount, err := db.GetIssueCount(f.rr.execer, repoAt)
129
-
log.Println("failed to get issue count for ", repoAt)
131
-
pullCount, err := db.GetPullCount(f.rr.execer, repoAt)
133
-
log.Println("failed to get issue count for ", repoAt)
135
-
source, err := db.GetRepoSource(f.rr.execer, repoAt)
136
-
if errors.Is(err, sql.ErrNoRows) {
138
-
} else if err != nil {
139
-
log.Println("failed to get repo source for ", repoAt, err)
142
-
var sourceRepo *models.Repo
144
-
sourceRepo, err = db.GetRepoByAtUri(f.rr.execer, source)
86
+
stats := f.RepoStats
88
+
starCount, err := db.GetStarCount(f.rr.execer, repoAt)
90
+
log.Println("failed to get star count for ", repoAt)
92
+
issueCount, err := db.GetIssueCount(f.rr.execer, repoAt)
94
+
log.Println("failed to get issue count for ", repoAt)
96
+
pullCount, err := db.GetPullCount(f.rr.execer, repoAt)
146
-
log.Println("failed to get repo by at uri", err)
98
+
log.Println("failed to get pull count for ", repoAt)
100
+
stats = &models.RepoStats{
101
+
StarCount: starCount,
102
+
IssueCount: issueCount,
103
+
PullCount: pullCount,
107
+
sourceRepo, err := db.GetRepoSourceRepo(f.rr.execer, repoAt)
109
+
log.Println("failed to get repo by at uri", err)
repoInfo := repoinfo.RepoInfo{
113
+
// this is basically a models.Repo
OwnerDid: f.OwnerId.DID.String(),
OwnerHandle: f.OwnerId.Handle.String(),
···
Description: f.Description,
160
-
IsStarred: isStarred,
163
-
Roles: f.RolesInRepo(user),
164
-
Stats: models.RepoStats{
165
-
StarCount: starCount,
166
-
IssueCount: issueCount,
167
-
PullCount: pullCount,
125
+
// fork repo upstream
126
+
Source: sourceRepo,
CurrentDir: f.CurrentDir,
173
-
if sourceRepo != nil {
174
-
repoInfo.Source = sourceRepo
131
+
// info related to the session
132
+
IsStarred: isStarred,
133
+
Roles: f.RolesInRepo(user),