diff options
| author | Paul Buetow <paul@buetow.org> | 2024-05-15 21:01:14 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-05-15 21:01:14 +0300 |
| commit | 51ebb1e131818f9b23dd25dea5be841a90476d50 (patch) | |
| tree | 83d7d81fb6528a37177f7f17ebb112beaee9325c /internal | |
| parent | b97854c8ec2665887121d773ab994a09ca768adb (diff) | |
initial merge operation
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/config/server/server.go | 5 | ||||
| -rw-r--r-- | internal/easyhttp/easyhttp.go | 46 | ||||
| -rw-r--r-- | internal/server/handle/handle.go | 10 |
3 files changed, 60 insertions, 1 deletions
diff --git a/internal/config/server/server.go b/internal/config/server/server.go index 6778b1b..0870950 100644 --- a/internal/config/server/server.go +++ b/internal/config/server/server.go @@ -4,6 +4,7 @@ import ( "fmt" "log" "os" + "strings" "codeberg.org/snonux/gos/internal/config" ) @@ -39,3 +40,7 @@ func New(configFile string) (ServerConfig, error) { return conf, nil } + +func (conf ServerConfig) Partners() []string { + return strings.Split(conf.Partner, ",") +} diff --git a/internal/easyhttp/easyhttp.go b/internal/easyhttp/easyhttp.go new file mode 100644 index 0000000..aa405e6 --- /dev/null +++ b/internal/easyhttp/easyhttp.go @@ -0,0 +1,46 @@ +package easyhttp + +import ( + "io" + "net/http" + "encoding/json" +) + +func Get(uri, apiKey string) ([]byte, error) { + var ( + client = &http.Client{} + bytes []byte + ) + + req, err := http.NewRequest("GET", uri, nil) + if err != nil { + return bytes, err + } + + req.Header.Set("X-API-KEY", apiKey) + + resp, err := client.Do(req) + if err != nil { + return bytes, err + } + defer resp.Body.Close() + + bytes, err = io.ReadAll(resp.Body) + if err != nil { + return bytes, err + } + + return bytes, nil +} + +func GetFromJson[T any](uri, apiKey string) (T, error) { + var data T + + bytes, err := Get(uri, apiKey) + if err != nil { + return data, err + } + + err = json.Unmarshal(bytes, &data) + return data, err +} diff --git a/internal/server/handle/handle.go b/internal/server/handle/handle.go index 55f7b3e..011e31c 100644 --- a/internal/server/handle/handle.go +++ b/internal/server/handle/handle.go @@ -3,12 +3,15 @@ package handle import ( "fmt" "io" + "log" "net/http" "os" "regexp" "time" "codeberg.org/snonux/gos/internal" + "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" ) @@ -72,7 +75,12 @@ func Get(w http.ResponseWriter, r *http.Request, dataDir string) error { return nil } -func Merge(w http.ResponseWriter, r *http.Request, dataDir string) error { +func Merge(w http.ResponseWriter, r *http.Request, conf server.ServerConfig) error { + for _, partner := range conf.Partners() { + uri := fmt.Sprintf("%s/list", partner) + data, err := easyhttp.Get(uri, conf.ApiKey) + log.Println(string(data), err) + } return nil } |
