schet/pkg/input/conf/conf.go

58 строки
992 Б
Go

package conf
import (
"my/schet/pkg/input/config"
"my/schet/pkg/lib"
"my/schet/pkg/schet"
"github.com/yosuke-furukawa/json5/encoding/json5"
)
type Conf struct {
path string
config *config.Config
год *schet.Год
}
func NewConf(path string) *Conf {
c := &Conf{
config: config.NewConfig(),
path: path,
}
return c
}
func (c *Conf) Загрузить(год *schet.Год) error {
c.год = год
err := c.считать()
if err != nil {
return err
}
return c.загрузить()
}
func (c *Conf) загрузить() error {
err := c.год.ЗадатьСчёт(c.config.НомерСчёта)
if err != nil {
return err
}
for _, d := range c.config.Действия {
err := c.год.Сделать(d.Цель, d.Квартал)
if err != nil {
return err
}
}
return nil
}
func (c *Conf) считать() error {
data, err := lib.ReadFile(c.path)
if err != nil {
return err
}
return json5.Unmarshal([]byte(data), c.config)
}