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

Implement 600 episodes feeds

This commit is contained in:
Maksym Pavlenko
2017-11-10 17:13:01 -08:00
parent 30214a65c3
commit 05a1b0f8d5
9 changed files with 230 additions and 62 deletions

View File

@@ -31,7 +31,8 @@ type feedService interface {
type patreonService interface {
Hook(pledge *patreon.Pledge, event string) error
GetFeatureLevel(patronID string) int
GetFeatureLevelByID(patronID string) int
GetFeatureLevelFromAmount(amount int) int
}
type handler struct {
@@ -93,7 +94,7 @@ func (h handler) patreonCallback(c *gin.Context) {
}
// Determine feature level
level := h.patreon.GetFeatureLevel(user.Data.ID)
level := h.patreon.GetFeatureLevelByID(user.Data.ID)
identity := &api.Identity{
UserId: user.Data.ID,
@@ -133,7 +134,7 @@ func (h handler) create(c *gin.Context) {
}
// Check feature level again if user deleted pledge by still logged in
identity.FeatureLevel = h.patreon.GetFeatureLevel(identity.UserId)
identity.FeatureLevel = h.patreon.GetFeatureLevelByID(identity.UserId)
hashId, err := h.feed.CreateFeed(req, identity)
if err != nil {
@@ -160,6 +161,8 @@ func (h handler) getFeed(c *gin.Context) {
code := http.StatusInternalServerError
if err == api.ErrNotFound {
code = http.StatusNotFound
} else if err == api.ErrQuotaExceeded {
code = http.StatusTooManyRequests
} else {
log.Printf("server error (hash id: %s): %v", hashId, err)
}
@@ -237,8 +240,16 @@ func (h handler) webhook(c *gin.Context) {
return
}
if eventName == patreon.EventDeletePledge {
if err := h.feed.Downgrade(pledge.Data.Relationships.Patron.Data.ID, api.DefaultFeatures); err != nil {
patronID := pledge.Data.Relationships.Patron.Data.ID
if eventName == patreon.EventUpdatePledge {
newLevel := h.patreon.GetFeatureLevelFromAmount(pledge.Data.Attributes.AmountCents)
if err := h.feed.Downgrade(patronID, newLevel); err != nil {
log.Printf("downgrade failed: %v", err)
return
}
} else if eventName == patreon.EventDeletePledge {
if err := h.feed.Downgrade(patronID, api.DefaultFeatures); err != nil {
log.Printf("downgrade failed: %v", err)
return
}