♻️ RoadSign v2 #6

Merged
LittleSheep merged 14 commits from refactor/v2 into master 2024-01-26 05:32:06 +00:00
6 changed files with 20 additions and 14 deletions
Showing only changes of commit 1ab4c5984e - Show all commits

4
.gitignore vendored
View File

@ -1,2 +1,4 @@
/config /config
/letsencrypt /letsencrypt
.DS_Store

View File

@ -43,7 +43,7 @@ func main() {
log.Warn().Msgf("RoadSign auto generated api credential is %s", credential) log.Warn().Msgf("RoadSign auto generated api credential is %s", credential)
} }
// Load & init navi // Load & init navigator
if err := navi.ReadInConfig(viper.GetString("paths.configs")); err != nil { if err := navi.ReadInConfig(viper.GetString("paths.configs")); err != nil {
log.Panic().Err(err).Msg("An error occurred when loading configurations.") log.Panic().Err(err).Msg("An error occurred when loading configurations.")
} else { } else {

View File

@ -14,4 +14,4 @@ func init() {
} }
} }
var AppVersion = "1.2.1" var AppVersion = "2.0.0-delta1"

View File

@ -1,10 +1,12 @@
package navi package navi
import ( import (
"github.com/spf13/viper"
"io" "io"
"os" "os"
"path/filepath" "path/filepath"
"strings"
"github.com/spf13/viper"
"github.com/pelletier/go-toml/v2" "github.com/pelletier/go-toml/v2"
) )
@ -14,13 +16,15 @@ var R *RoadApp
func ReadInConfig(root string) error { func ReadInConfig(root string) error {
instance := &RoadApp{ instance := &RoadApp{
Regions: make([]*Region, 0), Regions: make([]*Region, 0),
Traces: make([]RoadTrace, 0, viper.GetInt("performance.traces_limit")), Traces: make([]RoadTrace, 0, viper.GetInt("performance.traces_limit")),
} }
if err := filepath.Walk(root, func(fp string, info os.FileInfo, _ error) error { if err := filepath.Walk(root, func(fp string, info os.FileInfo, _ error) error {
var region Region var region Region
if info.IsDir() { if info.IsDir() {
return nil return nil
} else if !strings.HasSuffix(info.Name(), ".toml") {
return nil
} else if file, err := os.OpenFile(fp, os.O_RDONLY, 0755); err != nil { } else if file, err := os.OpenFile(fp, os.O_RDONLY, 0755); err != nil {
return err return err
} else if data, err := io.ReadAll(file); err != nil { } else if data, err := io.ReadAll(file); err != nil {
@ -33,7 +37,7 @@ func ReadInConfig(root string) error {
if region.Disabled { if region.Disabled {
return nil return nil
} }
instance.Regions = append(instance.Regions, &region) instance.Regions = append(instance.Regions, &region)
} }

View File

@ -54,11 +54,11 @@ func InitSideload() *fiber.App {
{ {
cgi.Get("/metadata", getMetadata) cgi.Get("/metadata", getMetadata)
cgi.Get("/traces", getTraces) cgi.Get("/traces", getTraces)
cgi.Get("/statistics", getStatistics) cgi.Get("/stats", getStats)
cgi.Get("/sites", getRegions) cgi.Get("/regions", getRegions)
cgi.Get("/sites/cfg/:id", getRegionConfig) cgi.Get("/regions/cfg/:id", getRegionConfig)
cgi.Get("/processes", getApplications) cgi.Get("/applications", getApplications)
cgi.Get("/processes/logs/:id", getApplicationLogs) cgi.Get("/applications/logs/:id", getApplicationLogs)
} }
webhooks := app.Group("/webhooks").Name("WebHooks") webhooks := app.Group("/webhooks").Name("WebHooks")

View File

@ -7,7 +7,7 @@ import (
"github.com/samber/lo" "github.com/samber/lo"
) )
func getStatistics(c *fiber.Ctx) error { func getStats(c *fiber.Ctx) error {
locations := lo.FlatMap(navi.R.Regions, func(item *navi.Region, idx int) []navi.Location { locations := lo.FlatMap(navi.R.Regions, func(item *navi.Region, idx int) []navi.Location {
return item.Locations return item.Locations
}) })
@ -19,8 +19,8 @@ func getStatistics(c *fiber.Ctx) error {
}) })
return c.JSON(fiber.Map{ return c.JSON(fiber.Map{
"regions": len(navi.R.Regions), "regions": len(navi.R.Regions),
"locations": len(locations), "locations": len(locations),
"destinations": len(destinations), "destinations": len(destinations),
"applications": len(applications), "applications": len(applications),
}) })