summaryrefslogtreecommitdiff
path: root/internal/server/handler
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-08-12 09:57:27 +0300
committerPaul Buetow <paul@buetow.org>2024-08-12 09:57:27 +0300
commitc3b3e09fe8da976d055b291887cf4ceba6e2048e (patch)
tree175bccedc77ad4495ec7a10edb9f27c1066be341 /internal/server/handler
parent3e50142dc3932acb618a0bc030e8530c6c1e736c (diff)
move remote merges to reposotory
Diffstat (limited to 'internal/server/handler')
-rw-r--r--internal/server/handler/handler.go55
1 files changed, 3 insertions, 52 deletions
diff --git a/internal/server/handler/handler.go b/internal/server/handler/handler.go
index 603e37c..fa1022e 100644
--- a/internal/server/handler/handler.go
+++ b/internal/server/handler/handler.go
@@ -2,14 +2,12 @@ package handler
import (
"context"
- "errors"
"fmt"
"io"
"net/http"
"regexp"
"codeberg.org/snonux/gos/internal/config/server"
- "codeberg.org/snonux/gos/internal/easyhttp"
"codeberg.org/snonux/gos/internal/server/repository"
"codeberg.org/snonux/gos/internal/types"
)
@@ -73,57 +71,10 @@ func (h Handler) Get(w http.ResponseWriter, r *http.Request) error {
}
func (h Handler) Merge(ctx context.Context, w http.ResponseWriter, r *http.Request) error {
- var errs []error
-
- for _, partner := range h.conf.Partners() {
- if err := h.mergeFromPartner(ctx, partner); err != nil {
- errs = append(errs, err)
- }
- }
-
- if len(errs) > 0 {
- return errors.Join(errs...)
- }
-
- fmt.Fprint(w, "Okiedokie")
- return nil
-}
-
-func (h Handler) mergeFromPartner(ctx context.Context, partner string) error {
- var (
- errs []error
- uri = fmt.Sprintf("%s/list", partner)
- repo = repository.Instance(h.conf)
- pairs []repository.EntryPair
- )
-
- if err := easyhttp.GetData(ctx, uri, h.conf.APIKey, &pairs); err != nil {
+ if err := repository.Instance(h.conf).MergeRemotely(ctx); err != nil {
return err
}
- for _, pair := range pairs {
- if repo.HasSameEntry(pair) {
- continue
- }
-
- var (
- ent types.Entry
- uri = fmt.Sprintf("%s/get?id=%s", partner, pair.ID)
- )
-
- if err := easyhttp.GetData(ctx, uri, h.conf.APIKey, &ent); err != nil {
- errs = append(errs, err)
- continue
- }
-
- // In theory, this should never happen
- if pair.ID != ent.ID {
- errs = append(errs, fmt.Errorf("pair ID %s does not match entry id %s", pair.ID, ent.ID))
- continue
- }
-
- errs = append(errs, repo.Merge(ent))
- }
-
- return errors.Join(errs...)
+ fmt.Fprint(w, "Repository merge went well")
+ return nil
}