重新初始化仓库
This commit is contained in:
160
construct/init.go
Normal file
160
construct/init.go
Normal file
@ -0,0 +1,160 @@
|
||||
// Package construct ...
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 1:23 下午 2021/8/7
|
||||
package construct
|
||||
|
||||
import (
|
||||
"git.zhangdeman.cn/zhangdeman/center-config/dao"
|
||||
"git.zhangdeman.cn/zhangdeman/center-config/define/config"
|
||||
"git.zhangdeman.cn/zhangdeman/center-config/manager"
|
||||
"git.zhangdeman.cn/zhangdeman/center-config/response"
|
||||
"git.zhangdeman.cn/zhangdeman/gopkg/middleware/mysql"
|
||||
"git.zhangdeman.cn/zhangdeman/gopkg/util"
|
||||
"github.com/gin-gonic/gin"
|
||||
"go.uber.org/zap/zapcore"
|
||||
)
|
||||
|
||||
var (
|
||||
// ProjectPath 项目路径
|
||||
ProjectPath string
|
||||
// Env 运行环境
|
||||
Env string
|
||||
)
|
||||
|
||||
// Bootstrap 引导服务启动
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 1:25 下午 2021/8/7
|
||||
func Bootstrap(router *gin.Engine) error {
|
||||
// 初始化
|
||||
if len(Env) == 0 {
|
||||
Env = "product"
|
||||
}
|
||||
ProjectPath, _ = util.GetProjectPath()
|
||||
// 初始化数据库
|
||||
if err := InitDatabase(); nil != err {
|
||||
return nil
|
||||
}
|
||||
// 初始化各种管理实例
|
||||
manager.Init()
|
||||
// 初始化请求路由
|
||||
initRouter(router)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// InitDatabase 初始化数据库
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 1:27 下午 2021/8/7
|
||||
func InitDatabase() error {
|
||||
// 读取数据库配置, 并初始化
|
||||
var (
|
||||
err error
|
||||
dbConfig config.Database
|
||||
)
|
||||
if err = util.ReadYmlConfig(ProjectPath+"/etc/database/"+Env+".yml", &dbConfig); nil != err {
|
||||
return err
|
||||
}
|
||||
if err = dao.InitDatabase(dbConfig.DB, &mysql.LogConfig{
|
||||
Level: zapcore.Level(dbConfig.Log.Level),
|
||||
ConsoleOutput: dbConfig.Log.Console,
|
||||
SplitConfig: dbConfig.Log.Split,
|
||||
ExtractFieldList: dbConfig.Log.ExtractFieldList,
|
||||
TraceFieldName: dbConfig.Log.TraceFieldName,
|
||||
}); nil != err {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// initRouter 初始化路由
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 6:34 下午 2021/8/9
|
||||
func initRouter(router *gin.Engine) {
|
||||
// 创建命名空间
|
||||
router.POST("/namespace/create", func(ctx *gin.Context) {
|
||||
createForm, err := manager.Namespace.ValidateCreateForm(ctx)
|
||||
if nil != err {
|
||||
response.ManagerAPIFail(ctx, -1, map[string]interface{}{"reason": err.Error()})
|
||||
return
|
||||
}
|
||||
if err := manager.Namespace.Create(createForm); nil != err {
|
||||
response.ManagerAPIFail(ctx, -1, map[string]interface{}{"reason": err.Error()})
|
||||
return
|
||||
}
|
||||
response.ManagerAPISuccess(ctx, map[string]interface{}{})
|
||||
})
|
||||
// 激活命名空间
|
||||
router.POST("/namespace/active", func(ctx *gin.Context) {
|
||||
activeForm, err := manager.Namespace.ValidateActiveForm(ctx)
|
||||
if nil != err {
|
||||
response.ManagerAPIFail(ctx, -1, map[string]interface{}{"reason": err.Error()})
|
||||
return
|
||||
}
|
||||
if err := manager.Namespace.Active(activeForm); nil != err {
|
||||
response.ManagerAPIFail(ctx, -1, map[string]interface{}{"reason": err.Error()})
|
||||
return
|
||||
}
|
||||
response.ManagerAPISuccess(ctx, map[string]interface{}{})
|
||||
})
|
||||
// 新增配置
|
||||
router.POST("/config/create", func(ctx *gin.Context) {
|
||||
createForm, err := manager.Config.ValidateCreateOrUpdateConfigForm(ctx)
|
||||
if nil != err {
|
||||
response.ManagerAPIFail(ctx, -1, map[string]interface{}{"reason": err.Error()})
|
||||
return
|
||||
}
|
||||
if err := manager.Config.Create(createForm, nil); nil != err {
|
||||
response.ManagerAPIFail(ctx, -1, map[string]interface{}{"reason": err.Error()})
|
||||
return
|
||||
}
|
||||
response.ManagerAPISuccess(ctx, map[string]interface{}{})
|
||||
})
|
||||
// 修改配置
|
||||
router.POST("/config/update", func(ctx *gin.Context) {
|
||||
updateForm, err := manager.Config.ValidateCreateOrUpdateConfigForm(ctx)
|
||||
if nil != err {
|
||||
response.ManagerAPIFail(ctx, -1, map[string]interface{}{"reason": err.Error()})
|
||||
return
|
||||
}
|
||||
if err := manager.Config.Update(updateForm, nil, nil); nil != err {
|
||||
response.ManagerAPIFail(ctx, -1, map[string]interface{}{"reason": err.Error()})
|
||||
return
|
||||
}
|
||||
response.ManagerAPISuccess(ctx, map[string]interface{}{})
|
||||
})
|
||||
// 设置配置
|
||||
router.POST("/config/set", func(ctx *gin.Context) {
|
||||
createOrUpdateForm, err := manager.Config.ValidateCreateOrUpdateConfigForm(ctx)
|
||||
if nil != err {
|
||||
response.ManagerAPIFail(ctx, -1, map[string]interface{}{"reason": err.Error()})
|
||||
return
|
||||
}
|
||||
if err := manager.Config.CreateOrUpdateConfig(createOrUpdateForm); nil != err {
|
||||
response.ManagerAPIFail(ctx, -1, map[string]interface{}{"reason": err.Error()})
|
||||
return
|
||||
}
|
||||
response.ManagerAPISuccess(ctx, map[string]interface{}{})
|
||||
})
|
||||
|
||||
// 读取配置(从内存读取)
|
||||
router.GET("/config/read", func(ctx *gin.Context) {
|
||||
namespaceName := ctx.DefaultQuery("namespace", "")
|
||||
key := ctx.DefaultQuery("key", "")
|
||||
if len(namespaceName) == 0 || len(key) == 0 {
|
||||
response.ReadConfigAPISuccess(ctx, `param fail : namespace and key are required`)
|
||||
return
|
||||
}
|
||||
response.ReadConfigAPISuccess(ctx, manager.Storage.GetConf(namespaceName, key))
|
||||
})
|
||||
if err := router.Run(":10998"); nil != err {
|
||||
panic("端口监听失败 : " + err.Error())
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user