···80 result.ReadmeFileName = xrpcResp.Readme.Filename
81 result.Readme = xrpcResp.Readme.Contents
82 }
83- ownerSlashRepo := reporesolver.GetBaseRepoPath(r, &f.Repo)
84 // redirects tree paths trying to access a blob; in this case the result.Files is unpopulated,
85 // so we can safely redirect to the "parent" (which is the same file).
86 if len(result.Files) == 0 && result.Parent == treePath {
···80 result.ReadmeFileName = xrpcResp.Readme.Filename
81 result.Readme = xrpcResp.Readme.Contents
82 }
83+ ownerSlashRepo := reporesolver.GetBaseRepoPath(r, f)
84 // redirects tree paths trying to access a blob; in this case the result.Files is unpopulated,
85 // so we can safely redirect to the "parent" (which is the same file).
86 if len(result.Files) == 0 && result.Parent == treePath {
+3-9
appview/reporesolver/resolver.go
···18 "tangled.org/core/rbac"
19)
2021-type ResolvedRepo struct {
22- models.Repo
23-}
24-25type RepoResolver struct {
26 config *config.Config
27 enforcer *rbac.Enforcer
···45}
4647// TODO: move this out of `RepoResolver` struct
48-func (rr *RepoResolver) Resolve(r *http.Request) (*ResolvedRepo, error) {
49 repo, ok := r.Context().Value("repo").(*models.Repo)
50 if !ok {
51 log.Println("malformed middleware: `repo` not exist in context")
52 return nil, fmt.Errorf("malformed middleware")
53 }
5455- return &ResolvedRepo{
56- Repo: *repo,
57- }, nil
58}
5960// 1. [x] replace `RepoInfo` to `reporesolver.GetRepoInfo(r *http.Request, repo, user)`
61// 2. [x] remove `rr`, `CurrentDir`, `Ref` fields from `ResolvedRepo`
62-// 3. [ ] remove `ResolvedRepo`
63// 4. [ ] replace reporesolver to reposervice
64func (rr *RepoResolver) GetRepoInfo(r *http.Request, user *oauth.User) repoinfo.RepoInfo {
65 ownerId, ook := r.Context().Value("resolvedId").(identity.Identity)
···18 "tangled.org/core/rbac"
19)
20000021type RepoResolver struct {
22 config *config.Config
23 enforcer *rbac.Enforcer
···41}
4243// TODO: move this out of `RepoResolver` struct
44+func (rr *RepoResolver) Resolve(r *http.Request) (*models.Repo, error) {
45 repo, ok := r.Context().Value("repo").(*models.Repo)
46 if !ok {
47 log.Println("malformed middleware: `repo` not exist in context")
48 return nil, fmt.Errorf("malformed middleware")
49 }
5051+ return repo, nil
0052}
5354// 1. [x] replace `RepoInfo` to `reporesolver.GetRepoInfo(r *http.Request, repo, user)`
55// 2. [x] remove `rr`, `CurrentDir`, `Ref` fields from `ResolvedRepo`
56+// 3. [x] remove `ResolvedRepo`
57// 4. [ ] replace reporesolver to reposervice
58func (rr *RepoResolver) GetRepoInfo(r *http.Request, user *oauth.User) repoinfo.RepoInfo {
59 ownerId, ook := r.Context().Value("resolvedId").(identity.Identity)