From c378ed0a87e534f712ceeace92143b3dc0d0c192 Mon Sep 17 00:00:00 2001 From: Maksym Pavlenko Date: Sun, 6 Jan 2019 21:36:42 -0800 Subject: [PATCH] Code style fixes --- .golangci.yml | 9 +++-- cmd/app/main.go | 4 +-- pkg/api/api.go | 9 +++-- pkg/builders/vimeo.go | 25 +++++++------- pkg/builders/youtube.go | 18 +++++----- pkg/config/config.go | 6 ++-- pkg/config/config_test.go | 12 +++---- pkg/feeds/feeds.go | 16 ++++----- pkg/feeds/feeds_test.go | 4 +-- pkg/feeds/id_gen.go | 4 +-- pkg/handler/handler.go | 16 ++++----- pkg/stats/redis.go | 4 +-- pkg/stats/redis_test.go | 3 +- pkg/storage/dynamo.go | 2 +- pkg/storage/pg_sql.go | 2 +- pkg/storage/storage_test.go | 65 ++++++++++++++----------------------- pkg/support/patreon.go | 2 +- pkg/support/patreon_test.go | 2 +- 18 files changed, 99 insertions(+), 104 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index bac0444..e75992c 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,9 +1,14 @@ linters: - disable-all: true presets: - bugs - unused - format - style - complexity - - performance \ No newline at end of file + - performance + disable: + - megacheck + - typecheck +issues: + exclude: + - if block ends with a return statement, so drop this else and outdent its block \ No newline at end of file diff --git a/cmd/app/main.go b/cmd/app/main.go index df05c67..ec6d2a7 100644 --- a/cmd/app/main.go +++ b/cmd/app/main.go @@ -65,12 +65,12 @@ func main() { // Builders - youtube, err := builders.NewYouTubeBuilder(cfg.YouTubeApiKey) + youtube, err := builders.NewYouTubeBuilder(cfg.YouTubeAPIKey) if err != nil { log.WithError(err).Fatal("failed to create YouTube builder") } - vimeo, err := builders.NewVimeoBuilder(ctx, cfg.VimeoApiKey) + vimeo, err := builders.NewVimeoBuilder(ctx, cfg.VimeoAPIKey) if err != nil { log.WithError(err).Fatal("failed to create Vimeo builder") } diff --git a/pkg/api/api.go b/pkg/api/api.go index 1584a4f..14e095d 100644 --- a/pkg/api/api.go +++ b/pkg/api/api.go @@ -54,23 +54,26 @@ type Metadata struct { } const ( + // DefaultFeatures represent features for Anonymous user // Page size: 50 // Format: video // Quality: high DefaultFeatures = iota + // ExtendedFeatures represent features for 1$ pledges // Max page size: 150 // Format: any // Quality: any ExtendedFeatures + // ExtendedPagination represent extended pagination feature set // Max page size: 600 // Format: any // Quality: any ExtendedPagination - // Unlimited - PodcasterFeature + // PodcasterFeatures reserved for future + PodcasterFeatures ) type CreateFeedRequest struct { @@ -81,7 +84,7 @@ type CreateFeedRequest struct { } type Identity struct { - UserId string `json:"user_id"` + UserID string `json:"user_id"` FullName string `json:"full_name"` Email string `json:"email"` ProfileURL string `json:"profile_url"` diff --git a/pkg/builders/vimeo.go b/pkg/builders/vimeo.go index 4824c20..c152f9b 100644 --- a/pkg/builders/vimeo.go +++ b/pkg/builders/vimeo.go @@ -5,12 +5,13 @@ import ( "strconv" itunes "github.com/mxpv/podcast" - "github.com/mxpv/podsync/pkg/api" - "github.com/mxpv/podsync/pkg/model" "github.com/pkg/errors" - "github.com/silentsokolov/go-vimeo" + vimeo "github.com/silentsokolov/go-vimeo" "golang.org/x/net/context" "golang.org/x/oauth2" + + "github.com/mxpv/podsync/pkg/api" + "github.com/mxpv/podsync/pkg/model" ) const ( @@ -34,15 +35,15 @@ func (v *VimeoBuilder) selectImage(p *vimeo.Pictures, q api.Quality) string { } func (v *VimeoBuilder) queryChannel(feed *model.Feed) (*itunes.Podcast, error) { - channelId := feed.ItemID + channelID := feed.ItemID - ch, resp, err := v.client.Channels.Get(channelId) + ch, resp, err := v.client.Channels.Get(channelID) if err != nil { if resp.StatusCode == http.StatusNotFound { return nil, api.ErrNotFound } - return nil, errors.Wrapf(err, "failed to query channel with channelId %s", channelId) + return nil, errors.Wrapf(err, "failed to query channel with id %q", channelID) } podcast := itunes.New(ch.Name, ch.Link, ch.Description, &ch.CreatedTime, nil) @@ -56,15 +57,15 @@ func (v *VimeoBuilder) queryChannel(feed *model.Feed) (*itunes.Podcast, error) { } func (v *VimeoBuilder) queryGroup(feed *model.Feed) (*itunes.Podcast, error) { - groupId := feed.ItemID + groupID := feed.ItemID - gr, resp, err := v.client.Groups.Get(groupId) + gr, resp, err := v.client.Groups.Get(groupID) if err != nil { if resp.StatusCode == http.StatusNotFound { return nil, api.ErrNotFound } - return nil, errors.Wrapf(err, "failed to query group with id %s", groupId) + return nil, errors.Wrapf(err, "failed to query group with id %q", groupID) } podcast := itunes.New(gr.Name, gr.Link, gr.Description, &gr.CreatedTime, nil) @@ -78,15 +79,15 @@ func (v *VimeoBuilder) queryGroup(feed *model.Feed) (*itunes.Podcast, error) { } func (v *VimeoBuilder) queryUser(feed *model.Feed) (*itunes.Podcast, error) { - userId := feed.ItemID + userID := feed.ItemID - user, resp, err := v.client.Users.Get(userId) + user, resp, err := v.client.Users.Get(userID) if err != nil { if resp.StatusCode == http.StatusNotFound { return nil, api.ErrNotFound } - return nil, errors.Wrapf(err, "failed to query user with id %s", userId) + return nil, errors.Wrapf(err, "failed to query user with id %q", userID) } podcast := itunes.New(user.Name, user.Link, user.Bio, &user.CreatedTime, nil) diff --git a/pkg/builders/youtube.go b/pkg/builders/youtube.go index 8e46b20..6c8ed8c 100644 --- a/pkg/builders/youtube.go +++ b/pkg/builders/youtube.go @@ -11,7 +11,7 @@ import ( "github.com/BrianHicks/finch/duration" itunes "github.com/mxpv/podcast" "github.com/pkg/errors" - "google.golang.org/api/youtube/v3" + youtube "google.golang.org/api/youtube/v3" "github.com/mxpv/podsync/pkg/api" "github.com/mxpv/podsync/pkg/model" @@ -64,13 +64,13 @@ func (yt *YouTubeBuilder) listChannels(linkType api.LinkType, id string) (*youtu // Cost: 3 units (call method: 1, snippet: 2) // See https://developers.google.com/youtube/v3/docs/playlists/list#part -func (yt *YouTubeBuilder) listPlaylists(id, channelId string) (*youtube.Playlist, error) { +func (yt *YouTubeBuilder) listPlaylists(id, channelID string) (*youtube.Playlist, error) { req := yt.client.Playlists.List("id,snippet") if id != "" { req = req.Id(id) } else { - req = req.ChannelId(channelId) + req = req.ChannelId(channelID) } resp, err := req.Do(yt.key) @@ -88,8 +88,8 @@ func (yt *YouTubeBuilder) listPlaylists(id, channelId string) (*youtube.Playlist // Cost: 3 units (call: 1, snippet: 2) // See https://developers.google.com/youtube/v3/docs/playlistItems/list#part -func (yt *YouTubeBuilder) listPlaylistItems(itemId string, pageToken string) ([]*youtube.PlaylistItem, string, error) { - req := yt.client.PlaylistItems.List("id,snippet").MaxResults(maxYoutubeResults).PlaylistId(itemId) +func (yt *YouTubeBuilder) listPlaylistItems(itemID string, pageToken string) ([]*youtube.PlaylistItem, string, error) { + req := yt.client.PlaylistItems.List("id,snippet").MaxResults(maxYoutubeResults).PlaylistId(itemID) if pageToken != "" { req = req.PageToken(pageToken) } @@ -331,14 +331,14 @@ func (yt *YouTubeBuilder) queryVideoDescriptions(playlistItems map[string]*youtu } // Cost: (3 units + 5 units) * X pages = 8 units per page -func (yt *YouTubeBuilder) queryItems(itemId string, feed *model.Feed, podcast *itunes.Podcast) error { +func (yt *YouTubeBuilder) queryItems(itemID string, feed *model.Feed, podcast *itunes.Podcast) error { var ( token string count int ) for { - items, pageToken, err := yt.listPlaylistItems(itemId, token) + items, pageToken, err := yt.listPlaylistItems(itemID, token) if err != nil { return err } @@ -370,7 +370,7 @@ func (yt *YouTubeBuilder) queryItems(itemId string, feed *model.Feed, podcast *i func (yt *YouTubeBuilder) Build(feed *model.Feed) (*itunes.Podcast, error) { // Query general information about feed (title, description, lang, etc) - podcast, itemId, err := yt.queryFeed(feed) + podcast, itemID, err := yt.queryFeed(feed) if err != nil { return nil, err } @@ -380,7 +380,7 @@ func (yt *YouTubeBuilder) Build(feed *model.Feed) (*itunes.Podcast, error) { feed.PageSize = maxYoutubeResults } - if err := yt.queryItems(itemId, feed, podcast); err != nil { + if err := yt.queryItems(itemID, feed, podcast); err != nil { return nil, err } diff --git a/pkg/config/config.go b/pkg/config/config.go index 9e35e8b..a416219 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -9,9 +9,9 @@ import ( const FileName = "podsync" type AppConfig struct { - YouTubeApiKey string `yaml:"youtubeApiKey"` - VimeoApiKey string `yaml:"vimeoApiKey"` - PatreonClientId string `yaml:"patreonClientId"` + YouTubeAPIKey string `yaml:"youtubeApiKey"` + VimeoAPIKey string `yaml:"vimeoApiKey"` + PatreonClientID string `yaml:"patreonClientId"` PatreonSecret string `yaml:"patreonSecret"` PatreonRedirectURL string `yaml:"patreonRedirectUrl"` PatreonWebhooksSecret string `json:"patreonWebhooksSecret"` diff --git a/pkg/config/config_test.go b/pkg/config/config_test.go index 96371a0..50c50a3 100644 --- a/pkg/config/config_test.go +++ b/pkg/config/config_test.go @@ -34,9 +34,9 @@ func TestReadYaml(t *testing.T) { cfg, err := ReadConfiguration() require.NoError(t, err) - require.Equal(t, "1", cfg.YouTubeApiKey) - require.Equal(t, "2", cfg.VimeoApiKey) - require.Equal(t, "3", cfg.PatreonClientId) + require.Equal(t, "1", cfg.YouTubeAPIKey) + require.Equal(t, "2", cfg.VimeoAPIKey) + require.Equal(t, "3", cfg.PatreonClientID) require.Equal(t, "4", cfg.PatreonSecret) require.Equal(t, "5", cfg.PostgresConnectionURL) require.Equal(t, "6", cfg.CookieSecret) @@ -68,9 +68,9 @@ func TestReadEnv(t *testing.T) { cfg, err := ReadConfiguration() require.NoError(t, err) - require.Equal(t, "11", cfg.YouTubeApiKey) - require.Equal(t, "22", cfg.VimeoApiKey) - require.Equal(t, "33", cfg.PatreonClientId) + require.Equal(t, "11", cfg.YouTubeAPIKey) + require.Equal(t, "22", cfg.VimeoAPIKey) + require.Equal(t, "33", cfg.PatreonClientID) require.Equal(t, "44", cfg.PatreonSecret) require.Equal(t, "55", cfg.PostgresConnectionURL) require.Equal(t, "66", cfg.CookieSecret) diff --git a/pkg/feeds/feeds.go b/pkg/feeds/feeds.go index 2523af4..1f06874 100644 --- a/pkg/feeds/feeds.go +++ b/pkg/feeds/feeds.go @@ -48,7 +48,7 @@ func (s Service) makeFeed(req *api.CreateFeedRequest, identity *api.Identity) (* now := time.Now().UTC() - feed.UserID = identity.UserId + feed.UserID = identity.UserID feed.FeatureLevel = identity.FeatureLevel feed.Quality = req.Quality feed.Format = req.Format @@ -71,12 +71,12 @@ func (s Service) makeFeed(req *api.CreateFeedRequest, identity *api.Identity) (* } // Generate short id - hashId, err := s.generator.Generate() + hashID, err := s.generator.Generate() if err != nil { return nil, errors.Wrap(err, "failed to generate id for feed") } - feed.HashID = hashId + feed.HashID = hashID return feed, nil } @@ -163,30 +163,30 @@ func (s Service) Downgrade(patronID string, featureLevel int) error { return nil } -type feedOption func(*Service) +type FeedOption func(*Service) //noinspection GoExportedFuncWithUnexportedType -func WithStorage(db storage) feedOption { +func WithStorage(db storage) FeedOption { return func(service *Service) { service.db = db } } //noinspection GoExportedFuncWithUnexportedType -func WithBuilder(provider api.Provider, builder builder) feedOption { +func WithBuilder(provider api.Provider, builder builder) FeedOption { return func(service *Service) { service.builders[provider] = builder } } //noinspection GoExportedFuncWithUnexportedType -func WithStats(m stats) feedOption { +func WithStats(m stats) FeedOption { return func(service *Service) { service.stats = m } } -func NewFeedService(opts ...feedOption) (*Service, error) { +func NewFeedService(opts ...FeedOption) (*Service, error) { idGen, err := NewIDGen() if err != nil { return nil, err diff --git a/pkg/feeds/feeds_test.go b/pkg/feeds/feeds_test.go index 0edb5d1..33fef22 100644 --- a/pkg/feeds/feeds_test.go +++ b/pkg/feeds/feeds_test.go @@ -45,9 +45,9 @@ func TestService_CreateFeed(t *testing.T) { Format: api.FormatVideo, } - hashId, err := s.CreateFeed(req, &api.Identity{}) + hashID, err := s.CreateFeed(req, &api.Identity{}) require.NoError(t, err) - require.NotEmpty(t, hashId) + require.NotEmpty(t, hashID) } func TestService_makeFeed(t *testing.T) { diff --git a/pkg/feeds/id_gen.go b/pkg/feeds/id_gen.go index 1083368..e643231 100644 --- a/pkg/feeds/id_gen.go +++ b/pkg/feeds/id_gen.go @@ -3,7 +3,7 @@ package feeds import ( "time" - "github.com/ventu-io/go-shortid" + shortid "github.com/ventu-io/go-shortid" ) type IDGen struct { @@ -21,4 +21,4 @@ func NewIDGen() (IDGen, error) { func (id IDGen) Generate() (string, error) { return id.sid.Generate() -} \ No newline at end of file +} diff --git a/pkg/handler/handler.go b/pkg/handler/handler.go index 810a8f4..ec61a74 100644 --- a/pkg/handler/handler.go +++ b/pkg/handler/handler.go @@ -26,7 +26,7 @@ const ( type feedService interface { CreateFeed(req *api.CreateFeedRequest, identity *api.Identity) (string, error) BuildFeed(hashID string) (*itunes.Podcast, error) - GetMetadata(hashId string) (*api.Metadata, error) + GetMetadata(hashID string) (*api.Metadata, error) Downgrade(patronID string, featureLevel int) error } @@ -59,7 +59,7 @@ func New(feed feedService, support patreonService, cfg *config.AppConfig) http.H // OAuth 2 configuration h.oauth2 = oauth2.Config{ - ClientID: cfg.PatreonClientId, + ClientID: cfg.PatreonClientID, ClientSecret: cfg.PatreonSecret, RedirectURL: cfg.PatreonRedirectURL, Scopes: []string{"users", "pledges-to-me", "my-campaign"}, @@ -132,7 +132,7 @@ func (h handler) patreonCallback(c *gin.Context) { level := h.patreon.GetFeatureLevelByID(user.Data.ID) identity := &api.Identity{ - UserId: user.Data.ID, + UserID: user.Data.ID, FullName: user.Data.Attributes.FullName, Email: user.Data.Attributes.Email, ProfileURL: user.Data.Attributes.URL, @@ -154,7 +154,7 @@ func (h handler) user(c *gin.Context) { } c.JSON(http.StatusOK, gin.H{ - "user_id": identity.UserId, + "user_id": identity.UserID, "feature_level": identity.FeatureLevel, "full_name": identity.FullName, }) @@ -179,23 +179,23 @@ func (h handler) create(c *gin.Context) { } // Check feature level again if user deleted pledge by still logged in - identity.FeatureLevel = h.patreon.GetFeatureLevelByID(identity.UserId) + identity.FeatureLevel = h.patreon.GetFeatureLevelByID(identity.UserID) createEventLog = createEventLog.WithFields(log.Fields{ - "user_id": identity.UserId, + "user_id": identity.UserID, "feature_level": identity.FeatureLevel, }) createEventLog.Info("creating feed") - hashId, err := h.feed.CreateFeed(req, identity) + hashID, err := h.feed.CreateFeed(req, identity) if err != nil { createEventLog.WithError(err).Error("failed to create new feed") c.JSON(internalError(err)) return } - c.JSON(http.StatusOK, gin.H{"id": hashId}) + c.JSON(http.StatusOK, gin.H{"id": hashID}) } func (h handler) getFeed(c *gin.Context) { diff --git a/pkg/stats/redis.go b/pkg/stats/redis.go index 95783ea..56ae28e 100644 --- a/pkg/stats/redis.go +++ b/pkg/stats/redis.go @@ -79,8 +79,8 @@ func (r RedisStats) Close() error { return r.client.Close() } -func NewRedisStats(redisUrl string) (*RedisStats, error) { - opts, err := redis.ParseURL(redisUrl) +func NewRedisStats(redisURL string) (*RedisStats, error) { + opts, err := redis.ParseURL(redisURL) if err != nil { return nil, err } diff --git a/pkg/stats/redis_test.go b/pkg/stats/redis_test.go index 7465d03..e7174ae 100644 --- a/pkg/stats/redis_test.go +++ b/pkg/stats/redis_test.go @@ -1,8 +1,9 @@ package stats import ( - "github.com/stretchr/testify/require" "testing" + + "github.com/stretchr/testify/require" ) const metric = "downloads" diff --git a/pkg/storage/dynamo.go b/pkg/storage/dynamo.go index 0319038..028f827 100644 --- a/pkg/storage/dynamo.go +++ b/pkg/storage/dynamo.go @@ -276,7 +276,7 @@ func (d Dynamo) Downgrade(userID string, featureLevel int) error { KeyConditionExpression: keyConditionExpression.KeyCondition(), ExpressionAttributeNames: keyConditionExpression.Names(), ExpressionAttributeValues: keyConditionExpression.Values(), - Select: aws.String(dynamodb.SelectAllProjectedAttributes), + Select: aws.String(dynamodb.SelectAllProjectedAttributes), } var keys []map[string]*dynamodb.AttributeValue diff --git a/pkg/storage/pg_sql.go b/pkg/storage/pg_sql.go index b666ec2..d516dc5 100644 --- a/pkg/storage/pg_sql.go +++ b/pkg/storage/pg_sql.go @@ -61,4 +61,4 @@ CREATE INDEX IF NOT EXISTS feeds_user_id_idx ON feeds(user_id); COMMIT; END; -` \ No newline at end of file +` diff --git a/pkg/storage/storage_test.go b/pkg/storage/storage_test.go index fc8fede..6c9d1a9 100644 --- a/pkg/storage/storage_test.go +++ b/pkg/storage/storage_test.go @@ -51,6 +51,18 @@ var ( CreatedAt: time.Now().UTC(), LastAccess: time.Now().UTC(), } + + testDowngradePledge = &model.Feed{ + HashID: "123456", + UserID: "123456", + ItemID: "123456", + Provider: api.ProviderVimeo, + LinkType: api.LinkTypeGroup, + PageSize: 200, + Quality: api.QualityLow, + Format: api.FormatAudio, + FeatureLevel: api.ExtendedFeatures, + } ) func runStorageTests(t *testing.T, createFn func(t *testing.T) storage) { @@ -118,25 +130,13 @@ func testGetMetadata(t *testing.T, storage storage) { } func testDowngradeToDefaultFeatures(t *testing.T, storage storage) { - feed := &model.Feed{ - HashID: "123456", - UserID: "123456", - ItemID: "123456", - Provider: api.ProviderVimeo, - LinkType: api.LinkTypeGroup, - PageSize: 200, - Quality: api.QualityLow, - Format: api.FormatAudio, - FeatureLevel: api.ExtendedFeatures, - } - - err := storage.SaveFeed(feed) + err := storage.SaveFeed(testDowngradePledge) require.NoError(t, err) - err = storage.Downgrade(feed.UserID, api.DefaultFeatures) + err = storage.Downgrade(testDowngradePledge.UserID, api.DefaultFeatures) require.NoError(t, err) - downgraded, err := storage.GetFeed(feed.HashID) + downgraded, err := storage.GetFeed(testDowngradePledge.HashID) require.NoError(t, err) require.Equal(t, 50, downgraded.PageSize) @@ -146,30 +146,18 @@ func testDowngradeToDefaultFeatures(t *testing.T, storage storage) { } func testDowngradeToExtendedFeatures(t *testing.T, storage storage) { - feed := &model.Feed{ - HashID: "123456", - UserID: "123456", - ItemID: "123456", - Provider: api.ProviderVimeo, - LinkType: api.LinkTypeGroup, - PageSize: 500, - Quality: api.QualityLow, - Format: api.FormatAudio, - FeatureLevel: api.ExtendedFeatures, - } - - err := storage.SaveFeed(feed) + err := storage.SaveFeed(testDowngradePledge) require.NoError(t, err) - err = storage.Downgrade(feed.UserID, api.ExtendedFeatures) + err = storage.Downgrade(testDowngradePledge.UserID, api.ExtendedFeatures) require.NoError(t, err) - downgraded, err := storage.GetFeed(feed.HashID) + downgraded, err := storage.GetFeed(testDowngradePledge.HashID) require.NoError(t, err) require.Equal(t, 150, downgraded.PageSize) - require.Equal(t, feed.Quality, downgraded.Quality) - require.Equal(t, feed.Format, downgraded.Format) + require.Equal(t, testDowngradePledge.Quality, downgraded.Quality) + require.Equal(t, testDowngradePledge.Format, downgraded.Format) require.Equal(t, api.ExtendedFeatures, downgraded.FeatureLevel) } @@ -207,14 +195,7 @@ func testAddPledge(t *testing.T, storage storage) { pledge, err := storage.GetPledge(strconv.FormatInt(testPledge.PatronID, 10)) require.NoError(t, err) - require.Equal(t, testPledge.PledgeID, pledge.PledgeID) - require.Equal(t, testPledge.PatronID, pledge.PatronID) - require.Equal(t, testPledge.CreatedAt.Unix(), pledge.CreatedAt.Unix()) - require.Equal(t, testPledge.DeclinedSince.Unix(), pledge.DeclinedSince.Unix()) - require.Equal(t, testPledge.AmountCents, pledge.AmountCents) - require.Equal(t, testPledge.TotalHistoricalAmountCents, pledge.TotalHistoricalAmountCents) - require.Equal(t, testPledge.OutstandingPaymentAmountCents, pledge.OutstandingPaymentAmountCents) - require.Equal(t, testPledge.IsPaused, pledge.IsPaused) + compareWithTestPledge(t, pledge) } func testGetPledge(t *testing.T, storage storage) { @@ -224,6 +205,10 @@ func testGetPledge(t *testing.T, storage storage) { pledge, err := storage.GetPledge(strconv.FormatInt(testPledge.PatronID, 10)) require.NoError(t, err) + compareWithTestPledge(t, pledge) +} + +func compareWithTestPledge(t *testing.T, pledge *model.Pledge) { require.Equal(t, testPledge.PledgeID, pledge.PledgeID) require.Equal(t, testPledge.PatronID, pledge.PatronID) require.Equal(t, testPledge.CreatedAt.Unix(), pledge.CreatedAt.Unix()) diff --git a/pkg/support/patreon.go b/pkg/support/patreon.go index be3197d..c011380 100644 --- a/pkg/support/patreon.go +++ b/pkg/support/patreon.go @@ -113,7 +113,7 @@ func (h Patreon) GetFeatureLevelByID(patronID string) (level int) { } if patronID == creatorID { - level = api.PodcasterFeature + level = api.PodcasterFeatures return } diff --git a/pkg/support/patreon_test.go b/pkg/support/patreon_test.go index 6c820d9..af2c287 100644 --- a/pkg/support/patreon_test.go +++ b/pkg/support/patreon_test.go @@ -103,7 +103,7 @@ func TestGetFeatureLevel(t *testing.T) { hook := Patreon{db: storage} - require.Equal(t, api.PodcasterFeature, hook.GetFeatureLevelByID(creatorID)) + require.Equal(t, api.PodcasterFeatures, hook.GetFeatureLevelByID(creatorID)) require.Equal(t, api.DefaultFeatures, hook.GetFeatureLevelByID("xyz")) require.Equal(t, api.ExtendedPagination, hook.GetFeatureLevelByID(pledge.Relationships.Patron.Data.ID)) }