Конфиг: добавлены действия и номер счёта

Этот коммит содержится в:
Softonik 2024-06-26 16:47:18 +03:00 коммит произвёл Nobody
родитель 9f5a468141
коммит 0b8d6e42d4
2 изменённых файлов: 40 добавлений и 25 удалений

Просмотреть файл

@ -1,10 +1,8 @@
package conf package conf
import ( import (
"io"
"os"
"my/schet/pkg/input/config" "my/schet/pkg/input/config"
"my/schet/pkg/lib"
"my/schet/pkg/schet" "my/schet/pkg/schet"
"github.com/yosuke-furukawa/json5/encoding/json5" "github.com/yosuke-furukawa/json5/encoding/json5"
@ -24,27 +22,37 @@ func NewConf(path string) *Conf {
return c 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 { func (c *Conf) Загрузить(год *schet.Год) error {
c.год = год c.год = год
for _, d := range c.config.Доходы { err := c.считать()
c.год.ДобавитьДоход(d.Сумма, d.Квартал) 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 return nil
} }
func (c *Conf) считать() error {
data, err := lib.ReadFile(c.path)
if err != nil {
return err
}
return json5.Unmarshal([]byte(data), c.config)
}

Просмотреть файл

@ -1,7 +1,18 @@
package config package config
type Config struct { type Config struct {
Доходы []Доход `json:"Доходы"` НомерСчёта string `json:"НомерСчёта"`
Действия []Действие `json:"Действия"`
}
func NewConfig() *Config {
return &Config{}
}
type Действие struct {
Цель string
Квартал int
Комментарий string
} }
type Доход struct { type Доход struct {
@ -9,7 +20,3 @@ type Доход struct {
Квартал int Квартал int
Клиент string Клиент string
} }
func NewConfig() *Config {
return &Config{}
}