feat: routes-b exchange-rate resilience, PAT flow, authz helper, and notification preferences#2
Closed
Themancalledpg wants to merge 77 commits into
Closed
feat: routes-b exchange-rate resilience, PAT flow, authz helper, and notification preferences#2Themancalledpg wants to merge 77 commits into
Themancalledpg wants to merge 77 commits into
Conversation
- Added new route-b endpoint to list messages for a specific invoice. - Implemented authentication and authorization checks (401/403/404). - Returns messages in chronological order as per schema. Closes davedumto#375
- Added endpoint to retrieve invoice data formatted for frontend preview. - Merges user branding settings and freelancer profile information. - Utilizes parallel database queries (Promise.all) for optimized performance. - Enforces invoice ownership verification and provides fallback branding defaults. Closes davedumto#349
…event endpoints - GET /api/routes-b/invoices/[id]/pdf — stream invoice as downloadable PDF (closes davedumto#402) - GET /api/routes-b/invoices/[id]/preview — invoice data formatted for UI preview (closes davedumto#458) - GET /api/routes-b/invoices/paid — paginated list of paid invoices (closes davedumto#451) - GET /api/routes-b/audit-log/[id] — fetch single audit event by ID (closes davedumto#457)
…pdf-download feat(routes-b): implement invoice PDF, preview, paid list, and audit event endpoints
feat: implement routes-d endpoints davedumto#331 davedumto#332 davedumto#335 davedumto#340
Implements tag removal from invoice for routes-b. Returns 204 on success, 404 if tag not applied, 403 if invoice belongs to another user, 401 if unauthenticated. Only the InvoiceTag join record is deleted; the Tag itself is preserved. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
`@/lib/prisma` does not exist in this project; the correct path is `@/lib/db`. This was causing the production build to fail with a module-not-found error. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
bank-accounts/[id], transactions/[id], and invoices/[id]/remind were using the old synchronous params pattern, breaking the Next.js 16 TypeScript build. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- pdf/route.ts: cast InvoicePDF element to DocumentProps for @react-pdf/renderer - offramp/route.ts: use WithdrawalTransaction model (Withdrawal does not exist), map transactionId→stellarTxId and reason→error, remove non-existent needsManualReview field, move Resend instantiation inside handler to avoid module-level crash when RESEND_API_KEY is not set at build time Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…e-invoice-tag-446 feat: DELETE /api/routes-b/invoices/[id]/tags/[tagId] — remove tag from invoice
…voice-remind feat(api): POST routes-d invoice payment reminder (davedumto#323)
implement api for tag deletion
implement apply a tag to an invoice
implement tag creation routes
…bhook-signature-verification [Security] Add HMAC-SHA256 Signature Verification to MoonPay Webhook
…49-452-471 feat: add PATCH handlers for routes-b and routes-d APIs
# Conflicts: # app/api/routes-b/tags/[id]/route.ts
issues solved
…b-get-endpoints-477-485-488-489
…ndpoints, and notification preferences
- profile/route.ts: remove orphan code left over from a merge that duplicated GET logic inside PATCH's catch block. - contacts/[id]/route.ts: drop the stray brace on line 79 that closed the GET handler twice. - package-lock.json: regenerate so transitive tree-sitter resolves to the version package.json's dependency graph actually requires (unblocks 'npm ci' in CI). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…outes Resolves module-not-found and Promise<params> type errors that broke the build. 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
Owner
Author
|
Closing — this PR was opened against the fork by mistake. The same branch was opened upstream as davedumto#583 and has already been merged. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Implements davedumto#549, davedumto#565, davedumto#569, and davedumto#570 in a single routes-b scoped PR.
Closes davedumto#549
Closes davedumto#565
Closes davedumto#569
Closes davedumto#570
Changes proposed
What were you told to do?
Add exchange-rate stale fallback behavior, PAT management/auth integration, auth scope+role helper, and notification preferences under routes-b only.
What did I do?
Exchange Rate Resilience
AuthZ + PAT
Notification Preferences
Check List (Check all the applicable boxes)
Screenshots / Testing Evidence
Tests were intentionally not run per request.