# Documentation de l'API Managerr ## Authentification ### Inscription - **URL**: `/api/auth/register` - **Méthode**: `POST` - **Description**: Crée un nouvel utilisateur - **Corps de la demande**: ```json { "username": "string", "email": "string", "password": "string" } ``` - **Réponse réussie**: - **Code**: 201 Created - **Contenu**: ```json { "user": { "_id": "string", "username": "string", "email": "string" }, "token": "string" } ``` ### Connexion - **URL**: `/api/auth/login` - **Méthode**: `POST` - **Description**: Authentifie un utilisateur - **Corps de la demande**: ```json { "email": "string", "password": "string" } ``` - **Réponse réussie**: - **Code**: 200 OK - **Contenu**: ```json { "user": { "_id": "string", "username": "string", "email": "string" }, "token": "string" } ``` ## Paramètres ### Obtenir les paramètres - **URL**: `/api/settings` - **Méthode**: `GET` - **Description**: Récupère les paramètres de l'utilisateur actuel - **En-têtes**: `Authorization: Bearer {token}` - **Réponse réussie**: - **Code**: 200 OK - **Contenu**: ```json { "_id": "string", "user": "string", "sonarrUrl": "string", "sonarrApiKey": "string", "radarrUrl": "string", "radarrApiKey": "string" } ``` ### Créer/Mettre à jour les paramètres - **URL**: `/api/settings` - **Méthode**: `POST` - **Description**: Crée ou met à jour les paramètres de l'utilisateur actuel - **En-têtes**: `Authorization: Bearer {token}` - **Corps de la demande**: ```json { "sonarrUrl": "string", "sonarrApiKey": "string", "radarrUrl": "string", "radarrApiKey": "string" } ``` - **Réponse réussie**: - **Code**: 200 OK - **Contenu**: ```json { "_id": "string", "user": "string", "sonarrUrl": "string", "sonarrApiKey": "string", "radarrUrl": "string", "radarrApiKey": "string" } ``` ### Tester la connexion Sonarr - **URL**: `/api/settings/test-sonarr` - **Méthode**: `POST` - **Description**: Teste la connexion à l'API Sonarr - **En-têtes**: `Authorization: Bearer {token}` - **Corps de la demande**: ```json { "sonarrUrl": "string", "sonarrApiKey": "string" } ``` - **Réponse réussie**: - **Code**: 200 OK - **Contenu**: ```json { "success": true, "message": "Connexion réussie à Sonarr" } ``` ### Tester la connexion Radarr - **URL**: `/api/settings/test-radarr` - **Méthode**: `POST` - **Description**: Teste la connexion à l'API Radarr - **En-têtes**: `Authorization: Bearer {token}` - **Corps de la demande**: ```json { "radarrUrl": "string", "radarrApiKey": "string" } ``` - **Réponse réussie**: - **Code**: 200 OK - **Contenu**: ```json { "success": true, "message": "Connexion réussie à Radarr" } ``` ## Sonarr (Séries) ### Obtenir toutes les séries - **URL**: `/api/sonarr/series` - **Méthode**: `GET` - **Description**: Récupère toutes les séries depuis Sonarr - **En-têtes**: `Authorization: Bearer {token}` - **Paramètres de requête**: - `sortKey` (optionnel): Clé de tri - `sortDirection` (optionnel): Direction du tri (asc/desc) - **Réponse réussie**: - **Code**: 200 OK - **Contenu**: ```json [ { "id": "number", "title": "string", "overview": "string", "status": "string", "nextAiring": "string", "network": "string", "images": [ { "coverType": "string", "url": "string" } ] } ] ``` ### Obtenir le calendrier des séries - **URL**: `/api/sonarr/calendar` - **Méthode**: `GET` - **Description**: Récupère le calendrier des épisodes à venir - **En-têtes**: `Authorization: Bearer {token}` - **Paramètres de requête**: - `start` (optionnel): Date de début (YYYY-MM-DD) - `end` (optionnel): Date de fin (YYYY-MM-DD) - **Réponse réussie**: - **Code**: 200 OK - **Contenu**: ```json [ { "id": "number", "seriesId": "number", "seasonNumber": "number", "episodeNumber": "number", "title": "string", "airDate": "string", "hasFile": "boolean", "seriesTitle": "string" } ] ``` ## Radarr (Films) ### Obtenir tous les films - **URL**: `/api/radarr/movies` - **Méthode**: `GET` - **Description**: Récupère tous les films depuis Radarr - **En-têtes**: `Authorization: Bearer {token}` - **Paramètres de requête**: - `sortKey` (optionnel): Clé de tri - `sortDirection` (optionnel): Direction du tri (asc/desc) - **Réponse réussie**: - **Code**: 200 OK - **Contenu**: ```json [ { "id": "number", "title": "string", "overview": "string", "status": "string", "inCinemas": "string", "physicalRelease": "string", "images": [ { "coverType": "string", "url": "string" } ] } ] ``` ### Obtenir le calendrier des films - **URL**: `/api/radarr/calendar` - **Méthode**: `GET` - **Description**: Récupère le calendrier des films à venir - **En-têtes**: `Authorization: Bearer {token}` - **Paramètres de requête**: - `start` (optionnel): Date de début (YYYY-MM-DD) - `end` (optionnel): Date de fin (YYYY-MM-DD) - **Réponse réussie**: - **Code**: 200 OK - **Contenu**: ```json [ { "id": "number", "title": "string", "overview": "string", "status": "string", "inCinemas": "string", "physicalRelease": "string", "hasFile": "boolean" } ] ``` ## Réponses d'erreur communes ### Erreur d'authentification - **Code**: 401 Unauthorized - **Contenu**: ```json { "message": "Non autorisé" } ``` ### Erreur de validation - **Code**: 400 Bad Request - **Contenu**: ```json { "message": "Validation échouée", "errors": { "champ": ["Message d'erreur"] } } ``` ### Erreur de connexion API - **Code**: 503 Service Unavailable - **Contenu**: ```json { "message": "Impossible de se connecter à l'API [Sonarr/Radarr]", "error": "Détails de l'erreur" } ```