clean up
This commit is contained in:
+33
-8
@@ -18,6 +18,8 @@ package validator
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strconv"
|
||||
|
||||
"github.com/jmoiron/sqlx"
|
||||
"github.com/spf13/viper"
|
||||
@@ -32,13 +34,6 @@ const (
|
||||
DATABASE_PASSWORD = "DATABASE_PASSWORD"
|
||||
)
|
||||
|
||||
// NewDB returns a new sqlx.DB from config/cli/env variables
|
||||
func NewDB() (*sqlx.DB, error) {
|
||||
c := Config{}
|
||||
c.Init()
|
||||
return sqlx.Connect("postgres", c.ConnString())
|
||||
}
|
||||
|
||||
type Config struct {
|
||||
Hostname string
|
||||
Name string
|
||||
@@ -47,6 +42,13 @@ type Config struct {
|
||||
Port int
|
||||
}
|
||||
|
||||
// NewDB returns a new sqlx.DB from config/cli/env variables
|
||||
func NewDB() (*sqlx.DB, error) {
|
||||
c := Config{}
|
||||
LoadViper(&c)
|
||||
return sqlx.Connect("postgres", c.ConnString())
|
||||
}
|
||||
|
||||
func (c *Config) ConnString() string {
|
||||
if len(c.User) > 0 && len(c.Password) > 0 {
|
||||
return fmt.Sprintf("postgresql://%s:%s@%s:%d/%s?sslmode=disable",
|
||||
@@ -59,7 +61,30 @@ func (c *Config) ConnString() string {
|
||||
return fmt.Sprintf("postgresql://%s:%d/%s?sslmode=disable", c.Hostname, c.Port, c.Name)
|
||||
}
|
||||
|
||||
func (c *Config) Init() {
|
||||
func LoadEnv(c *Config) error {
|
||||
if val := os.Getenv(DATABASE_NAME); val != "" {
|
||||
c.Name = val
|
||||
}
|
||||
if val := os.Getenv(DATABASE_HOSTNAME); val != "" {
|
||||
c.Hostname = val
|
||||
}
|
||||
if val := os.Getenv(DATABASE_PORT); val != "" {
|
||||
port, err := strconv.Atoi(val)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
c.Port = port
|
||||
}
|
||||
if val := os.Getenv(DATABASE_USER); val != "" {
|
||||
c.User = val
|
||||
}
|
||||
if val := os.Getenv(DATABASE_PASSWORD); val != "" {
|
||||
c.Password = val
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func LoadViper(c *Config) {
|
||||
viper.BindEnv("database.name", DATABASE_NAME)
|
||||
viper.BindEnv("database.hostname", DATABASE_HOSTNAME)
|
||||
viper.BindEnv("database.port", DATABASE_PORT)
|
||||
|
||||
Reference in New Issue
Block a user