This commit is contained in:
shooter-dev committed 2026-10-07 05:10:49 +02:00
1 parent 9646cb14aa
commit e4865224cd
3 files changed
+435

No files matched your search

+79
View File
@@ -0,0 +1,79 @@
# Suivi des endpoints MangaCollec
État du suivi au 15 septembre 2026 : **23 endpoints implémentés sur 35**.
Une case cochée signifie qu’un wrapper d’appel est présent dans
`../libs/mangacollec`. La présence d’un DTO, d’un modèle ou du transport HTTP seul
ne suffit pas à cocher un endpoint. Chaque implémentation doit ensuite être
couverte par les tests adaptés.
La liste et les chemins exacts proviennent de la documentation officielle du
skill `mangacollec-doc`, en particulier `references/mangacollec/index.md`.
## Catalogue — 11/11
- [x] `GET /v2/series` — `../libs/mangacollec`
- [x] `GET /v2/series/{id}` — `../libs/mangacollec`
- [x] `GET /v2/boxes/{id}` — `../libs/mangacollec`
- [x] `GET /v2/volumes/news` — `../libs/mangacollec`
- [x] `GET /v2/volumes/{id}` — `../libs/mangacollec`
- [x] `GET /v2/editions/{id}` — `../libs/mangacollec`
- [x] `GET /v2/publishers` — `../libs/mangacollec`
- [x] `GET /v2/publishers/{publisher_id}` — `../libs/mangacollec`
- [x] `GET /v2/authors` — `../libs/mangacollec`
- [x] `GET /v2/authors/{author_id}` — `../libs/mangacollec`
- [x] `GET /v2/kinds` — `../libs/mangacollec`
## Planning — 0/2
- [ ] `GET /v2/planning`
- [ ] `GET /v2/users/me/ad_native_planning_perso`
## Suivis — 2/2
- [x] `POST /v1/follow_editions` — `../libs/mangacollec`
- [x] `DELETE /v1/follow_editions/{follow_edition_id}` — `../libs/mangacollec`
## Collection — 4/6
- [ ] `GET /v2/users/me/collection`
- [ ] `GET /v2/user/{username}/collection`
- [x] `POST /v1/possessions_multiple` — `../libs/mangacollec`
- [x] `DELETE /v1/possessions_multiple` — `../libs/mangacollec`
- [x] `POST /v1/box_possessions_multiple` — `../libs/mangacollec`
- [x] `DELETE /v1/box_possessions_multiple` — `../libs/mangacollec`
## Lectures — 2/2
- [x] `POST /v1/reads_multiple` — `../libs/mangacollec`
- [x] `DELETE /v1/reads_multiple` — `../libs/mangacollec`
## Prêts — 4/4
- [x] `POST /v1/loans_multiple` — `../libs/mangacollec`
- [x] `DELETE /v1/loans_multiple` — `../libs/mangacollec`
- [x] `POST /v2/borrowers` — `../libs/mangacollec`
- [x] `DELETE /v2/borrowers/{borrower_id}` — `../libs/mangacollec`
## Panier — 0/6
- [ ] `GET /v1/users/me/cart`
- [ ] `POST /v1/users/me/cart`
- [ ] `DELETE /v1/users/me/cart/{id_cart_item}`
- [ ] `GET /v1/bdfugue_offer/{isbn}`
- [ ] `GET /v1/amazon_offer/{asin}`
- [ ] `GET /v1/img_offer/{isbn}`
## Recommandations — 0/1
- [ ] `GET /v1/users/me/recommendation`
## Utilisateur — 0/1
- [ ] `GET /v1/users/me`
## Règle de mise à jour
Après l’ajout d’un wrapper d’endpoint dans `../libs/mangacollec`, mettre à jour la
case correspondante et le compteur de la section. Ne cocher l’endpoint qu’après
validation de sa requête, de son DTO de réponse et de ses tests pertinents.
+33
View File
@@ -0,0 +1,33 @@
# Correspondance entre MangaCollec et les pages QML
Ce document distingue les composants QML actuellement présents des pages web qui restent à développer. L’existence d’un fichier QML ne prouve pas que son rendu correspond au site.
La référence web est [MangaCollec](https://www.mangacollec.com). Toute vérification visuelle se fait à **1280 × 720**, avec un zoom navigateur et un affichage QML à 100 %, selon la [règle de correspondance des pages QML](../.agents/rules/qml-page-correspondence.md).
## Composants QML présents
Les lignes ci-dessous désignent un composant qui existe dans le dépôt. Sa conformité visuelle reste non vérifiée tant qu’une comparaison explicite n’a pas été faite.
| Parcours web cible | Composants QML présents | État |
| --- | --- | --- |
| Nouveautés — `/` | [NewsPage.qml](../desktop/booksync_desktop/qml/pages/NewsPage.qml) | Présent ; comparaison visuelle non vérifiée |
| Collection — `/user/:username/reading`, `/user/:username/collection`, `/user/:username/missing`, `/user/shooter_lab/wish`, `/loan` | [CollectionPage.qml](../desktop/booksync_desktop/qml/pages/CollectionPage.qml), [ReadingTabPage.qml](../desktop/booksync_desktop/qml/pages/collection/ReadingTabPage.qml), [CollectionTabPage.qml](../desktop/booksync_desktop/qml/pages/collection/CollectionTabPage.qml), [CompleteTabPage.qml](../desktop/booksync_desktop/qml/pages/collection/CompleteTabPage.qml), [WishTabPage.qml](../desktop/booksync_desktop/qml/pages/collection/WishTabPage.qml), [LoansTabPage.qml](../desktop/booksync_desktop/qml/pages/collection/LoansTabPage.qml) | Présents ; comparaison visuelle non vérifiée |
| Planning — `/user/:username/planning`, `/planning`, `/planning/news`, `/planning/boxes` | [PlanningPage.qml](../desktop/booksync_desktop/qml/pages/PlanningPage.qml), [CustomTabPage.qml](../desktop/booksync_desktop/qml/pages/planning/CustomTabPage.qml), [AllTabPage.qml](../desktop/booksync_desktop/qml/pages/planning/AllTabPage.qml), [NewsTabPage.qml](../desktop/booksync_desktop/qml/pages/planning/NewsTabPage.qml), [BoxTabPage.qml](../desktop/booksync_desktop/qml/pages/planning/BoxTabPage.qml) | Présents ; comparaison visuelle non vérifiée |
| Recherche — `/series`, `/authors`, `/publishers` | [SearchPage.qml](../desktop/booksync_desktop/qml/pages/SearchPage.qml) | Les trois catégories sont des onglets de cette page ; comparaison visuelle non vérifiée |
| Panier — `/cart` | [CartPage.qml](../desktop/booksync_desktop/qml/pages/CartPage.qml) | Présent ; comparaison visuelle non vérifiée |
| Fiche volume — `/volumes/:volumeId` | [VolumePage.qml](../desktop/booksync_desktop/qml/pages/catalogue/VolumePage.qml) | Présent ; comparaison visuelle non vérifiée |
| Statistiques — `/user/:username/collection/statistics` | [StatPage.qml](../desktop/booksync_desktop/qml/pages/StatPage.qml) | Présent ; comparaison visuelle non vérifiée |
## Parcours web sans page QML dédiée
Ces cibles n’ont pas actuellement de fichier QML correspondant dans le dépôt.
| Parcours cible | État actuel |
| --- | --- |
| Fiches série, auteur, éditeur, édition et coffret — `/series/:seriesId`, `/authors/:authorId`, `/publishers/:publisherId`, `/editions/:editionId`, `/boxes/:boxId` | À développer |
| Statistiques par éditeur et par genre — `/user/:username/collection/statistics/publishers`, `/user/:username/collection/statistics/kinds` | À développer |
| Historique des ajouts et historique des lectures — `/user/:username/collection/history`, `/user/:username/reading/history` | À développer |
| Création de prêt, gestion des emprunteurs et choix des volumes d’un prêt — `/loan/create`, `/borrowers`, `/loan/create/collection`, `/loan/create/collection/:editionId` | À développer |
| Fiche d’édition dans la collection et dans la pile à lire — `/collection/edition/:editionId`, `/reading/edition/:editionId` | À développer |
L’application contient aussi des pages propres à Booksync, notamment l’accueil, le compte et la prédiction ; elles n’ont pas de parcours web correspondant dans ce tableau.
+323
View File
@@ -0,0 +1,323 @@
{
"volumes": {
"000a74ac-1007-4522-be5a-b990998c5864": {
"id": "000a74ac-1007-4522-be5a-b990998c5864",
"title": null,
"number": 2,
"content": null,
"release_date": "2015-06-11",
"image_url": "https://images-eu.ssl-images-amazon.com/images/I/515rcG6ue8L.jpg",
"isbn": "9782369740650",
"asin": "2369740655",
"nb_pages": null,
"edition_id": "406557f4-1531-40a2-8178-5dcf1de4c1c3",
"not_sold": false,
"possessions_count": 1723
}
},
"editions": {
"00069cdc-103e-4330-8ccd-7b47fe48e56a": {
"id": "00069cdc-103e-4330-8ccd-7b47fe48e56a",
"title": null,
"series_id": "a6d37a94-63f6-4b91-91ec-547ac2e8182a",
"publisher_id": "69878791-96a6-41c3-9d63-cddd5c12e2dd",
"parent_edition_id": null,
"volumes_count": 1,
"last_volume_number": 0,
"commercial_stop": false,
"not_finished": false,
"follow_editions_count": 80
}
},
"series": {
"00012193-669e-4be0-a6e9-339bc45e6e6a": {
"id": "00012193-669e-4be0-a6e9-339bc45e6e6a",
"title": "Stigma",
"type_id": "106f524e-7283-44b8-aa84-25e9a7fb1f7d",
"adult_content": false,
"editions_count": 1,
"tasks_count": 1,
"kinds_ids": null
}
},
"tasks": {
"11a82d75-adf1-42fd-879f-d1a462a70cf6": {
"id": "11a82d75-adf1-42fd-879f-d1a462a70cf6",
"author_id": "d3b64eda-8e58-47e6-80c2-85ca810e377f",
"job_id": "dc7b6062-6aae-49ee-87a2-95d47ab52600",
"series_id": "73400dbf-9c6f-4293-99eb-69b732df5038"
}
},
"authors": {
"0000cfc5-0676-4602-957a-4035405524cd": {
"id": "0000cfc5-0676-4602-957a-4035405524cd",
"name": "Senga",
"first_name": "Fumitaka",
"tasks_count": 1
}
},
"publishers": {
"009eedef-c3ec-4f14-b946-57cfed5dd138": {
"id": "009eedef-c3ec-4f14-b946-57cfed5dd138",
"title": "H&O",
"closed": false,
"editions_count": 6,
"no_amazon": false
}
},
"types": {
"09253f84-8e89-4536-bfb2-bd91d9e0c0ab": {
"id": "09253f84-8e89-4536-bfb2-bd91d9e0c0ab",
"title": "Comics",
"to_display": false
}
},
"jobs": {
"37fb2477-ec0d-4ffc-9d3b-4189c2d01629": {
"id": "37fb2477-ec0d-4ffc-9d3b-4189c2d01629",
"title": "Dessin"
}
},
"kinds": {
"0063c975-8321-4827-9661-0bfff734ea55": {
"id": "0063c975-8321-4827-9661-0bfff734ea55",
"title": "Extra-terrestre",
"series_ids": [
"0a9c3799-e9c2-4155-8c78-8edbaf3f6b02",
"acea105e-82d2-48cb-8730-a94fdba8f10e",
"b81323da-d87d-4f03-9bd2-d753a4baae4d"
]
}
},
"boxes": {
"1d02c966-e78c-40f3-a802-92ccd6b4b99d": {
"id": "1d02c966-e78c-40f3-a802-92ccd6b4b99d",
"title": "Edition Limitée Tome 9",
"number": 0,
"content": null,
"release_date": "2026-01-16",
"image_url": "https://m.media-amazon.com/images/I/41akizyn9LL.jpg",
"isbn": "9782386585883",
"asin": "2386585883",
"commercial_stop": false,
"box_edition_id": "33ebf952-2ac5-4b8e-952a-b11f5e8d4244",
"box_possessions_count": 54
}
},
"boxEditions": {
"090584e3-9033-4aaf-8d2f-49bc3c8ac9eb": {
"id": "090584e3-9033-4aaf-8d2f-49bc3c8ac9eb",
"title": "Sur la colline où poussent encore ces fleurs…",
"publisher_id": "c1866645-afb4-44dd-bdce-420606488352",
"boxes_count": 3,
"adult_content": false,
"box_follow_editions_count": 1191
}
},
"boxVolumes": {
"036ee100-ac1a-45cc-82aa-10b4449bb354": {
"id": "036ee100-ac1a-45cc-82aa-10b4449bb354",
"box_id": "75623392-6c9b-436d-b53c-db643cc985bc",
"volume_id": "bac47c3f-1e43-41ed-9949-a00321e7707d",
"included": true
}
},
"followEditions": {
"011e347c-7ab7-46c9-b477-5ef6a947c1ee": {
"id": "011e347c-7ab7-46c9-b477-5ef6a947c1ee",
"edition_id": "a0f430fa-7eec-4db3-af0b-30d6e98a8b30",
"user_id": "1f32e2fc-c7c3-4dd3-9f18-e0fcdb075295",
"following": true
}
},
"possessions": {
"000049ec-f4b0-4e95-829a-283b22749d3c": {
"id": "000049ec-f4b0-4e95-829a-283b22749d3c",
"volume_id": "9ed92b95-8042-4f99-ad24-b2321b4bf351",
"user_id": "1f32e2fc-c7c3-4dd3-9f18-e0fcdb075295",
"created_at": "2019-03-07T16:08:58.783Z"
}
},
"boxFollowEditions": {
"28d905e6-16ec-40f1-b020-c27acc58b414": {
"id": "28d905e6-16ec-40f1-b020-c27acc58b414",
"box_edition_id": "9aa21cc8-9e64-4dcc-9c55-dd0c30a0aac2",
"user_id": "1f32e2fc-c7c3-4dd3-9f18-e0fcdb075295",
"following": true
}
},
"boxPossessions": {
"0024c8a5-ef20-4851-aca2-419ba8e75c94": {
"id": "0024c8a5-ef20-4851-aca2-419ba8e75c94",
"box_id": "1e9aa5ea-e919-423e-82ae-10bc1bc3e4a8",
"user_id": "1f32e2fc-c7c3-4dd3-9f18-e0fcdb075295",
"created_at": "2023-06-06T17:33:50.140Z"
}
},
"readEditions": {
"03250200-fd98-403b-ac72-5adb2c6eb2a8": {
"id": "03250200-fd98-403b-ac72-5adb2c6eb2a8",
"edition_id": "9065957a-f9f7-4c23-bdfe-c09da5c12a02",
"user_id": "1f32e2fc-c7c3-4dd3-9f18-e0fcdb075295",
"reading": true
}
},
"reads": {
"006fec7a-5d8c-48ae-a0d0-c632a674dd5f": {
"id": "006fec7a-5d8c-48ae-a0d0-c632a674dd5f",
"volume_id": "5cfb1581-e895-4326-98cf-bcfa3c772d36",
"user_id": "1f32e2fc-c7c3-4dd3-9f18-e0fcdb075295",
"created_at": "2022-07-29T18:32:26.380Z"
}
},
"borrowers": {
"1490efe9-7308-495c-935f-8988288d5316": {
"id": "1490efe9-7308-495c-935f-8988288d5316",
"title": "Stennvoorde",
"category": "storage",
"user_id": "1f32e2fc-c7c3-4dd3-9f18-e0fcdb075295",
"created_at": "2026-01-28T09:42:05.120Z"
}
},
"loans": {
"1f912c85-3737-43e9-bdbd-4326fc51c461": {
"id": "1f912c85-3737-43e9-bdbd-4326fc51c461",
"possession_id": "c63c0893-b65a-4ef4-98b0-3de583ae8a71",
"borrower_id": "28df6242-6537-4b0e-ba96-2528ab5eebd6",
"created_at": "2026-01-28T09:42:27.514Z"
}
},
"user": {
"id": "1f32e2fc-c7c3-4dd3-9f18-e0fcdb075295",
"email": "platevoet.vincent@icloud.com",
"confirmed_at": "2025-10-26T21:13:21.599Z",
"confirmation_sent_at": "2025-10-26T21:13:01.852Z",
"unconfirmed_email": null,
"created_at": "2019-03-07T15:34:25.044Z",
"username": "shooterdev",
"notification_email": true,
"setting_collection_order": "title",
"certify_adult": true,
"possessions_count": 1812,
"ad_home_banner": true,
"ad_native_home_first": true,
"ad_native_planning_perso": true,
"is_premium": true,
"subscriptions": [
{
"id": "7f74f97e-acc5-4d6d-86fc-aace42eed507",
"user_id": "1f32e2fc-c7c3-4dd3-9f18-e0fcdb075295",
"app": "android",
"product_id": "com.mangacollec.premium.yearly",
"original_purchase_date": "2022-05-25T17:10:44.000Z",
"expires_date": "2023-07-08T17:09:49.000Z",
"auto_renewing": false,
"created_at": "2022-05-25T17:11:06.509Z",
"updated_at": "2023-07-10T04:59:43.478Z"
}
]
},
"news": {
"volumes": [
"5732a254-c687-4868-b095-2e94e1144ae2",
"1141ff10-9ff6-4d5a-bbd9-2072326499ec",
"d6ee1242-9de5-4352-80af-a435ee29e0d3"
],
"boxes": [
"574a5170-7125-4e88-86fc-492e4b96a0ad",
"90d1d0c5-4803-4c19-a3e9-7b23172d783a",
"25dee7a0-6e94-479a-900d-d2475fddd1c8"
]
},
"planning": {
"2026-01": {
"volumes": [
"d7815a06-bbac-4f6e-ae74-b5eb34142f7a",
"059dcc1b-3264-4518-acf0-b8d95c8f8dcd",
"93eb90d4-c493-4b7f-890f-9cdaad807e7c"
],
"boxes": [
"90d1d0c5-4803-4c19-a3e9-7b23172d783a",
"bd7a86b9-3b84-46f5-9325-b526ec9116e1",
"44704d1a-a6f6-4c07-823b-1c8d591395c4"
]
}
},
"recommendation": {
"08331a57-4edd-4c02-a4d3-9f8c68c000ff": [
"5fa134d9-2426-40db-83bf-47efb1ae62ba",
[
"66158cc3-d9d5-4067-be54-a43dd472fb78"
]
]
},
"nativeAd": {
"offer_home_banner": null,
"volume_home_first": {
"id": "3cf0ffbd-7c1b-4c39-bf0e-32c214eafd10",
"volume_id": "5732a254-c687-4868-b095-2e94e1144ae2",
"title": "Découvrir",
"start_date": "2026-01-26",
"end_date": "2026-02-01"
},
"volume_planning_perso": [
{
"id": "cb457ea9-9e37-42e4-8fd4-290f8ef962b3",
"volume_id": "50ac476d-2bf8-4d39-8564-fe3625ba5822",
"series_ids": [
"a9fde975-e150-4f04-a889-153f877f3a20"
],
"start_date": "2026-01-12",
"end_date": "2026-02-08"
}
]
},
"amazonOffers": {
"example-asin": {
"asin": "example-asin",
"formatted_price": null,
"availability": null,
"merchant": "Example merchant",
"store_link": null
}
},
"bdfugueOffers": {
"example-bdfugue-offer": {
"id": "example-bdfugue-offer",
"formatted_price": null,
"availability": null,
"merchant": "Example merchant",
"store_link": null
}
},
"fnacOffers": {
"example-fnac-offer": {
"id": "example-fnac-offer",
"formatted_price": null,
"availability": null,
"merchant": "Example merchant",
"store_link": null
}
},
"cart": {
"id": "bf204afd-43ba-4b72-8263-7ed149839023",
"store": "bdfugue",
"store_cart_sub_total": "92,29 €",
"store_cart_purchase_url": "https://api.mangacollec.com/cart/bf204afd-43ba-4b72-8263-7ed149839023/purchase?cart_purchase_url=https%3A%2F%2Fwww.bdfugue.com%2Fcheckout%2Fcart%2Feans%3Fref%3D358%26list%3D9782386585265%2C9782385038359%2C9791039142571%2C9782385038342%2C9782385035914%2C9791043305009%2C9782385035884%2C9782385035907%2C9782385035891%2C9782302107557%2C9782368777992",
"store_cart_active": true,
"items": [
{
"id": "8a7ede56-3805-4351-a0c8-211d65332c58",
"cart_id": "bf204afd-43ba-4b72-8263-7ed149839023",
"volume_id": "5de24bb2-d199-4387-aec3-eff9af54f105",
"quantity": 1,
"created_at": "2026-01-25T19:23:45.449Z",
"store_cart_item_price": "6,95 €",
"store_cart_item_link": "https://www.bdfugue.com/archdemon-s-dilemma-tome-12?ref=358",
"store_cart_item_availability": "En stock !"
}
],
"box_items": []
}
}