Skip to content

feat: implement wishlist revamp backend#297

Open
SolaneHub wants to merge 1 commit intoDestinyItemManager:masterfrom
SolaneHub:feature/wishlist-revamp
Open

feat: implement wishlist revamp backend#297
SolaneHub wants to merge 1 commit intoDestinyItemManager:masterfrom
SolaneHub:feature/wishlist-revamp

Conversation

@SolaneHub
Copy link
Copy Markdown

Description

This PR implements the backend infrastructure for the Wish List Revamp as outlined in DIM issue DestinyItemManager/DIM#10313.

Key Changes

  • Database Schema: Added wishlists and wishlist_rolls tables in PostgreSQL.
    • Implemented a Hard Delete strategy using physical ON DELETE CASCADE for rolls.
    • Added sync_lastmod triggers for automatic timestamp updates.
  • Sync APIs:
    • POST /profile: Support for wishlist, delete_wishlist, wishlist_roll, and delete_wishlist_roll actions.
    • GET /profile: Returns wishlists and wishlistRolls components.
    • Updated Import and Export logic to handle wishlist data.
  • Sharing API:
    • GET /wishlist_share/:wishlistId: Returns the wishlist and its rolls in the standard wishlist.v1 JSON format for current DIM parser compatibility.
  • Testing:
    • api/db/wishlist-queries.test.ts: Comprehensive unit tests for CRUD operations.
    • api/db/wishlist-integration.test.ts: Integration tests for cascade deletes and data transport (Import/Export).
  • Types: Updated local dim-api-types to reflect new shapes and update actions.

Verification

  • All tests passed (pnpm test).
  • Verified local server startup and healthcheck.
  • Confirmed sharing endpoint accessibility.

Refers to DestinyItemManager/DIM#10313

@bhollis
Copy link
Copy Markdown
Contributor

bhollis commented Mar 21, 2026

If you wouldn't mind pausing here - I have a more specific idea of how I want this to work and I'm already in the middle of a database migration. I'll make sure to either do this myself or post a spec that's detailed enough for Claude to do it.

@SolaneHub
Copy link
Copy Markdown
Author

If you wouldn't mind pausing here - I have a more specific idea of how I want this to work and I'm already in the middle of a database migration. I'll make sure to either do this myself or post a spec that's detailed enough for Claude to do it.

OK

@SolaneHub
Copy link
Copy Markdown
Author

So how's it going?

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.

2 participants