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 }