diff --git a/pkg/input/conf/conf.go b/pkg/input/conf/conf.go index fcf134b..fd8712e 100644 --- a/pkg/input/conf/conf.go +++ b/pkg/input/conf/conf.go @@ -1,10 +1,8 @@ package conf import ( - "io" - "os" - "my/schet/pkg/input/config" + "my/schet/pkg/lib" "my/schet/pkg/schet" "github.com/yosuke-furukawa/json5/encoding/json5" @@ -24,27 +22,37 @@ func NewConf(path string) *Conf { return c } -func (c *Conf) Считать() error { - f, err := os.Open(c.path) - if err != nil { - return err - } - defer f.Close() - - data, err := io.ReadAll(f) - if err != nil { - return err - } - - return json5.Unmarshal(data, c.config) -} - func (c *Conf) Загрузить(год *schet.Год) error { c.год = год - for _, d := range c.config.Доходы { - c.год.ДобавитьДоход(d.Сумма, d.Квартал) + 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) +} diff --git a/pkg/input/config/config.go b/pkg/input/config/config.go index 9d4e453..c319b05 100644 --- a/pkg/input/config/config.go +++ b/pkg/input/config/config.go @@ -1,7 +1,18 @@ package config type Config struct { - Доходы []Доход `json:"Доходы"` + НомерСчёта string `json:"НомерСчёта"` + Действия []Действие `json:"Действия"` +} + +func NewConfig() *Config { + return &Config{} +} + +type Действие struct { + Цель string + Квартал int + Комментарий string } type Доход struct { @@ -9,7 +20,3 @@ type Доход struct { Квартал int Клиент string } - -func NewConfig() *Config { - return &Config{} -}