config.go 772 B

1234567891011121314151617181920212223242526272829303132333435
  1. package rest
  2. import "fmt"
  3. type Config struct {
  4. Driver string `json:"driver"`
  5. Filename string `json:"filename"`
  6. Host string `json:"host"`
  7. Port int `json:"port"`
  8. Username string `json:"username"`
  9. Password string `json:"password"`
  10. Database string `json:"database"`
  11. }
  12. func (cfg Config) ParseDSN() string {
  13. if cfg.Driver == "sqlite3" {
  14. return cfg.Filename
  15. } else if cfg.Driver == "mysql" {
  16. return fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local",
  17. cfg.Username,
  18. cfg.Password,
  19. cfg.Host,
  20. cfg.Port,
  21. cfg.Database)
  22. } else if cfg.Driver == "postgres" {
  23. return fmt.Sprintf("host=%s port=%d user=%s dbname=%s password=%s",
  24. cfg.Host,
  25. cfg.Port,
  26. cfg.Username,
  27. cfg.Database,
  28. cfg.Password)
  29. }
  30. return ""
  31. }