From c4e5776f9e174fe6bf91721649c0541a9fb310ae Mon Sep 17 00:00:00 2001 From: Zach Berwaldt Date: Fri, 15 Mar 2024 21:41:12 -0400 Subject: add env samples, move files --- api/.env.sample | 10 ++++++++++ api/cmd/main.go | 13 +++++++++---- api/internal/config/config.go | 17 +++++++++++++++++ api/internal/database/database.go | 16 +++++++++------- 4 files changed, 45 insertions(+), 11 deletions(-) create mode 100644 api/.env.sample create mode 100644 api/internal/config/config.go (limited to 'api') diff --git a/api/.env.sample b/api/.env.sample new file mode 100644 index 0000000..6e25893 --- /dev/null +++ b/api/.env.sample @@ -0,0 +1,10 @@ +# user for test +TEST_USER=user1 +# test user password +TEST_PASS=12345 +# database path +DB_PATH="path/to/database/file" +# database driver +DB_DRIVER="sqlite3" +# port +PORT=":8080" \ No newline at end of file diff --git a/api/cmd/main.go b/api/cmd/main.go index d97c942..c23eff1 100644 --- a/api/cmd/main.go +++ b/api/cmd/main.go @@ -1,16 +1,21 @@ package main import ( - "water/api/internal/database" + "log" + "water/api/internal/config" "water/api/internal/router" ) func main() { - database.SetupDatabase() + c, err := config.Load() + if err != nil { + log.Fatalf("Error while reading config file %s", err) + } + r := router.SetupRouter() // Listen and Server in 0.0.0.0:8080 - err := r.Run(":8080") + err = r.Run(c.GetString("PORT")) if err != nil { - return + log.Fatal(err) } } diff --git a/api/internal/config/config.go b/api/internal/config/config.go new file mode 100644 index 0000000..1892696 --- /dev/null +++ b/api/internal/config/config.go @@ -0,0 +1,17 @@ +package config + +import ( + "fmt" + "github.com/spf13/viper" +) + +func Load() (*viper.Viper, error) { + v := viper.New() + v.SetConfigFile(".env") + v.AddConfigPath(".") + err := v.ReadInConfig() + if err != nil { + return nil, fmt.Errorf("error reading .env file: %s", err) + } + return v, nil +} \ No newline at end of file diff --git a/api/internal/database/database.go b/api/internal/database/database.go index 7af9780..1866655 100644 --- a/api/internal/database/database.go +++ b/api/internal/database/database.go @@ -4,17 +4,19 @@ import ( "database/sql" _ "github.com/mattn/go-sqlite3" "log" + "path/filepath" + "water/api/internal/config" ) -func SetupDatabase() { - _, err := sql.Open("sqlite3", "water.sqlite3") +func EstablishDBConnection() *sql.DB { + c, err := config.Load() + + driver := c.GetString("DB_DRIVER") + path, err := filepath.Abs(c.GetString("DB_PATH")) if err != nil { - log.Fatal(err) + log.Fatal("There was and error getting the absolute path of the database.") } -} - -func EstablishDBConnection() *sql.DB { - db, err := sql.Open("sqlite3", "../db/water.sqlite3") + db, err := sql.Open(driver, path) if err != nil { panic(err) } -- cgit v1.1