feat: planned structure

This commit is contained in:
Anatoly Antonov 2025-06-21 23:11:38 +03:00
parent bcb9ace54c
commit 5240968c33
4 changed files with 41 additions and 4 deletions

View file

@ -0,0 +1,22 @@
package downloader
import (
"fmt"
env "github.com/caarlos0/env/v11"
)
type Config struct {
}
func NewConfig(servicePrefix string) (*Config, error) {
cfg := &Config{}
if err := env.ParseWithOptions(cfg, env.Options{
PrefixTagName: fmt.Sprintf("%s_GRIB_", servicePrefix),
}); err != nil {
return nil, err
}
return cfg, nil
}

View file

@ -0,0 +1,3 @@
package downloader
//

View file

@ -11,6 +11,6 @@ type Redis interface {
Get(key string) ([]byte, error) Get(key string) ([]byte, error)
} }
type Downloader interface { type Grib interface {
Download(ctx context.Context) Update(ctx context.Context) error
} }

View file

@ -1,10 +1,22 @@
package service package service
import (
"context"
)
type Service struct { type Service struct {
redis Redis redis Redis
downloader Downloader downloader Downloader
} }
func New() *Service { func New(redis Redis, downloader Downloader) *Service {
return &Service{} return &Service{
redis: redis,
downloader: downloader,
}
}
// DownloadWeatherData downloads weather forecast data using the configured downloader
func (s *Service) DownloadWeatherData(ctx context.Context) error {
return s.downloader.Download(ctx)
} }