31 lines
459 B
Go
Executable File
31 lines
459 B
Go
Executable File
package config
|
|
|
|
import "fmt"
|
|
|
|
type Config struct {
|
|
Mode string
|
|
Addr string
|
|
Port int
|
|
DSN string
|
|
}
|
|
|
|
func (c *Config) Validate() error {
|
|
if c.Mode != "dev" && c.Mode != "prod" {
|
|
return fmt.Errorf("invalid mode: %s", c.Mode)
|
|
}
|
|
|
|
if c.Addr == "" {
|
|
return fmt.Errorf("invalid address: %s", c.Addr)
|
|
}
|
|
|
|
if c.Port == 0 {
|
|
return fmt.Errorf("invalid port: %d", c.Port)
|
|
}
|
|
|
|
if c.DSN == "" {
|
|
return fmt.Errorf("invalid DSN: %s", c.DSN)
|
|
}
|
|
|
|
return nil
|
|
}
|