Add utils and config
This commit is contained in:
parent
5d82d485c8
commit
96bd6a8602
24 changed files with 10121 additions and 0 deletions
49
model/config.go
Normal file
49
model/config.go
Normal file
|
@ -0,0 +1,49 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
|
||||
"gopkg.in/yaml.v2"
|
||||
)
|
||||
|
||||
const (
|
||||
DefaultPort = 8080
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
DatabasePath *string `yaml:"database_path"`
|
||||
Port *int `yaml:"port"`
|
||||
}
|
||||
|
||||
func (c *Config) SetDefaults() {
|
||||
if c.Port == nil {
|
||||
c.Port = NewInt(DefaultPort)
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Config) IsValid() error {
|
||||
if c.DatabasePath == nil || *c.DatabasePath == "" {
|
||||
return fmt.Errorf("database_path cannot be empty")
|
||||
}
|
||||
|
||||
if c.Port == nil || *c.Port == 0 {
|
||||
return fmt.Errorf("port cannot be empty")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReadConfig(path string) (*Config, error) {
|
||||
b, err := ioutil.ReadFile(path)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var config Config
|
||||
if err := yaml.Unmarshal(b, &config); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &config, nil
|
||||
}
|
|
@ -4,6 +4,9 @@ import (
|
|||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func NewString(s string) *string { return &s }
|
||||
func NewInt(i int) *int { return &i }
|
||||
|
||||
func NewID() string {
|
||||
return uuid.New().String()
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue