Monorepo for Tangled tangled.org

draft: appview: service layer #800

open opened by boltless.me targeting master from sl/uvpzuszrulvq

Obviously file naming of appview/web/handler/*.go files are directly against to go convention. Though I think flattening all handler files can significantly reduce the effort involved in file naming and structuring. We are already grouping core services by domains, and doing same for web handers is just over-complicating.

Signed-off-by: Seongmin Lee git@boltless.me

Labels

None yet.

assignee

None yet.

Participants 1
AT URI
at://did:plc:xasnlahkri4ewmbuzly2rlc5/sh.tangled.repo.pull/3m5jyyj76xa22
+25 -20
Interdiff #2 #3
appview/oauth/handler.go

This file has not been changed.

appview/oauth/session.go

This file has not been changed.

appview/service/issue/issue.go

This file has not been changed.

appview/service/issue/state.go

This file has not been changed.

appview/service/repo/repo.go

This file has not been changed.

appview/service/repo/repoinfo.go

This file has not been changed.

appview/session/context.go

This file has not been changed.

appview/session/session.go

This file has not been changed.

+18 -3
appview/state/legacy_bridge.go
··· 6 6 "tangled.org/core/appview/config" 7 7 "tangled.org/core/appview/db" 8 8 "tangled.org/core/appview/indexer" 9 + "tangled.org/core/appview/issues" 9 10 "tangled.org/core/appview/middleware" 10 11 "tangled.org/core/appview/notify" 11 12 "tangled.org/core/appview/oauth" 12 13 "tangled.org/core/appview/pages" 13 - "tangled.org/core/appview/reporesolver" 14 14 "tangled.org/core/appview/validator" 15 15 "tangled.org/core/idresolver" 16 + "tangled.org/core/log" 16 17 "tangled.org/core/rbac" 17 18 ) 18 19 ··· 28 29 notify.Notifier, 29 30 *oauth.OAuth, 30 31 *pages.Pages, 31 - *reporesolver.RepoResolver, 32 32 *validator.Validator, 33 33 ) { 34 - return s.config, s.db, s.enforcer, s.idResolver, s.indexer, s.logger, s.notifier, s.oauth, s.pages, s.repoResolver, s.validator 34 + return s.config, s.db, s.enforcer, s.idResolver, s.indexer, s.logger, s.notifier, s.oauth, s.pages, s.validator 35 + } 36 + 37 + func (s *State) ExposeIssue() *issues.Issues { 38 + return issues.New( 39 + s.oauth, 40 + s.repoResolver, 41 + s.pages, 42 + s.idResolver, 43 + s.db, 44 + s.config, 45 + s.notifier, 46 + s.validator, 47 + s.indexer.Issues, 48 + log.SubLogger(s.logger, "issues"), 49 + ) 35 50 } 36 51 37 52 func (s *State) Middleware() *middleware.Middleware {
appview/web/handler/oauth_client_metadata.go

This file has not been changed.

appview/web/handler/oauth_jwks.go

This file has not been changed.

appview/web/handler/user_repo_issues.go

This file has not been changed.

appview/web/handler/user_repo_issues_issue.go

This file has not been changed.

appview/web/handler/user_repo_issues_issue_close.go

This file has not been changed.

appview/web/handler/user_repo_issues_issue_edit.go

This file has not been changed.

appview/web/handler/user_repo_issues_issue_opengraph.go

This file has not been changed.

appview/web/handler/user_repo_issues_issue_reopen.go

This file has not been changed.

appview/web/handler/user_repo_issues_new.go

This file has not been changed.

appview/web/middleware/auth.go

This file has not been changed.

appview/web/middleware/ensuredidorhandle.go

This file has not been changed.

appview/web/middleware/log.go

This file has not been changed.

appview/web/middleware/middleware.go

This file has not been changed.

appview/web/middleware/normalize.go

This file has not been changed.

appview/web/middleware/paginate.go

This file has not been changed.

appview/web/middleware/resolve.go

This file has not been changed.

appview/web/request/context.go

This file has not been changed.

+7 -17
appview/web/routes.go
··· 8 8 "tangled.org/core/appview/config" 9 9 "tangled.org/core/appview/db" 10 10 "tangled.org/core/appview/indexer" 11 - "tangled.org/core/appview/issues" 12 11 "tangled.org/core/appview/notify" 13 12 "tangled.org/core/appview/oauth" 14 13 "tangled.org/core/appview/pages" ··· 19 18 "tangled.org/core/appview/web/handler" 20 19 "tangled.org/core/appview/web/middleware" 21 20 "tangled.org/core/idresolver" 22 - "tangled.org/core/log" 23 21 "tangled.org/core/rbac" 24 22 ) 25 23 ··· 34 32 // RouterFromState creates a web router from `state.State`. This exist to 35 33 // bridge between legacy web routers under `State` and new architecture 36 34 func RouterFromState(s *state.State) http.Handler { 37 - config, db, enforcer, idResolver, indexer, logger, notifier, oauth, pages, repoResolver, validator := s.Expose() 38 - i := issues.New( 39 - oauth, 40 - repoResolver, 41 - pages, 42 - idResolver, 43 - db, 44 - config, 45 - notifier, 46 - validator, 47 - indexer.Issues, 48 - log.SubLogger(logger, "issues"), 49 - ) 35 + config, db, enforcer, idResolver, indexer, logger, notifier, oauth, pages, validator := s.Expose() 50 36 51 37 return Router( 52 38 logger, ··· 60 46 pages, 61 47 validator, 62 48 s, 63 - i, 64 49 ) 65 50 } 66 51 ··· 78 63 validator *validator.Validator, 79 64 // to use legacy web handlers. will be removed later 80 65 s *state.State, 81 - i *issues.Issues, 82 66 ) http.Handler { 83 67 repo := rsvc.NewService( 84 68 logger, ··· 96 80 validator, 97 81 ) 98 82 83 + i := s.ExposeIssue() 84 + 99 85 r := chi.NewRouter() 100 86 101 87 mw := s.Middleware() ··· 160 146 // special-case handler. should replace with xrpc later 161 147 r.Get("/keys/{user}", s.Keys) 162 148 149 + r.HandleFunc("/@*", func(w http.ResponseWriter, r *http.Request) { 150 + http.Redirect(w, r, "/"+chi.URLParam(r, "*"), http.StatusFound) 151 + }) 152 + 163 153 r.Route("/{user}", func(r chi.Router) { 164 154 r.Use(middleware.EnsureDidOrHandle(pages)) 165 155 r.Use(middleware.ResolveIdent(idResolver, pages))
cmd/appview/main.go

This file has not been changed.

History

14 rounds 0 comments
sign up or login to add to the discussion
1 commit
expand
appview/{service,web}: service layer
1/3 failed, 2/3 success
expand
merge conflicts detected
expand
  • appview/pages/templates/user/login.html:33
  • appview/state/profile.go:817
  • appview/pages/templates/user/login.html:31
  • appview/pages/templates/user/login.html:93
  • appview/repo/artifact.go:251
  • appview/state/profile.go:528
expand 0 comments
1 commit
expand
appview/{service,web}: service layer
1/3 failed, 2/3 success
expand
expand 0 comments
1 commit
expand
appview/{service,web}: service layer
3/3 failed
expand
expand 0 comments
1 commit
expand
appview/{service,web}: service layer
3/3 success
expand
expand 0 comments
1 commit
expand
appview/{service,web}: service layer
2/3 failed, 1/3 success
expand
expand 0 comments
1 commit
expand
appview/{service,web}: service layer
3/3 success
expand
expand 0 comments
1 commit
expand
appview/{service,web}: service layer
1/3 failed, 2/3 timeout
expand
expand 0 comments
1 commit
expand
draft: appview/service: service layer
3/3 success
expand
expand 0 comments
1 commit
expand
draft: appview/service: service layer
1/3 failed, 1/3 timeout, 1/3 success
expand
expand 0 comments
1 commit
expand
draft: appview/service: service layer
3/3 success
expand
expand 0 comments
1 commit
expand
draft: appview/service: service layer
3/3 success
expand
expand 0 comments
1 commit
expand
draft: appview/service: service layer
3/3 success
expand
expand 0 comments
1 commit
expand
draft: appview: service layer
3/3 failed
expand
expand 0 comments
1 commit
expand
draft: appview: service layer
3/3 failed
expand
expand 0 comments