feat: ajout de la fonctionnalité de monitoring des mangas, incluant l'activation et la désactivation du suivi, la synchronisation des chapitres, et la mise à jour de l'API pour gérer ces nouvelles actions. Création de nouveaux composants Vue pour le rafraîchissement des chapitres et l'affichage des notifications. Intégration de tests unitaires pour valider le bon fonctionnement de ces fonctionnalités.
This commit is contained in:
parent
d9e78b5229
commit
00d63dffeb
@@ -1105,9 +1105,7 @@
|
||||
"properties": {
|
||||
"mangaId": {
|
||||
"type": "string",
|
||||
"format": "uuid",
|
||||
"description": "L'identifiant unique du manga",
|
||||
"example": "123e4567-e89b-12d3-a456-426614174000"
|
||||
"description": "L'identifiant unique du manga"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -1250,6 +1248,138 @@
|
||||
},
|
||||
"parameters": []
|
||||
},
|
||||
"/api/manga/{mangaId}/chapters/refresh": {
|
||||
"post": {
|
||||
"operationId": "api_manga_mangaIdchaptersrefresh_post",
|
||||
"tags": [
|
||||
"MangaRefresh"
|
||||
],
|
||||
"responses": {
|
||||
"202": {
|
||||
"description": "Demande de refresh accept\u00e9e et mise en file d'attente"
|
||||
},
|
||||
"404": {
|
||||
"description": "Manga non trouv\u00e9"
|
||||
}
|
||||
},
|
||||
"summary": "Rafra\u00eechir les chapitres d'un manga",
|
||||
"description": "Lance la synchronisation incr\u00e9mentale avec scraping automatique des nouveaux chapitres",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "mangaId",
|
||||
"in": "path",
|
||||
"description": "L'identifiant unique du manga",
|
||||
"required": true,
|
||||
"deprecated": false,
|
||||
"allowEmptyValue": false,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
},
|
||||
"style": "simple",
|
||||
"explode": false,
|
||||
"allowReserved": false
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
"description": "The new MangaRefresh resource",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/MangaRefresh"
|
||||
}
|
||||
},
|
||||
"application/ld+json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/MangaRefresh.jsonld"
|
||||
}
|
||||
},
|
||||
"text/html": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/MangaRefresh"
|
||||
}
|
||||
},
|
||||
"application/hal+json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/MangaRefresh.jsonhal"
|
||||
}
|
||||
},
|
||||
"multipart/form-data": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/MangaRefresh"
|
||||
}
|
||||
},
|
||||
"application/x-cbz": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/MangaRefresh"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": true
|
||||
},
|
||||
"deprecated": false
|
||||
},
|
||||
"parameters": []
|
||||
},
|
||||
"/api/manga/{mangaId}/monitoring/toggle": {
|
||||
"post": {
|
||||
"operationId": "api_manga_mangaIdmonitoringtoggle_post",
|
||||
"tags": [
|
||||
"MangaMonitoring"
|
||||
],
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "Monitoring modifi\u00e9 avec succ\u00e8s"
|
||||
},
|
||||
"404": {
|
||||
"description": "Manga non trouv\u00e9"
|
||||
},
|
||||
"422": {
|
||||
"description": "Donn\u00e9es de validation invalides"
|
||||
}
|
||||
},
|
||||
"summary": "Activer/D\u00e9sactiver le monitoring d'un manga",
|
||||
"description": "Active ou d\u00e9sactive le monitoring automatique pour recevoir les nouveaux chapitres",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "mangaId",
|
||||
"in": "path",
|
||||
"description": "L'identifiant unique du manga",
|
||||
"required": true,
|
||||
"deprecated": false,
|
||||
"allowEmptyValue": false,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
},
|
||||
"style": "simple",
|
||||
"explode": false,
|
||||
"allowReserved": false
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
"description": "\u00c9tat du monitoring \u00e0 appliquer",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"description": "True pour activer le monitoring, false pour le d\u00e9sactiver",
|
||||
"example": true
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"enabled"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": true
|
||||
},
|
||||
"deprecated": false
|
||||
},
|
||||
"parameters": []
|
||||
},
|
||||
"/api/mangadex-search": {
|
||||
"get": {
|
||||
"operationId": "api_mangadex-search_get",
|
||||
@@ -4223,6 +4353,9 @@
|
||||
"number",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"monitored": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -4301,6 +4434,9 @@
|
||||
"number",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"monitored": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -4400,6 +4536,9 @@
|
||||
"number",
|
||||
"null"
|
||||
]
|
||||
},
|
||||
"monitored": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -4893,6 +5032,156 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"MangaMonitoring": {
|
||||
"type": "object",
|
||||
"description": "Active ou d\u00e9sactive le monitoring automatique d'un manga",
|
||||
"deprecated": false,
|
||||
"required": [
|
||||
"enabled"
|
||||
],
|
||||
"properties": {
|
||||
"enabled": {}
|
||||
}
|
||||
},
|
||||
"MangaMonitoring.jsonhal": {
|
||||
"type": "object",
|
||||
"description": "Active ou d\u00e9sactive le monitoring automatique d'un manga",
|
||||
"deprecated": false,
|
||||
"required": [
|
||||
"enabled"
|
||||
],
|
||||
"properties": {
|
||||
"_links": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"self": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"href": {
|
||||
"type": "string",
|
||||
"format": "iri-reference"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"enabled": {}
|
||||
}
|
||||
},
|
||||
"MangaMonitoring.jsonld": {
|
||||
"type": "object",
|
||||
"description": "Active ou d\u00e9sactive le monitoring automatique d'un manga",
|
||||
"deprecated": false,
|
||||
"required": [
|
||||
"enabled"
|
||||
],
|
||||
"properties": {
|
||||
"@context": {
|
||||
"readOnly": true,
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"@vocab": {
|
||||
"type": "string"
|
||||
},
|
||||
"hydra": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"http://www.w3.org/ns/hydra/core#"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"@vocab",
|
||||
"hydra"
|
||||
],
|
||||
"additionalProperties": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"@id": {
|
||||
"readOnly": true,
|
||||
"type": "string"
|
||||
},
|
||||
"@type": {
|
||||
"readOnly": true,
|
||||
"type": "string"
|
||||
},
|
||||
"enabled": {}
|
||||
}
|
||||
},
|
||||
"MangaRefresh": {
|
||||
"type": "object",
|
||||
"description": "D\u00e9clenche la synchronisation et le scraping des nouveaux chapitres d'un manga",
|
||||
"deprecated": false
|
||||
},
|
||||
"MangaRefresh.jsonhal": {
|
||||
"type": "object",
|
||||
"description": "D\u00e9clenche la synchronisation et le scraping des nouveaux chapitres d'un manga",
|
||||
"deprecated": false,
|
||||
"properties": {
|
||||
"_links": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"self": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"href": {
|
||||
"type": "string",
|
||||
"format": "iri-reference"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"MangaRefresh.jsonld": {
|
||||
"type": "object",
|
||||
"description": "D\u00e9clenche la synchronisation et le scraping des nouveaux chapitres d'un manga",
|
||||
"deprecated": false,
|
||||
"properties": {
|
||||
"@context": {
|
||||
"readOnly": true,
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"@vocab": {
|
||||
"type": "string"
|
||||
},
|
||||
"hydra": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"http://www.w3.org/ns/hydra/core#"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"@vocab",
|
||||
"hydra"
|
||||
],
|
||||
"additionalProperties": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"@id": {
|
||||
"readOnly": true,
|
||||
"type": "string"
|
||||
},
|
||||
"@type": {
|
||||
"readOnly": true,
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"MangaSearchItem": {
|
||||
"type": "object",
|
||||
"description": "",
|
||||
|
||||
Reference in New Issue
Block a user