Use mount but not register for chi routes (#13555)
* Use mount but not register for chi routes * Fix test * Fix test * Fix test * Fix comment * turn back unnecessary change * Remove the timout middleware since some operations may spend much time.
This commit is contained in:
		
							parent
							
								
									8c2b5feeae
								
							
						
					
					
						commit
						586bfb9f32
					
				| @ -165,9 +165,10 @@ func runWeb(ctx *cli.Context) error { | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
| 	// Set up Macaron
 | ||||
| 	// Set up Chi routes
 | ||||
| 	c := routes.NewChi() | ||||
| 	routes.RegisterRoutes(c) | ||||
| 	c.Mount("/", routes.NormalRoutes()) | ||||
| 	routes.DelegateToMacaron(c) | ||||
| 
 | ||||
| 	err := listen(c, true) | ||||
| 	<-graceful.GetManager().Done() | ||||
|  | ||||
| @ -118,7 +118,8 @@ func runPR() { | ||||
| 	external.RegisterParsers() | ||||
| 	markup.Init() | ||||
| 	c := routes.NewChi() | ||||
| 	routes.RegisterRoutes(c) | ||||
| 	c.Mount("/", routes.NormalRoutes()) | ||||
| 	routes.DelegateToMacaron(c) | ||||
| 
 | ||||
| 	log.Printf("[PR] Ready for testing !\n") | ||||
| 	log.Printf("[PR] Login with user1, user2, user3, ... with pass: password\n") | ||||
|  | ||||
| @ -59,7 +59,8 @@ func TestSessionFileCreation(t *testing.T) { | ||||
| 	defer func() { | ||||
| 		setting.SessionConfig.ProviderConfig = oldSessionConfig | ||||
| 		c = routes.NewChi() | ||||
| 		routes.RegisterRoutes(c) | ||||
| 		c.Mount("/", routes.NormalRoutes()) | ||||
| 		routes.DelegateToMacaron(c) | ||||
| 	}() | ||||
| 
 | ||||
| 	var config session.Options | ||||
| @ -84,7 +85,8 @@ func TestSessionFileCreation(t *testing.T) { | ||||
| 	setting.SessionConfig.ProviderConfig = string(newConfigBytes) | ||||
| 
 | ||||
| 	c = routes.NewChi() | ||||
| 	routes.RegisterRoutes(c) | ||||
| 	c.Mount("/", routes.NormalRoutes()) | ||||
| 	routes.DelegateToMacaron(c) | ||||
| 
 | ||||
| 	t.Run("NoSessionOnViewIssue", func(t *testing.T) { | ||||
| 		defer PrintCurrentTest(t)() | ||||
|  | ||||
| @ -68,7 +68,8 @@ func TestMain(m *testing.M) { | ||||
| 
 | ||||
| 	initIntegrationTest() | ||||
| 	c = routes.NewChi() | ||||
| 	routes.RegisterRoutes(c) | ||||
| 	c.Mount("/", routes.NormalRoutes()) | ||||
| 	routes.DelegateToMacaron(c) | ||||
| 
 | ||||
| 	// integration test settings...
 | ||||
| 	if setting.Cfg != nil { | ||||
|  | ||||
| @ -58,18 +58,20 @@ func Install(ctx *context.Context) { | ||||
| 	form.DbSchema = setting.Database.Schema | ||||
| 	form.Charset = setting.Database.Charset | ||||
| 
 | ||||
| 	ctx.Data["CurDbOption"] = "MySQL" | ||||
| 	var curDBOption = "MySQL" | ||||
| 	switch setting.Database.Type { | ||||
| 	case "postgres": | ||||
| 		ctx.Data["CurDbOption"] = "PostgreSQL" | ||||
| 		curDBOption = "PostgreSQL" | ||||
| 	case "mssql": | ||||
| 		ctx.Data["CurDbOption"] = "MSSQL" | ||||
| 		curDBOption = "MSSQL" | ||||
| 	case "sqlite3": | ||||
| 		if setting.EnableSQLite3 { | ||||
| 			ctx.Data["CurDbOption"] = "SQLite3" | ||||
| 			curDBOption = "SQLite3" | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	ctx.Data["CurDbOption"] = curDBOption | ||||
| 
 | ||||
| 	// Application general settings
 | ||||
| 	form.AppName = setting.AppName | ||||
| 	form.RepoRootPath = setting.RepoRootPath | ||||
|  | ||||
| @ -186,6 +186,7 @@ func storageHandler(storageSetting setting.Storage, prefix string, objStore stor | ||||
| // NewChi creates a chi Router
 | ||||
| func NewChi() chi.Router { | ||||
| 	c := chi.NewRouter() | ||||
| 	c.Use(middleware.RealIP) | ||||
| 	if !setting.DisableRouterLog && setting.RouterLogLevel != log.NONE { | ||||
| 		if log.GetLogger("router").GetLevel() <= setting.RouterLogLevel { | ||||
| 			c.Use(LoggerHandler(setting.RouterLogLevel)) | ||||
| @ -195,6 +196,7 @@ func NewChi() chi.Router { | ||||
| 	if setting.EnableAccessLog { | ||||
| 		setupAccessLogger(c) | ||||
| 	} | ||||
| 
 | ||||
| 	if setting.ProdMode { | ||||
| 		log.Warn("ProdMode ignored") | ||||
| 	} | ||||
| @ -233,28 +235,35 @@ func RegisterInstallRoute(c chi.Router) { | ||||
| 	}) | ||||
| } | ||||
| 
 | ||||
| // RegisterRoutes registers gin routes
 | ||||
| func RegisterRoutes(c chi.Router) { | ||||
| // NormalRoutes represents non install routes
 | ||||
| func NormalRoutes() http.Handler { | ||||
| 	r := chi.NewRouter() | ||||
| 
 | ||||
| 	// for health check
 | ||||
| 	c.Head("/", func(w http.ResponseWriter, req *http.Request) { | ||||
| 	r.Head("/", func(w http.ResponseWriter, req *http.Request) { | ||||
| 		w.WriteHeader(http.StatusOK) | ||||
| 	}) | ||||
| 
 | ||||
| 	// robots.txt
 | ||||
| 	if setting.HasRobotsTxt { | ||||
| 		c.Get("/robots.txt", func(w http.ResponseWriter, req *http.Request) { | ||||
| 		r.Get("/robots.txt", func(w http.ResponseWriter, req *http.Request) { | ||||
| 			http.ServeFile(w, req, path.Join(setting.CustomPath, "robots.txt")) | ||||
| 		}) | ||||
| 	} | ||||
| 
 | ||||
| 	return r | ||||
| } | ||||
| 
 | ||||
| // DelegateToMacaron delegates other routes to macaron
 | ||||
| func DelegateToMacaron(r chi.Router) { | ||||
| 	m := NewMacaron() | ||||
| 	RegisterMacaronRoutes(m) | ||||
| 
 | ||||
| 	c.NotFound(func(w http.ResponseWriter, req *http.Request) { | ||||
| 	r.NotFound(func(w http.ResponseWriter, req *http.Request) { | ||||
| 		m.ServeHTTP(w, req) | ||||
| 	}) | ||||
| 
 | ||||
| 	c.MethodNotAllowed(func(w http.ResponseWriter, req *http.Request) { | ||||
| 	r.MethodNotAllowed(func(w http.ResponseWriter, req *http.Request) { | ||||
| 		m.ServeHTTP(w, req) | ||||
| 	}) | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user