core/internal/adapter/http_tw.go

42 lines
896 B
Go

package adapter
import (
"context"
"fmt"
"gitea.dwysokinski.me/twhelp/corev3/internal/domain"
"gitea.dwysokinski.me/twhelp/corev3/internal/tw"
)
type TWHTTP struct {
client *tw.Client
}
func NewTWHTTP(client *tw.Client) *TWHTTP {
return &TWHTTP{client: client}
}
func (t *TWHTTP) GetOpenServers(ctx context.Context, baseURL string) (domain.BaseServers, error) {
servers, err := t.client.GetOpenServers(ctx, baseURL)
if err != nil {
return nil, err
}
return t.convertServersToDomain(servers)
}
func (t *TWHTTP) convertServersToDomain(servers []tw.Server) (domain.BaseServers, error) {
res := make(domain.BaseServers, 0, len(servers))
for _, s := range servers {
converted, err := domain.NewBaseServer(s.Key, s.URL, true)
if err != nil {
return nil, fmt.Errorf("couldn't construct domain.BaseServer: %w", err)
}
res = append(res, converted)
}
return res, nil
}