FFTT API permet de consommer facilement l'API officielle Smartping 2.0 de la Fédération Française de Tennis de Table en utilisant Node.js et TypeScript.
- Liste des organismes par type
- Liste des clubs par département
- Liste des clubs par nom
- Détail complet d'un club
- Divisions par épreuve
- Recherche de joueurs par nom/prénom
- Détail complet d'un joueur par licence
- Classement d'un joueur
- Historique des parties
- Points virtuels et classement
- Liste des épreuves par organisme
- Résultats individuels par division
- Classement critérium
- Gestion des équipes et poules
- Détail des rencontres
- Authentification MD5 + HMAC-SHA1
- Gestion des timestamps FFTT
- Validation des réponses API
- Gestion des erreurs robuste
npm install @omichalo/ffttapi-node
yarn add @omichalo/ffttapi-node
cp env.example .env
FFTT_TEST_ID=your_fftt_id_here
FFTT_TEST_PASSWORD=your_fftt_password_here
import { FFTTAPI } from "@omichalo/ffttapi-node";
// Initialisation de l'API
const api = new FFTTAPI("identifiant", "password");
// Authentification
try {
const result = await api.initialize();
console.log("â
API initialisée avec succÚs");
} catch (error) {
console.error("â Erreur d'authentification:", error);
}
// Récupération des détails d'un club
const clubDetails = await api.getClubDetails("75010001");
console.log("Club:", clubDetails.nom, "Ă ", clubDetails.ville);
// Recherche de clubs par nom
const clubs = await api.getClubsByName("TENNIS");
clubs.forEach(club => console.log(`- ${club.nom} (${club.numero})`));
// Recherche de joueurs par nom
const joueurs = await api.getJoueursByNom("DUPONT");
joueurs.forEach(joueur => {
console.log(`${joueur.nom} ${joueur.prenom} - Licence: ${joueur.licence}`);
});
// Détail d'un joueur par licence
const joueur = await api.getJoueurDetailsByLicence("1234567");
console.log("Points:", joueur.points, "Classement:", joueur.classement);
// Liste des épreuves
const epreuves = await api.getEpreuves(75, "E"); // Organisme 75, type Ăquipes
epreuves.forEach(epreuve => {
console.log(`${epreuve.libelle} (ID: ${epreuve.id})`);
});
// Résultats individuels
const resultats = await api.getResultatsIndividuels(257, 7501, "poule");
console.log(`${resultats.length} résultats trouvés`);
// Classement critérium
const classements = await api.getClassementCriterium();
classements.slice(0, 5).forEach((clt, index) => {
console.log(`${index + 1}. ${clt.nom} - ${clt.points} pts`);
});
# Tests avec couverture complĂšte
npm test
# Tests en mode watch
npm run test:watch
# Tests pour CI/CD
npm run test:ci
# Tests avec l'API FFTT réelle
npm run test:integration:real
# Tests d'intégration en mode watch
npm run test:integration:watch
npm run build
- Compilation TypeScriptnpm test
- Exécution des tests avec couverturenpm run test:watch
- Tests en mode watchnpm run test:ci
- Tests pour l'intégration continuenpm run test:integration
- Tests d'intégrationnpm run lint
- Vérification du code avec ESLintnpm run format
- Formatage du code avec Prettier
source/
âââ Core/
â âââ FFTTAPI.ts # Classe principale de l'API
â âââ ApiRequest.ts # Gestion des requĂȘtes HTTP
âââ Models/
â âââ FFTTInterfaces.ts # Interfaces TypeScript
â âââ ResponseData.interface.ts
âââ Services/
â âââ Utils.service.ts # Utilitaires
â âââ RencontreDetailsFactory.service.ts
âââ Tests/
âââ Core/ # Tests des fonctionnalitĂ©s principales
âââ Integration/ # Tests d'intĂ©gration
âââ Models/ # Tests des modĂšles
âââ Services/ # Tests des services
Le package inclut des définitions TypeScript complÚtes pour une expérience de développement optimale :
// Types fortement typés pour toutes les réponses API
interface ClubDetails {
idClub: string;
nom: string;
numero: string;
ville: string;
// ... autres propriétés
}
interface JoueurDetails {
nom: string;
prenom: string;
licence: string;
points: number;
// ... autres propriétés
}
- Tests d'intégration : INTEGRATION_TESTS.md
- Spécifications API : specifications-smartping-structured.md
- Exemples d'utilisation : Voir le dossier
examples/
Les contributions sont les bienvenues ! N'hésitez pas à :
- Fork le projet
- Créer une branche feature (
git checkout -b feature/AmazingFeature
) - Commit vos changements (
git commit -m 'Add some AmazingFeature'
) - Push vers la branche (
git push origin feature/AmazingFeature
) - Ouvrir une Pull Request
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
- FFTT pour l'API officielle Smartping 2.0
- StephSako pour le projet original
- Communauté TypeScript/Node.js pour les outils et bibliothÚques
- Issues GitHub : https://github.com/omichalo/FFTT-API-typescript/issues
- Documentation : https://github.com/omichalo/FFTT-API-typescript#readme
đ DĂ©veloppĂ© avec â€ïž pour la communautĂ© du tennis de table français !