Squash merge de la branche develop dans master : un seul commit sur master pour regrouper la livraison liée au ticket #50 (affichage dynamique des CGU et de la politique de confidentialité à l'inscription) ainsi que la documentation et les ajustements associés. Frontend (P'titsPas) : modale de validation bloquante avec onglets CGU / confidentialité, chargement des PDF depuis l'API des documents légaux actifs, affichage via pdfx (PdfViewPinch et barre de progression latérale sur le web, repli PdfView sous Windows). Branchement dans le flux d'inscription (écran de présentation), enrichissement du UserService et correction des chemins média pour les URL absolues. Documentation: jeux de fichiers juridiques (markdown et PDF de référence), réorganisation (dossier docs/juridique, archives, renommage du briefing), mises à jour index, liste de tickets et décisions projet. Scripts et métadonnées mineures (Gitea, pubspec, index web). Made-with: Cursor
96 lines
2.9 KiB
JavaScript
96 lines
2.9 KiB
JavaScript
/**
|
||
* Crée l'issue Gitea "[Frontend] Inscription Parent – Branchement soumission formulaire à l'API"
|
||
* Usage: node backend/scripts/create-gitea-issue-parent-api.js
|
||
* Token : .gitea-token (racine du dépôt), sinon GITEA_TOKEN, sinon
|
||
* docs/27_BRIEFING-FRONTEND.md (voir docs/26_GITEA-API.md)
|
||
*/
|
||
const https = require('https');
|
||
const fs = require('fs');
|
||
const path = require('path');
|
||
|
||
const repoRoot = path.join(__dirname, '../..');
|
||
let token = process.env.GITEA_TOKEN;
|
||
if (!token) {
|
||
try {
|
||
const tokenFile = path.join(repoRoot, '.gitea-token');
|
||
if (fs.existsSync(tokenFile)) {
|
||
token = fs.readFileSync(tokenFile, 'utf8').trim();
|
||
}
|
||
} catch (_) {}
|
||
}
|
||
if (!token) {
|
||
try {
|
||
const briefing = fs.readFileSync(
|
||
path.join(repoRoot, 'docs/27_BRIEFING-FRONTEND.md'),
|
||
'utf8',
|
||
);
|
||
const m = briefing.match(/Token:\s*(giteabu_[a-f0-9]+)/);
|
||
if (m) token = m[1].trim();
|
||
} catch (_) {}
|
||
}
|
||
if (!token) {
|
||
console.error(
|
||
'Token non trouvé : créer .gitea-token à la racine ou export GITEA_TOKEN (voir docs/26_GITEA-API.md)',
|
||
);
|
||
process.exit(1);
|
||
}
|
||
|
||
const body = `## Description
|
||
|
||
Branchement du formulaire d'inscription parent (étape 5, récapitulatif) à l'endpoint d'inscription. Aujourd'hui la soumission n'appelle pas l'API : elle affiche uniquement une modale puis redirige vers le login.
|
||
|
||
**Estimation** : 4h | **Labels** : frontend, p3, auth, cdc
|
||
|
||
## Tâches
|
||
|
||
- [ ] Créer un service ou méthode (ex. AuthService.registerParent) appelant POST /api/v1/auth/register/parent
|
||
- [ ] Construire le body (DTO) à partir de UserRegistrationData (parent1, parent2, children, motivationText, CGU) en cohérence avec le backend (#18)
|
||
- [ ] Dans ParentRegisterStep5Screen, au clic « Soumettre » : appel API puis modale + redirection ou message d'erreur
|
||
- [ ] Gestion des photos enfants (base64 ou multipart selon API)
|
||
|
||
## Référence
|
||
|
||
20_WORKFLOW-CREATION-COMPTE.md § Étape 3 – Inscription d'un parent, backend #18`;
|
||
|
||
const payload = JSON.stringify({
|
||
title: "[Frontend] Inscription Parent – Branchement soumission formulaire à l'API",
|
||
body,
|
||
});
|
||
|
||
const opts = {
|
||
hostname: 'git.ptits-pas.fr',
|
||
path: '/api/v1/repos/jmartin/petitspas/issues',
|
||
method: 'POST',
|
||
headers: {
|
||
Authorization: 'token ' + token,
|
||
'Content-Type': 'application/json',
|
||
'Content-Length': Buffer.byteLength(payload),
|
||
},
|
||
};
|
||
|
||
const req = https.request(opts, (res) => {
|
||
let d = '';
|
||
res.on('data', (c) => (d += c));
|
||
res.on('end', () => {
|
||
try {
|
||
const o = JSON.parse(d);
|
||
if (o.number) {
|
||
console.log('NUMBER:', o.number);
|
||
console.log('URL:', o.html_url);
|
||
} else {
|
||
console.error('Erreur API:', o.message || d);
|
||
process.exit(1);
|
||
}
|
||
} catch (e) {
|
||
console.error('Réponse:', d);
|
||
process.exit(1);
|
||
}
|
||
});
|
||
});
|
||
req.on('error', (e) => {
|
||
console.error(e);
|
||
process.exit(1);
|
||
});
|
||
req.write(payload);
|
||
req.end();
|