From 71ab2c14fd8d10acbf92e3c20fe532cbf05caa61 Mon Sep 17 00:00:00 2001 From: Benny Samir Hierl Date: Sun, 20 Feb 2022 15:48:35 +0100 Subject: [PATCH] Fix issue with deleting of a wishlist Signed-off-by: Benny Samir Hierl --- package-lock.json | 4 ++-- package.json | 2 +- .../migration.sql | 17 +++++++++++++++++ prisma/schema.prisma | 2 +- src/composables/useWishlistStore.ts | 12 +++++++++--- 5 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 prisma/migrations/20220220143616_cascade_deleting/migration.sql diff --git a/package-lock.json b/package-lock.json index 5d401fa..11e4dc2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "wishlist", - "version": "1.0.0", + "version": "1.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "1.0.0", + "version": "1.0.1", "dependencies": { "@prisma/client": "^3.9.2", "@tailwindcss/line-clamp": "^0.3.1", diff --git a/package.json b/package.json index a2a27e1..cdb5f74 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "1.0.0", + "version": "1.0.1", "scripts": { "dev": "concurrently --kill-others \"npm run dev:frontend\" \"npm run dev:backend\"", "demo": "npm run build && prisma migrate deploy && prisma migrate reset -f && node dist/api/server.js", diff --git a/prisma/migrations/20220220143616_cascade_deleting/migration.sql b/prisma/migrations/20220220143616_cascade_deleting/migration.sql new file mode 100644 index 0000000..0a292ea --- /dev/null +++ b/prisma/migrations/20220220143616_cascade_deleting/migration.sql @@ -0,0 +1,17 @@ +-- RedefineTables +PRAGMA foreign_keys=OFF; +CREATE TABLE "new_Item" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "title" TEXT NOT NULL, + "url" TEXT NOT NULL DEFAULT '', + "imageSrc" TEXT NOT NULL DEFAULT '', + "description" TEXT NOT NULL, + "bought" BOOLEAN NOT NULL DEFAULT false, + "wishlistId" TEXT NOT NULL, + CONSTRAINT "Item_wishlistId_fkey" FOREIGN KEY ("wishlistId") REFERENCES "Wishlist" ("id") ON DELETE CASCADE ON UPDATE CASCADE +); +INSERT INTO "new_Item" ("bought", "description", "id", "imageSrc", "title", "url", "wishlistId") SELECT "bought", "description", "id", "imageSrc", "title", "url", "wishlistId" FROM "Item"; +DROP TABLE "Item"; +ALTER TABLE "new_Item" RENAME TO "Item"; +PRAGMA foreign_key_check; +PRAGMA foreign_keys=ON; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index dfd43ca..1e98d6e 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -27,6 +27,6 @@ model Item { imageSrc String @default("") description String bought Boolean @default(false) - wishlist Wishlist @relation(fields: [wishlistId], references: [id]) + wishlist Wishlist @relation(fields: [wishlistId], references: [id], onDelete: Cascade) wishlistId String } diff --git a/src/composables/useWishlistStore.ts b/src/composables/useWishlistStore.ts index c42cd1e..5a03deb 100644 --- a/src/composables/useWishlistStore.ts +++ b/src/composables/useWishlistStore.ts @@ -41,7 +41,9 @@ const updateWishlist = async (updatedData: Wishlist): Promise => { } const deleteWishlist = async (): Promise => { - const { error } = await useFetch(`/wishlist/${state!.value!.id}`).delete() + const { error } = await useFetch(`/wishlist/${state!.value!.id}`) + .delete() + .json() if (error.value) { throw error.value } @@ -92,7 +94,9 @@ const updateItem = async ( const itemBought = async (item: WishlistItem): Promise => { const { error } = await useFetch( `/wishlist/${item.wishlistId}/item/${item.id}/bought` - ).post() + ) + .post() + .json() if (error.value) { throw error.value } @@ -102,7 +106,9 @@ const itemBought = async (item: WishlistItem): Promise => { const itemDelete = async (item: WishlistItem): Promise => { const { error } = await useFetch( `/wishlist/${item.wishlistId}/item/${item.id}` - ).delete() + ) + .delete() + .json() if (error.value) { throw error.value }