You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
synctv/internal/provider/aggregation.go

29 lines
553 B
Go

package provider
type AggregationProviderInterface interface {
ExtractProvider(provider OAuth2Provider) (Interface, error)
Provider() OAuth2Provider
Providers() []OAuth2Provider
}
func ExtractProviders(
p AggregationProviderInterface,
providers ...OAuth2Provider,
) ([]Interface, error) {
if len(providers) == 0 {
providers = p.Providers()
}
pi := make([]Interface, len(providers))
for i, provider := range providers {
pi2, err := p.ExtractProvider(provider)
if err != nil {
return nil, err
}
pi[i] = pi2
}
return pi, nil
}