beancount-gs/server.go

57 lines
1.2 KiB
Go
Raw Normal View History

2021-09-24 08:11:41 +00:00
package main
import (
2021-11-17 09:59:06 +00:00
"github.com/beancount-gs/script"
2021-11-18 08:27:28 +00:00
"github.com/beancount-gs/service"
2021-11-04 09:58:57 +00:00
"github.com/gin-gonic/gin"
2021-11-17 09:59:06 +00:00
"net/http"
2021-09-24 08:11:41 +00:00
)
2021-11-18 08:27:28 +00:00
func InitServerFiles() error {
dataPath := script.GetServerConfig().DataPath
2021-11-17 09:59:06 +00:00
// 账本目录不存在,则创建
2021-11-18 08:27:28 +00:00
if !script.FileIfExist(dataPath) {
return script.MkDir(dataPath)
2021-11-17 09:59:06 +00:00
}
2021-11-18 08:27:28 +00:00
return nil
2021-11-17 06:16:22 +00:00
}
2021-11-18 08:27:28 +00:00
func LoadServerCache() error {
return script.LoadLedgerConfigMap()
2021-11-17 06:16:22 +00:00
}
2021-11-18 08:27:28 +00:00
func RegisterRouter(router *gin.Engine) {
router.StaticFS("/", http.Dir("./public"))
router.POST("/api/ledger", service.OpenOrCreateLedger)
2021-11-17 06:16:22 +00:00
}
2021-09-24 08:11:41 +00:00
func main() {
2021-11-17 09:59:06 +00:00
// 读取配置文件
2021-11-18 08:27:28 +00:00
err := script.LoadServerConfig()
if err != nil {
script.LogError("Failed to load server config, " + err.Error())
return
}
2021-11-17 06:16:22 +00:00
// 初始化账本文件结构
2021-11-18 08:27:28 +00:00
err = InitServerFiles()
if err != nil {
script.LogError("Failed to init server files, " + err.Error())
return
}
2021-11-17 06:16:22 +00:00
// 加载缓存
2021-11-18 08:27:28 +00:00
err = LoadServerCache()
if err != nil {
script.LogError("Failed to load server cache, " + err.Error())
return
}
router := gin.Default()
2021-11-17 06:16:22 +00:00
// 注册路由
2021-11-18 08:27:28 +00:00
RegisterRouter(router)
2021-11-17 09:59:06 +00:00
// 启动服务
2021-11-18 08:27:28 +00:00
var port = ":3001"
err = router.Run(port)
if err != nil {
script.LogError("Failed to start server, " + err.Error())
}
2021-09-24 08:11:41 +00:00
}