OSDN Git Service

refactor toolbar/server (#390)
[bytom/vapor.git] / toolbar / federation / api / server.go
1 package api
2
3 import (
4         "github.com/gin-gonic/gin"
5         "github.com/jinzhu/gorm"
6
7         "github.com/vapor/toolbar/federation/config"
8         serverCommon "github.com/vapor/toolbar/server"
9 )
10
11 type Server struct {
12         cfg    *config.Config
13         db     *gorm.DB
14         engine *gin.Engine
15 }
16
17 func NewServer(db *gorm.DB, cfg *config.Config) *Server {
18         server := &Server{
19                 cfg: cfg,
20                 db:  db,
21         }
22         if cfg.API.IsReleaseMode {
23                 gin.SetMode(gin.ReleaseMode)
24         }
25         server.setupRouter()
26         return server
27 }
28
29 func (s *Server) setupRouter() {
30         r := gin.Default()
31         r.Use(serverCommon.Middleware(s))
32
33         v1 := r.Group("/api/v1")
34         v1.POST("/federation/list-crosschain-txs", serverCommon.HandlerMiddleware(s.ListCrosschainTxs))
35         v1.GET("/federation/list-chains", serverCommon.HandlerMiddleware(s.ListChains))
36
37         s.engine = r
38 }
39
40 func (s *Server) Run() {
41         s.engine.Run(":9886")
42 }