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 @@