OSDN Git Service

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