Add pledge query

This commit is contained in:
Maksym Pavlenko
2017-11-02 17:13:01 -07:00
parent 2abcbe32d9
commit 0595068feb
3 changed files with 18 additions and 1 deletions
+1 -1
View File
@@ -2,7 +2,7 @@ BEGIN;
CREATE TABLE IF NOT EXISTS pledges (
pledge_id BIGSERIAL PRIMARY KEY,
patron_id BIGINT NOT NULL ,
patron_id BIGINT NOT NULL UNIQUE,
created_at TIMESTAMPTZ NOT NULL,
declined_since TIMESTAMPTZ NULL,
amount_cents INT NOT NULL,
+5
View File
@@ -79,6 +79,11 @@ 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()
}
func NewHookHandler(db *pg.DB) *Handler {
return &Handler{db: db}
}
+12
View File
@@ -52,6 +52,18 @@ func TestDelete(t *testing.T) {
require.NoError(t, err)
}
func TestFindPledge(t *testing.T) {
pledge := createPledge()
hook := createHandler(t)
err := hook.Handle(pledge, patreon.EventCreatePledge)
require.NoError(t, err)
res, err := hook.FindPledge(pledge.ID)
require.NoError(t, err)
require.Equal(t, res.AmountCents, pledge.Attributes.AmountCents)
}
func createHandler(t *testing.T) *Handler {
opts, err := pg.ParseURL("postgres://postgres:@localhost/podsync?sslmode=disable")
if err != nil {