package api
|
|
import (
|
"basic.com/valib/bhomeclient.git"
|
"basic.com/valib/logger.git"
|
"github.com/gin-gonic/gin"
|
uuid "github.com/satori/go.uuid"
|
"net/http"
|
"sync"
|
"vamicro/version-control/controller"
|
"vamicro/version-control/models"
|
"vamicro/version-control/routers"
|
"vamicro/version-control/service"
|
)
|
|
var (
|
routines []routers.IRouter = []routers.IRouter{}
|
|
)
|
|
func init() {
|
routines = append(routines,
|
controller.CheckVersion,
|
controller.UploadDist,
|
controller.Upgrade,
|
controller.SettingFetch,
|
controller.SettingPush,
|
controller.UpdateNotice,
|
controller.DelayNotice,
|
controller.PreUpLoad,
|
controller.UpgradePreUpLoad,
|
controller.RollBack,
|
controller.Authorization,
|
controller.GetSn,
|
controller.Qrcode,
|
controller.AuthorizationUpload,
|
controller.CancelAuthorization,
|
controller.CancelAuthorizationUpload,
|
|
controller.ShopMakeSmsCod,
|
controller.ShopCenterLogin,
|
controller.ShopCenterGetOrderList,
|
controller.AuthActiveByOrder,
|
|
controller.AutoBakShow,
|
controller.AutoBakConfSet,
|
controller.AutoBakRightNow,
|
controller.BackupListShow,
|
controller.BackupRecov,
|
)
|
}
|
|
func InitRouter(wg *sync.WaitGroup, ms *bhomeclient.MicroNode) *http.Server {
|
models.Init()
|
service.Init()
|
r := gin.Default()
|
controller.Ms = ms
|
var midw gin.HandlerFunc = func(ctx *gin.Context) {
|
uid, err := ctx.Cookie("uuid")
|
if err != nil {
|
uid := uuid.NewV4().String()
|
ctx.SetCookie("uuid", uid, 3600, "/", "", false, true)
|
}
|
ctx.Set("uid", uid)
|
}
|
r.Use(midw)
|
for _, v := range routines {
|
methods := v.GetMethods()
|
if len(methods) > 0 && len(methods) > 0 {
|
for _, m := range methods {
|
r.Handle(m, v.GetPath(), v.GetHandles()...)
|
}
|
}
|
}
|
|
server := &http.Server{
|
Addr: ":8080",
|
Handler: r,
|
}
|
|
wg.Add(1)
|
go func() {
|
if err := server.ListenAndServe(); nil != err {
|
if err != http.ErrServerClosed {
|
logger.Fatal("InitRouter failed with error:", err)
|
} else {
|
logger.Info("InitRouter exited by user")
|
}
|
}
|
|
wg.Done()
|
}()
|
|
return server
|
}
|