ghostguild-org/server/utils
Jennie Robinson Faber be7145f96c feat(payments): add upsertPaymentFromHelcim helper with idempotent insert
Takes a Member doc + a normalized Helcim transaction and inserts a
Payment row if helcimTransactionId is unseen. Maps helcim status
paid→success, refunded→refunded, failed→failed; skips 'other'.

opts.paymentType overrides the cadence fallback for mid-flight cadence
changes. opts.sendConfirmation triggers a Resend payment-confirmation
email ONLY on new inserts — swallows send failures so email trouble
cannot break the upstream payment flow.

The Resend template lives in server/emails/paymentConfirmation.js. It
is CRA-safe (charity name + 'not an official donation receipt / tax
receipts available later in 2026' disclaimer) so it can be used in
either Task 8 branch without copy changes.
2026-04-20 13:15:38 +01:00
..
activityLog.js feat: board post + channel API routes 2026-04-14 16:25:42 +01:00
adminAlerts.js feat(admin): add restore dismissed alerts flow 2026-04-08 12:22:35 +01:00
auth.js feat(events): guest accounts for public event registration 2026-04-16 21:23:31 +01:00
checkSlackJoins.js feat(slack): add background job to detect Slack workspace joins 2026-04-09 22:32:48 +01:00
escapeHtml.js Implement OWASP ASVS L1 security remediation (Phases 0-2) 2026-03-01 12:53:18 +00:00
escapeRegex.js refactor: extract escapeRegex and validateTagSlugs server utils 2026-04-09 23:51:56 +01:00
helcim.js fix(billing): exclude verify + zero-amount rows from payment history 2026-04-19 18:32:08 +01:00
memberNumber.js Huge bunch of UI/UX improvements and tweaks! 2026-04-06 16:17:12 +01:00
mongoose.js Enhance application structure: Add runtime configuration for environment variables, integrate new dependencies for Cloudinary and UI components, and refactor member management features including improved forms and member dashboard. Update styles and layout for better user experience. 2025-08-27 16:49:51 +01:00
oidc-mongodb-adapter.ts Add OIDC provider for Outline wiki SSO 2026-03-01 15:46:01 +00:00
oidc-provider.ts fix(auth): auto-submit OIDC logout form to eliminate xsrf desync 2026-04-15 18:26:51 +01:00
outline.js Member/Ecology revamp. 2026-04-14 09:25:09 +01:00
payments.js feat(payments): add upsertPaymentFromHelcim helper with idempotent insert 2026-04-20 13:15:38 +01:00
resend.js feat(events): guest accounts for public event registration 2026-04-16 21:23:31 +01:00
schemas.js feat(validation): rename contributionTier → contributionAmount in Zod schemas 2026-04-19 18:16:47 +01:00
slack.ts feat(server): rename contributionTier → contributionAmount in routes + utils 2026-04-19 18:44:29 +01:00
syncWikiArticles.js Member/Ecology revamp. 2026-04-14 09:25:09 +01:00
tickets.js refactor(events): gate member benefits on hasMemberAccess 2026-04-18 17:06:17 +01:00
validateBody.js Add Zod validation, fix mass assignment, remove test endpoints and dead code 2026-03-01 14:02:46 +00:00
validateTagSlugs.js refactor: extract escapeRegex and validateTagSlugs server utils 2026-04-09 23:51:56 +01:00