From 8692fa14c69d32e8ad239a5a2a7c6a4375c8d23f Mon Sep 17 00:00:00 2001 From: "ext.jeremy.guillot@maxicoffee.domains" Date: Sun, 29 Jun 2025 23:04:57 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20ajout=20de=20la=20fonctionnalit=C3=A9?= =?UTF-8?q?=20de=20suppression=20des=20chapitres=20avec=20mise=20=C3=A0=20?= =?UTF-8?q?jour=20de=20l'API=20et=20des=20composants=20associ=C3=A9s=20pou?= =?UTF-8?q?r=20g=C3=A9rer=20la=20suppression=20des=20chapitres=20et=20des?= =?UTF-8?q?=20fichiers=20CBZ.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manga/application/store/mangaStore.js | 12 + .../infrastructure/api/apiMangaRepository.js | 15 + .../presentation/components/MangaChapter.vue | 12 +- public/api-docs.json | 1046 ++++++++--------- .../CommandHandler/DeleteCbzHandler.php | 8 +- src/MessageHandler/DownloadChapterHandler.php | 22 +- 6 files changed, 563 insertions(+), 552 deletions(-) diff --git a/assets/vue/app/domain/manga/application/store/mangaStore.js b/assets/vue/app/domain/manga/application/store/mangaStore.js index b060ede..48cdc88 100644 --- a/assets/vue/app/domain/manga/application/store/mangaStore.js +++ b/assets/vue/app/domain/manga/application/store/mangaStore.js @@ -197,6 +197,18 @@ export const useMangaStore = defineStore('manga', { console.error('Erreur lors de la recherche du chapitre:', error); throw error; } + }, + + // --- Delete Chapter Action --- + async deleteChapter(chapterId) { + try { + await mangaRepository.deleteChapter(chapterId); + // Mettre à jour l'état du chapitre pour refléter qu'il n'est plus disponible + this.updateChapterAvailability(chapterId, false); + } catch (error) { + console.error('Erreur lors de la suppression du chapitre:', error); + throw error; + } } } }); diff --git a/assets/vue/app/domain/manga/infrastructure/api/apiMangaRepository.js b/assets/vue/app/domain/manga/infrastructure/api/apiMangaRepository.js index fc74331..d9272fc 100644 --- a/assets/vue/app/domain/manga/infrastructure/api/apiMangaRepository.js +++ b/assets/vue/app/domain/manga/infrastructure/api/apiMangaRepository.js @@ -173,4 +173,19 @@ export class ApiMangaRepository { throw error; } } + + async deleteChapter(chapterId) { + try { + const response = await fetch(`/api/manga/chapters/${chapterId}/cbz`, { + method: 'DELETE' + }); + if (!response.ok) { + throw new Error('Failed to delete chapter'); + } + return true; + } catch (error) { + console.error('API Error:', error); + throw error; + } + } } diff --git a/assets/vue/app/domain/manga/presentation/components/MangaChapter.vue b/assets/vue/app/domain/manga/presentation/components/MangaChapter.vue index cf5c9c2..7be15d8 100644 --- a/assets/vue/app/domain/manga/presentation/components/MangaChapter.vue +++ b/assets/vue/app/domain/manga/presentation/components/MangaChapter.vue @@ -35,8 +35,8 @@