1
0
mirror of https://github.com/mxpv/podsync.git synced 2024-05-11 05:55:04 +00:00
Files
mxpv-podsync/pkg/builder/builder.go
2021-10-09 17:14:35 -07:00

28 lines
609 B
Go

package builder
import (
"context"
"github.com/pkg/errors"
"github.com/mxpv/podsync/pkg/config"
"github.com/mxpv/podsync/pkg/model"
)
type Builder interface {
Build(ctx context.Context, cfg *config.Feed) (*model.Feed, error)
}
func New(ctx context.Context, provider model.Provider, key string) (Builder, error) {
switch provider {
case model.ProviderYoutube:
return NewYouTubeBuilder(key)
case model.ProviderVimeo:
return NewVimeoBuilder(ctx, key)
case model.ProviderSoundcloud:
return NewSoundcloudBuilder()
default:
return nil, errors.Errorf("unsupported provider %q", provider)
}
}