@@ -35,32 +35,6 @@ func AuthStorage(redisClient rueidis.Client) auth.Storage {
3535 return auth .NewRedisStorage (redisClient )
3636}
3737
38- // AuthMiddleware creates an auth.Middleware that can be injected into gin.
39- func AuthMiddleware (storage auth.Storage ) Middleware {
40- return Middleware {
41- Handler : auth .Middleware (storage ),
42- }
43- }
44-
45- // MachineMiddleware creates a machine middleware that can be injected into gin.
46- func MachineMiddleware () Middleware {
47- return Middleware {
48- Handler : httputils .MachineMiddleware (),
49- }
50- }
51-
52- // CorsMiddleware creates a cors middleware that can be injected into gin.
53- func CorsMiddleware (cfg config.Config ) Middleware {
54- return Middleware {
55- Handler : cors .New (cors.Config {
56- AllowOrigins : cfg .AllowedOrigins ,
57- AllowMethods : []string {"GET" , "POST" , "OPTIONS" },
58- AllowHeaders : []string {"Content-Type" , "User-Agent" , "Referer" },
59- AllowCredentials : true ,
60- }),
61- }
62- }
63-
6438func SqlRunner (cfg config.Config ) * sqlrunner.SqlRunner {
6539 return sqlrunner .NewSqlRunner (cfg .SqlRunner )
6640}
@@ -92,24 +66,29 @@ func AuthService(entClient *ent.Client, storage auth.Storage, config config.Conf
9266}
9367
9468// GinEngine creates a gin engine.
95- func GinEngine (services []httpapi.Service , middlewares [] Middleware , gqlgenHandler * handler.Server , cfg config.Config ) * gin.Engine {
69+ func GinEngine (services []httpapi.Service , authStorage auth. Storage , gqlgenHandler * handler.Server , cfg config.Config ) * gin.Engine {
9670 engine := gin .New ()
9771
9872 if err := engine .SetTrustedProxies (cfg .TrustProxies ); err != nil {
9973 slog .Error ("error setting trusted proxies" , "error" , err )
10074 }
10175
102- for _ , middleware := range middlewares {
103- engine .Use (middleware .Handler )
104- }
105-
10676 engine .Use (gin .Recovery ())
107-
108- engine .GET ("/" , func (ctx * gin.Context ) {
77+ engine .Use (httputils .MachineMiddleware ())
78+ engine .Use (cors .New (cors.Config {
79+ AllowOrigins : cfg .AllowedOrigins ,
80+ AllowMethods : []string {"GET" , "POST" , "OPTIONS" },
81+ AllowHeaders : []string {"Content-Type" , "User-Agent" , "Referer" },
82+ AllowCredentials : true ,
83+ }))
84+
85+ router := engine .Group ("/" )
86+ router .Use (auth .Middleware (authStorage ))
87+ router .GET ("/" , func (ctx * gin.Context ) {
10988 handler := playground .Handler ("GraphQL playground" , "/query" )
11089 handler .ServeHTTP (ctx .Writer , ctx .Request )
11190 })
112- engine .POST ("/query" , func (ctx * gin.Context ) {
91+ router .POST ("/query" , func (ctx * gin.Context ) {
11392 gqlgenHandler .ServeHTTP (ctx .Writer , ctx .Request )
11493 })
11594
@@ -174,19 +153,6 @@ func GinLifecycle(lifecycle fx.Lifecycle, engine *gin.Engine, cfg config.Config)
174153 })
175154}
176155
177- // Middleware is a middleware that can be injected into gin.
178- type Middleware struct {
179- Handler gin.HandlerFunc
180- }
181-
182- // AnnotateMiddleware annotates a middleware function to be injected into gin.
183- func AnnotateMiddleware (f any ) any {
184- return fx .Annotate (
185- f ,
186- fx .ResultTags (`group:"middlewares"` ),
187- )
188- }
189-
190156// AnnotateService annotates a service function to be injected into gin.
191157func AnnotateService (f any ) any {
192158 return fx .Annotate (
0 commit comments