Skip to content

Add template republish - #13

Merged
alexpate merged 1 commit into
feat/google-loyalty-designfrom
feat/template-republish
Oct 9, 2026
Merged

alexpate merged 1 commit into
feat/google-loyalty-designfrom
feat/template-republish

Conversation

@alexpate

@alexpate alexpate commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Stacked on #12 (feat/google-loyalty-design): both touch the generated files. GitHub retargets this to main when #12 merges.

What

  • templates.republish(id, options?) and templates.retrieveRepublish(id, republishId) for the new platform endpoints. republish sends an Idempotency-Key (generated, or options.idempotencyKey).
  • TemplateRepublish and TemplateRepublishedEvent types.
  • Regenerated from the platform spec: PassDelivery.apple.retrying / google.retrying, template.republished in PASSMINT_EVENT_TYPES.
  • A 429 republish_in_progress is thrown as PassmintRateLimitError straight away. The client never retries 429s, which matters because this one can last minutes. Pinned by a test.

Why

lin.ky edits venue templates and needs those edits to reach cards already issued.

Testing

lint, type-check, test (incl. 0.4.0 compat types), build, attw, publint, generate:check, test:ecosystem. openapi.json is byte-identical to the platform's origin/main. Event-type pins in unit tests, the ecosystem smoke tests and the mock server now include template.republished.

Compatibility

Minor, additive. Call shapes from 0.5.0/0.6.0 are unchanged, and PassmintEvent still describes pass events. Things to know (all in the changeset):

  • PassmintEventType / Event['type'] gain template.republished, so exhaustive switches will flag it.
  • PASSMINT_EVENT_TYPES gains an entry at runtime; code subscribing with [...PASSMINT_EVENT_TYPES] will receive it.
  • template.republished is only sent to endpoints subscribed by name, never "*".
  • Server side: pass.update_failed now fires only for permanent failures or exhausted retries; delivery.<platform>.retrying is new.

Release

Publish only after the platform deploy that serves the endpoints is live. No merge or publish without Alex.

@alexpate
alexpate marked this pull request as ready for review October 9, 2026 13:21
@alexpate
alexpate merged commit f3403d6 into feat/google-loyalty-design Oct 9, 2026
6 checks passed
@alexpate alexpate mentioned this pull request Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant