package common
import (
"fmt"
"github.com/pkg/errors"
"gopkg.in/yaml.v3"
"io/ioutil"
)
type conf struct {
Name string `yaml:"name"`
Password string `yaml:"password"`
Host string `yaml:"host"`
Port string `yaml:"port"`
Database string `yaml:"database"`
}
func GetConfig() (dbconf conf, err error) {
dbconf = conf{}
yamlfile, err := ioutil.ReadFile("./config/config.yml")
if err != nil {
return dbconf, errors.Wrap(err, "ERR: fail to read file")
}
err = yaml.Unmarshal(yamlfile, &dbconf)
if err != nil {
return dbconf, errors.Wrap(err, "ERR: fail to parse yaml")
}
return
}
func getDSN() (dsn string, err error) {
config, err := GetConfig()
if err != nil {
return
}
root := config.Name
password := config.Password
host := config.Host
port := config.Port
database := config.Database
dsn = fmt.Sprintf("%v:%v@tcp(%v:%v)/%v?charset=utf8mb4&parseTime=True&loc=Local", root, password, host, port, database)
return
}