1
0
mirror of https://github.com/mxpv/podsync.git synced 2024-05-11 05:55:04 +00:00

Detect feature level

This commit is contained in:
Maksym Pavlenko
2017-11-02 17:28:03 -07:00
parent 0595068feb
commit b96f484bae
3 changed files with 12 additions and 11 deletions

View File

@@ -95,17 +95,18 @@ func (h handler) patreonCallback(c *gin.Context) {
if user.Data.ID == creatorID { if user.Data.ID == creatorID {
level = api.PodcasterFeature level = api.PodcasterFeature
} else { } else {
amount := 0 pledge, err := h.hook.FindPledge(user.Data.ID)
for _, item := range user.Included.Items { if err != nil {
pledge, ok := item.(*patreon.Pledge) log.Printf("! can't find pledge for user %s: %v", user.Data.ID, err)
if ok { } else {
amount += pledge.Attributes.AmountCents // Check pledge is valid
if pledge.DeclinedSince.IsZero() && !pledge.IsPaused {
// Check the amount of pledge
if pledge.AmountCents >= 100 {
level = api.ExtendedFeatures
}
} }
} }
if amount >= 100 {
level = api.ExtendedFeatures
}
} }
identity := &api.Identity{ identity := &api.Identity{

View File

@@ -81,7 +81,7 @@ func (h Handler) Handle(pledge *patreon.Pledge, event string) error {
func (h Handler) FindPledge(patronID string) (*models.Pledge, error) { func (h Handler) FindPledge(patronID string) (*models.Pledge, error) {
p := &models.Pledge{} p := &models.Pledge{}
return p, h.db.Model(p).Where("pledge_id = ?", patronID).Limit(1).Select() return p, h.db.Model(p).Where("patron_id = ?", patronID).Limit(1).Select()
} }
func NewHookHandler(db *pg.DB) *Handler { func NewHookHandler(db *pg.DB) *Handler {

View File

@@ -59,7 +59,7 @@ func TestFindPledge(t *testing.T) {
err := hook.Handle(pledge, patreon.EventCreatePledge) err := hook.Handle(pledge, patreon.EventCreatePledge)
require.NoError(t, err) require.NoError(t, err)
res, err := hook.FindPledge(pledge.ID) res, err := hook.FindPledge("67890")
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, res.AmountCents, pledge.Attributes.AmountCents) require.Equal(t, res.AmountCents, pledge.Attributes.AmountCents)
} }