From 50696a3c96784a8d4883f35ec6cba4cbb0beb42b Mon Sep 17 00:00:00 2001 From: BaoXuebin Date: Tue, 30 Nov 2021 00:13:41 +0800 Subject: [PATCH] add config api --- server.go | 3 +++ service/ledger.go | 21 ++++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/server.go b/server.go index 251c83d..9496f58 100644 --- a/server.go +++ b/server.go @@ -44,6 +44,9 @@ func RegisterRouter(router *gin.Engine) { c.Redirect(http.StatusMovedPermanently, "/web") }) router.StaticFS("/web", http.Dir("./public")) + router.POST("/api/check", service.CheckBeancount) + router.GET("/api/config", service.QueryServerConfig) + router.POST("/api/config", service.UpdateServerConfig) router.POST("/api/ledger", service.OpenOrCreateLedger) authorized := router.Group("/api/auth/") authorized.Use(AuthorizedHandler()) diff --git a/service/ledger.go b/service/ledger.go index c74c482..0cdae7d 100644 --- a/service/ledger.go +++ b/service/ledger.go @@ -8,9 +8,28 @@ import ( "github.com/gin-gonic/gin" "io" "io/ioutil" + "os/exec" "strings" ) +func CheckBeancount(c *gin.Context) { + cmd := exec.Command("bean-query", "--version") + output, err := cmd.Output() + if err != nil { + InternalError(c, err.Error()) + return + } + OK(c, string(output)) +} + +func QueryServerConfig(c *gin.Context) { + OK(c, script.GetServerConfig()) +} + +func UpdateServerConfig(c *gin.Context) { + +} + type LoginForm struct { Mail string `form:"mail" binding:"required"` Secret string `form:"secret" binding:"required"` @@ -93,7 +112,7 @@ func copyFile(sourceFilePath string, targetFilePath string, ledgerConfig script. return err } err = script.WriteFile(newTargetFilePath, strings.ReplaceAll(strings.ReplaceAll(string(fileContent), "%startDate%", ledgerConfig.StartDate), "%operatingCurrency%", ledgerConfig.OperatingCurrency)) - script.LogInfo(ledgerConfig.Mail, "Success create file " + newTargetFilePath) + script.LogInfo(ledgerConfig.Mail, "Success create file "+newTargetFilePath) } if err != nil { return err