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:
@@ -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 {
|
||||||
|
Reference in New Issue
Block a user