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

Update pledges by patron id

This commit is contained in:
Maksym Pavlenko
2017-11-14 12:31:38 -08:00
parent 1721aecaa2
commit 796130a307

View File

@@ -72,17 +72,29 @@ func (h Patreon) Hook(pledge *patreon.Pledge, event string) error {
case patreon.EventCreatePledge: case patreon.EventCreatePledge:
return h.db.Insert(obj) return h.db.Insert(obj)
case patreon.EventUpdatePledge: case patreon.EventUpdatePledge:
err := h.db.Update(obj) // Update comes with different PledgeID from Patreon, so do update by user ID
if err == pg.ErrNoRows { patronID := pledge.Relationships.Patron.Data.ID
log.Printf(
"! ignoring update for not existing pledge %s for user %s",
pledge.ID,
pledge.Relationships.Patron.Data.ID)
return nil updateColumns := []string{
"declined_since",
"amount_cents",
"total_historical_amount_cents",
"outstanding_payment_amount_cents",
"is_paused",
} }
res, err := h.db.Model(obj).Column(updateColumns...).Where("patron_id = ?patron_id").Update()
if err != nil {
log.Printf("! failed to update pledge %s for user %s: %v", pledge.ID, patronID, err)
return err return err
}
if res.RowsAffected() != 1 {
log.Printf("! unexpected number of updated rows: %d for user %s", res.RowsAffected(), patronID)
return errors.New("unexpected update result")
}
return nil
case patreon.EventDeletePledge: case patreon.EventDeletePledge:
err := h.db.Delete(obj) err := h.db.Delete(obj)
if err == pg.ErrNoRows { if err == pg.ErrNoRows {