goext/ginext/engine.go

48 lines
870 B
Go
Raw Normal View History

2023-07-18 14:40:10 +02:00
package ginext
2023-07-18 15:12:06 +02:00
import (
"github.com/gin-gonic/gin"
"time"
)
2023-07-18 14:40:10 +02:00
type GinWrapper struct {
engine *gin.Engine
SuppressGinLogs bool
allowCors bool
ginDebug bool
returnRawErrors bool
2023-07-18 15:12:06 +02:00
requestTimeout time.Duration
2023-07-18 14:40:10 +02:00
}
2023-07-18 15:12:06 +02:00
func NewEngine(allowCors bool, ginDebug bool, returnRawErrors bool, timeout time.Duration) *GinWrapper {
2023-07-18 14:40:10 +02:00
engine := gin.New()
wrapper := &GinWrapper{
engine: engine,
SuppressGinLogs: false,
allowCors: allowCors,
ginDebug: ginDebug,
returnRawErrors: returnRawErrors,
2023-07-18 15:12:06 +02:00
requestTimeout: timeout,
2023-07-18 14:40:10 +02:00
}
engine.RedirectFixedPath = false
engine.RedirectTrailingSlash = false
if allowCors {
engine.Use(CorsMiddleware())
}
if ginDebug {
ginlogger := gin.Logger()
engine.Use(func(context *gin.Context) {
if !wrapper.SuppressGinLogs {
ginlogger(context)
}
})
}
return wrapper
}