734929bbb91bbb5a7115418b4f052f36c6cf64a4
[src/xds/xds-agent.git] / lib / apiv1 / apiv1.go
1 package apiv1
2
3 import (
4         "github.com/Sirupsen/logrus"
5         "github.com/gin-gonic/gin"
6
7         "github.com/iotbzh/xds-agent/lib/session"
8         "github.com/iotbzh/xds-agent/lib/xdsconfig"
9 )
10
11 // APIService .
12 type APIService struct {
13         router    *gin.Engine
14         apiRouter *gin.RouterGroup
15         sessions  *session.Sessions
16         cfg       *xdsconfig.Config
17         log       *logrus.Logger
18 }
19
20 // New creates a new instance of API service
21 func New(sess *session.Sessions, conf *xdsconfig.Config, log *logrus.Logger, r *gin.Engine) *APIService {
22         s := &APIService{
23                 router:    r,
24                 sessions:  sess,
25                 apiRouter: r.Group("/api/v1"),
26                 cfg:       conf,
27                 log:       log,
28         }
29
30         s.apiRouter.GET("/version", s.getVersion)
31
32         s.apiRouter.GET("/config", s.getConfig)
33         s.apiRouter.POST("/config", s.setConfig)
34
35         return s
36 }