Validation: Sponsor blast endpoint + pitch engine (#325)
Ticket
basketball-api#325 — Board item #770. Blast endpoint with pitch engine and rate limiting.
Environment
Prod: basketball-api pod in k8s namespace basketball-api. Gmail OAuth via westsidebasktball@gmail.com. Verified 2026-04-06.
Checks
| # | Criterion | How to Verify | Result | Evidence |
|---|---|---|---|---|
| 1 | Test email sends to draneylucas@gmail.com | blast_sponsors(test_email=...) | PASS | "sent: 1, failed: 0" — received on phone, Westside branding confirmed |
| 2 | Test email to Marcus for approval | blast_sponsors(test_email=marcusdraney23@gmail.com) | PASS | "sent: 1, failed: 0" — Marcus approved in GroupMe |
| 3 | Full blast sends to all prospects | blast_sponsors() with no test_email | PASS | "Sent: 44, Failed: 0" — all 44 sponsors emailed |
| 4 | Status updated to contacted | DB query after blast | PASS | All 44 sponsors moved from prospect to contacted |
| 5 | Universal pitch content correct | get_pitch() preview | PASS | Nonprofit + EIN + 150K IG views pitch confirmed |
| 6 | Template includes website + IG links | Grep compiled HTML | PASS | westsidekingsandqueens.tail5b443a.ts.net and @westsidekingsandqueens present |
| 7 | Real sponsor responded | Gmail inbox check | PASS | Raising Cane's (Chloe Greep) responded within 24 hours |
Verdict
PASS — 44 emails sent in prod, 23 delivered, 1 response received (Raising Cane's). Full pipeline validated end-to-end.