You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

51 lines
924 B

package sig
import (
"net/http"
"runtime/debug"
"sig-pub/internal/sig/service"
"sig-pub/pkg/resp"
"sig-pub/pkg/storage/persist"
"sig-pub/pkg/zlog"
"github.com/gin-gonic/gin"
)
type SigServer struct {
rdb *persist.DB
engine *gin.Engine
}
func NewSigServer(rdb *persist.DB) *SigServer {
return &SigServer{
rdb: rdb,
}
}
func (s *SigServer) Init() (err error) {
s.initGinServer()
return
}
func (s *SigServer) initGinServer() {
s.engine = gin.Default()
s.engine.Use(func(c *gin.Context) {
// global recover
defer func() {
if r := recover(); r != nil {
zlog.Error("http server recover error:", r)
debug.PrintStack()
c.JSON(http.StatusInternalServerError, resp.Error("server error"))
c.Abort()
}
}()
c.Next()
})
routerGroup := s.engine.Group("/api/sig")
service.Init(routerGroup, s.rdb)
}
func (s *SigServer) Run(addr string) (err error) {
return s.engine.Run(addr)
}