add repository draft

This commit is contained in:
2025-10-23 05:17:38 +02:00
parent 6c24eed541
commit 811dfc7507
11 changed files with 195 additions and 18 deletions
@@ -0,0 +1,52 @@
package meteo
import (
"io"
"log/slog"
)
type Service struct {
csv CSV
repo Repository
}
func NewService(repo Repository) *Service {
return &Service{
csv: CSV{},
repo: repo,
}
}
func (s *Service) IngestCSV(r io.Reader, fs *FileStats) error {
accepted, rejected, err := s.csv.Parse(r)
if err != nil {
return err
}
// TODO call insertToDB
s.insertAcceptedToDB(accepted, fs)
s.insertRejectedToDB(rejected, fs)
return nil
}
func (s *Service) insertAcceptedToDB(data []MeteoData, fs *FileStats) error {
var err error
fs.RowsInserted, err = s.repo.InsertAcceptedMeteoData(data)
if err != nil {
slog.Error("error", "err", err)
return err
}
return nil
}
func (s *Service) insertRejectedToDB(data []RejectedMeteoData, fs *FileStats) error {
var err error
fs.RowsRejected, err = s.repo.InsertRejectedMeteoData(data)
if err != nil {
return err
}
return nil
}