ghostguild-org/server/utils
Jennie Robinson Faber 5023fb14ad fix(server): treat contributionAmount as cadence-unit (drop ×12)
ContributionAmountField now emits cadence-unit values (180 for $180/yr,
15 for $15/mo). Server endpoints were still multiplying annual by 12,
which would have charged $2160/yr instead of $180/yr after the form
ports in Tasks 2–3.

- helcim/subscription.post.js: recurringAmount = contributionAmount
  (no more × 12 for annual)
- members/update-contribution.post.js: same drop in both Case 1
  (free→paid) and Case 3 (paid→paid)
- slack.ts notifyNewMember: new positional `cadence` param so the
  Slack notification suffix renders /yr or /mo instead of hardcoded
  /month; all three call sites updated to pass member.billingCadence
- tests updated to match the new contract:
  - helcim-subscription.test.js: annual tests now send the cadence-
    unit amount (180, 600) and expect the same recurringAmount
  - update-contribution.test.js: annual Case 1 and Case 3 tests
    updated likewise
2026-05-23 15:37:52 +01:00
..
activityLog.js feat: board post + channel API routes 2026-04-14 16:25:42 +01:00
adminAlerts.js chore(slack): remove dead invite path, archive checkSlackJoins poller 2026-04-29 12:34:21 +01:00
auth.js refactor(auth): rename paymentBridge → signupBridge 2026-04-30 15:31:54 +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 refactor(helcim): normalize listHelcimCustomerCards return shape 2026-04-27 19:16:32 +01:00
loadEvent.js fix(events): enforce series-pass, hidden, and deadline gates 2026-04-20 19:03:34 +01:00
loadSeries.js refactor(series): extract loadPublicSeries helper 2026-04-27 19:16:32 +01:00
magicLink.js refactor(env): unify required-env validation through useRuntimeConfig 2026-04-26 14:47:02 +01:00
memberNumber.js Huge bunch of UI/UX improvements and tweaks! 2026-04-06 16:17:12 +01:00
mongoose.js fix(mongoose): fall back to process.env when run outside Nitro 2026-05-01 10:46:47 +01:00
og-cache.js feat(seo): site meta composable + Open Graph image generation 2026-05-21 17:50:34 +01:00
og-render.js feat(seo): site meta composable + Open Graph image generation 2026-05-21 17:50:34 +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(oidc): disable devInteractions so custom interactions.url runs in dev 2026-04-29 19:59:49 +01:00
outline.js Member/Ecology revamp. 2026-04-14 09:25:09 +01:00
payments.js refactor(env): unify required-env validation through useRuntimeConfig 2026-04-26 14:47:02 +01:00
paymentTypes.js refactor(payments): extract PAYMENT_METADATA_TYPE constants 2026-04-27 19:16:32 +01:00
rateLimit.js refactor(rate-limit): delegate auth limiting to handlers, add dev bypass 2026-04-27 19:18:34 +01:00
resend.js feat(emails): render event reminders in event displayTimezone 2026-05-19 10:47:54 +01:00
schemas.js feat(admin-tags): POST /api/admin/tags to create craft/cooperative tags 2026-05-21 17:51:01 +01:00
slack.ts fix(server): treat contributionAmount as cadence-unit (drop ×12) 2026-05-23 15:37:52 +01:00
slackAccess.js feat(slack): autoFlagPreExistingSlackAccess helper 2026-04-29 12:13:59 +01:00
syncWikiArticles.js Member/Ecology revamp. 2026-04-14 09:25:09 +01:00
tickets.js fix(events): gate members-only events in calculateTicketPrice 2026-04-20 20:12:24 +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