package flags // WIP import ( "embed" "encoding/json" "git.tijl.dev/tijl/tijl.dev-core/modules/i18n" log "git.tijl.dev/tijl/tijl.dev-core/modules/logger" "git.tijl.dev/tijl/tijl.dev-core/modules/web" "github.com/gofiber/fiber/v2" ) var supportedTags []string var countryCodes []CountryCode type CountryCode struct { Code string `json:"code"` Tags []string `json:"tags"` } //go:embed locales/* data/* var Embed embed.FS func Setup() { i18n.RegisterTranslations(Embed, "locales") err := loadData() if err != nil { log.Error().Err(err).Msg("error loading country codes data file") } web.RegisterAppSetupFunc(func(a *fiber.App) { a.Get("/app/flags", func(c *fiber.Ctx) error { data := *web.Common(c) data["Title"] = "tmp" data["SupportedTags"] = supportedTags return c.Render("apps/flags/start", data, "layouts/base") }) }, 1000) } func loadData() error { countryCodesData, err := Embed.ReadFile("data/country_codes.json") if err != nil { return err } countryCodes = []CountryCode{} err = json.Unmarshal(countryCodesData, &countryCodes) if err != nil { return err } tagsData, err := Embed.ReadFile("data/tags.json") if err != nil { return err } supportedTags = []string{} err = json.Unmarshal(tagsData, &supportedTags) if err != nil { return err } return nil }