Add utils and config

This commit is contained in:
Miguel de la Cruz 2021-09-12 00:06:03 +02:00
parent 5d82d485c8
commit 96bd6a8602
24 changed files with 10121 additions and 0 deletions

49
model/config.go Normal file
View 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
}

View file

@ -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()
}