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:
@@ -95,17 +95,18 @@ func (h handler) patreonCallback(c *gin.Context) {
|
||||
if user.Data.ID == creatorID {
|
||||
level = api.PodcasterFeature
|
||||
} else {
|
||||
amount := 0
|
||||
for _, item := range user.Included.Items {
|
||||
pledge, ok := item.(*patreon.Pledge)
|
||||
if ok {
|
||||
amount += pledge.Attributes.AmountCents
|
||||
pledge, err := h.hook.FindPledge(user.Data.ID)
|
||||
if err != nil {
|
||||
log.Printf("! can't find pledge for user %s: %v", user.Data.ID, err)
|
||||
} else {
|
||||
// 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{
|
||||
|
@@ -81,7 +81,7 @@ func (h Handler) Handle(pledge *patreon.Pledge, event string) error {
|
||||
|
||||
func (h Handler) FindPledge(patronID string) (*models.Pledge, error) {
|
||||
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 {
|
||||
|
@@ -59,7 +59,7 @@ func TestFindPledge(t *testing.T) {
|
||||
err := hook.Handle(pledge, patreon.EventCreatePledge)
|
||||
require.NoError(t, err)
|
||||
|
||||
res, err := hook.FindPledge(pledge.ID)
|
||||
res, err := hook.FindPledge("67890")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, res.AmountCents, pledge.Attributes.AmountCents)
|
||||
}
|
||||
|
Reference in New Issue
Block a user