Added configuration

This commit is contained in:
2025-09-21 14:30:33 +01:00
parent 2c92ee61a0
commit d9d64cb067
5 changed files with 70 additions and 4 deletions
+3 -1
View File
@@ -5,6 +5,7 @@ import (
"net/http"
"strconv"
"github.com/ESilva15/PTInvCertSWDB/config"
sw "github.com/ESilva15/PTInvCertSWDB/sw"
"github.com/gin-gonic/gin"
@@ -48,6 +49,7 @@ func count(c *gin.Context) {
}
func RunServer() error {
cfg := config.GetInstance()
gin.SetMode(ginMode)
router := gin.Default()
@@ -64,7 +66,7 @@ func RunServer() error {
return err
}
err = router.Run(":8086")
err = router.Run(":" + cfg.Port)
if err != nil {
return err
}
+4 -3
View File
@@ -4,6 +4,7 @@ import (
"net/http"
"strings"
"github.com/ESilva15/PTInvCertSWDB/config"
"github.com/gin-gonic/gin"
"github.com/golang-jwt/jwt/v4"
)
@@ -12,11 +13,11 @@ type TokenData struct {
Token string `json:"JWTToken"`
}
const key = "stronk"
func validateToken(tStr string) (bool, error) {
cfg := config.GetInstance()
token, err := jwt.Parse(tStr, func(token *jwt.Token) (any, error) {
return []byte(key), nil
return []byte(cfg.AuthKey), nil
}, jwt.WithValidMethods([]string{jwt.SigningMethodHS256.Alg()}))
if err != nil {
return false, err
+5
View File
@@ -0,0 +1,5 @@
port: 8086
authKey: "stronk"
dataBackend: "YAML"
yamlBackend:
path: "./swdb.yaml"
+56
View File
@@ -0,0 +1,56 @@
// Package config defines the configuration of our app
package config
import (
"log"
"os"
"sync"
"gopkg.in/yaml.v2"
)
type YamlBackend struct {
Path string `yaml:"path"`
}
// Configuration defines the base configuration of the expenses app
type Configuration struct {
Port string `yaml:"port"`
AuthKey string `yaml:"authKey"`
DataBackend string `yaml:"dataBackend"`
YamlBackend YamlBackend `yaml:"yamlBackend"`
}
var (
instance *Configuration
once sync.Once
confPath string
)
// GetInstance returns the instance of the configuration of the app.
func GetInstance() *Configuration {
once.Do(func() {
instance = &Configuration{}
instance.loadConfiguration()
})
return instance
}
// SetConfig sets the path for the configuration file.
func SetConfig(path string) {
confPath = path
}
func (c *Configuration) loadConfiguration() {
file, err := os.ReadFile(confPath)
if err != nil {
log.Fatalf("Unable to open configuration file [%s]: %s", confPath,
err.Error())
}
err = yaml.Unmarshal(file, &instance)
if err != nil {
log.Fatalf("Error parsing JSON: %s", err.Error())
}
}
+2
View File
@@ -2,8 +2,10 @@ package main
import (
cmd "github.com/ESilva15/PTInvCertSWDB/cmd"
"github.com/ESilva15/PTInvCertSWDB/config"
)
func main() {
config.SetConfig("./config.yaml")
cmd.Execute()
}