···
···
"tangled.org/core/appview/db"
"tangled.org/core/appview/models"
"tangled.org/core/appview/oauth"
-
"tangled.org/core/appview/pages"
"tangled.org/core/appview/pages/repoinfo"
-
"tangled.org/core/idresolver"
···
type RepoResolver struct {
-
enforcer *rbac.Enforcer
-
idResolver *idresolver.Resolver
-
func New(config *config.Config, enforcer *rbac.Enforcer, resolver *idresolver.Resolver, execer db.Execer) *RepoResolver {
-
return &RepoResolver{config: config, enforcer: enforcer, idResolver: resolver, execer: execer}
// NOTE: this... should not even be here. the entire package will be removed in future refactor
···
-
func (f *ResolvedRepo) Collaborators(ctx context.Context) ([]pages.Collaborator, error) {
-
repoCollaborators, err := f.rr.enforcer.E.GetImplicitUsersForResourceByDomain(f.DidSlashRepo(), f.Knot)
-
var collaborators []pages.Collaborator
-
for _, item := range repoCollaborators {
-
// currently only two roles: owner and member
-
case "repo:collaborator":
-
c := pages.Collaborator{
-
collaborators = append(collaborators, c)
-
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)
-
starCount, err := db.GetStarCount(f.rr.execer, repoAt)
-
log.Println("failed to get star count for ", repoAt)
-
issueCount, err := db.GetIssueCount(f.rr.execer, repoAt)
-
log.Println("failed to get issue count for ", repoAt)
-
pullCount, err := db.GetPullCount(f.rr.execer, repoAt)
-
log.Println("failed to get issue count for ", repoAt)
-
source, err := db.GetRepoSource(f.rr.execer, repoAt)
-
if errors.Is(err, sql.ErrNoRows) {
-
log.Println("failed to get repo source for ", repoAt, err)
-
var sourceRepo *models.Repo
-
sourceRepo, err = db.GetRepoByAtUri(f.rr.execer, source)
-
log.Println("failed to get repo by at uri", err)
repoInfo := repoinfo.RepoInfo{
OwnerDid: f.OwnerId.DID.String(),
OwnerHandle: f.OwnerId.Handle.String(),
···
Description: f.Description,
-
Roles: f.RolesInRepo(user),
-
Stats: models.RepoStats{
-
IssueCount: issueCount,
CurrentDir: f.CurrentDir,
-
repoInfo.Source = sourceRepo
···
···
"tangled.org/core/appview/db"
"tangled.org/core/appview/models"
"tangled.org/core/appview/oauth"
"tangled.org/core/appview/pages/repoinfo"
···
type RepoResolver struct {
+
enforcer *rbac.Enforcer
+
func New(config *config.Config, enforcer *rbac.Enforcer, execer db.Execer) *RepoResolver {
+
return &RepoResolver{config: config, enforcer: enforcer, execer: execer}
// NOTE: this... should not even be here. the entire package will be removed in future refactor
···
// 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)
+
starCount, err := db.GetStarCount(f.rr.execer, repoAt)
+
log.Println("failed to get star count for ", repoAt)
+
issueCount, err := db.GetIssueCount(f.rr.execer, repoAt)
+
log.Println("failed to get issue count for ", repoAt)
+
pullCount, err := db.GetPullCount(f.rr.execer, repoAt)
+
log.Println("failed to get pull count for ", repoAt)
+
stats = &models.RepoStats{
+
IssueCount: issueCount,
+
sourceRepo, err := db.GetRepoSourceRepo(f.rr.execer, repoAt)
+
log.Println("failed to get repo by at uri", err)
repoInfo := repoinfo.RepoInfo{
+
// this is basically a models.Repo
OwnerDid: f.OwnerId.DID.String(),
OwnerHandle: f.OwnerId.Handle.String(),
···
Description: f.Description,
CurrentDir: f.CurrentDir,
+
// info related to the session
+
Roles: f.RolesInRepo(user),