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 {
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{

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) {
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 {

View File

@@ -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)
}