summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/config/server/server.go7
-rw-r--r--internal/easyhttp/easyhttp.go1
-rw-r--r--internal/server/cron/cron.go15
-rw-r--r--internal/server/repository/repository.go7
4 files changed, 21 insertions, 9 deletions
diff --git a/internal/config/server/server.go b/internal/config/server/server.go
index 6008ba9..109099e 100644
--- a/internal/config/server/server.go
+++ b/internal/config/server/server.go
@@ -29,7 +29,6 @@ func New(configFile string) (ServerConfig, error) {
conf.DataDir = config.EnvToStr("GOS_DATA_DIR", conf.DataDir, "data")
conf.EmailTo = config.EnvToStr("GOS_EMAIL_TO", conf.EmailTo)
conf.EmailFrom = config.EnvToStr("GOS_EMAIL_FROM", conf.EmailFrom)
- conf.CRONMergeIntervalS = config.EnvToInt("GOS_CRON_MERGE_INTERVAL", conf.CRONMergeIntervalS, 3600)
conf.SMTPServer = config.EnvToStr("GOS_SMTP_SERVER", conf.SMTPServer, func() string {
hostname, err := os.Hostname()
@@ -39,9 +38,13 @@ func New(configFile string) (ServerConfig, error) {
return fmt.Sprintf("%s:25", hostname)
})
+ conf.CRONMergeIntervalS = config.EnvToInt("GOS_CRON_MERGE_INTERVAL", 3600)
return conf, nil
}
func (conf ServerConfig) Partners() []string {
- return strings.Split(conf.Partner, ",")
+ if partners := strings.Split(conf.Partner, ","); partners[0] != "" {
+ return partners
+ }
+ return []string{}
}
diff --git a/internal/easyhttp/easyhttp.go b/internal/easyhttp/easyhttp.go
index 2968454..3f4b367 100644
--- a/internal/easyhttp/easyhttp.go
+++ b/internal/easyhttp/easyhttp.go
@@ -40,6 +40,7 @@ func Get(ctx context.Context, uri, apiKey string) ([]byte, error) {
// Get data from JSON
func GetData[T any](ctx context.Context, uri, apiKey string, data *T) error {
+ log.Println("Getting data from ", uri)
bytes, err := Get(ctx, uri, apiKey)
if err != nil {
return err
diff --git a/internal/server/cron/cron.go b/internal/server/cron/cron.go
index bdf7fae..4ec3107 100644
--- a/internal/server/cron/cron.go
+++ b/internal/server/cron/cron.go
@@ -6,22 +6,25 @@ import (
"time"
config "codeberg.org/snonux/gos/internal/config/server"
- "codeberg.org/snonux/gos/internal/server/handler"
+ "codeberg.org/snonux/gos/internal/server/repository"
)
-func Start(ctx context.Context, conf config.ServerConfig, hand handler.Handler) error {
+func Start(ctx context.Context, conf config.ServerConfig) error {
go func() {
- helloTicker := time.NewTicker(10 * time.Second)
- mergeTicker := time.NewTicker(time.Duration(conf.CRONMergeIntervalS) * time.Second)
+ helloTicker := time.NewTicker(time.Hour)
+ mergeTicker := time.NewTicker(time.Second * time.Duration(conf.CRONMergeIntervalS))
for {
select {
case <-ctx.Done():
return
case <-helloTicker.C:
- log.Println("Hello ticker ticked")
+ log.Println("CRON hello ticker ticked")
case <-mergeTicker.C:
- log.Println("CRON merge ticker ticked")
+ log.Println("CRON ticker initiating remote merge operation")
+ if err := repository.Instance(conf).MergeRemotely(ctx); err != nil {
+ log.Println(err)
+ }
}
}
}()
diff --git a/internal/server/repository/repository.go b/internal/server/repository/repository.go
index c81d4f9..b6a1edb 100644
--- a/internal/server/repository/repository.go
+++ b/internal/server/repository/repository.go
@@ -187,7 +187,12 @@ func (r Repository) Merge(otherEnt types.Entry) error {
func (r Repository) MergeRemotely(ctx context.Context) error {
var errs []error
- for _, partner := range r.conf.Partners() {
+ partners := r.conf.Partners()
+ if len(partners) == 0 {
+ return fmt.Errorf("no parter for remote merge operation configured")
+ }
+
+ for _, partner := range partners {
if err := r.mergeRemotelyFromPartner(ctx, partner); err != nil {
errs = append(errs, err)
}