managerr/backend/API_DOCS.md
2025-07-21 16:38:07 +02:00

6.3 KiB

Documentation de l'API Managerr

Authentification

Inscription

  • URL: /api/auth/register
  • Méthode: POST
  • Description: Crée un nouvel utilisateur
  • Corps de la demande:
    {
      "username": "string",
      "email": "string",
      "password": "string"
    }
    
  • Réponse réussie:
    • Code: 201 Created
    • Contenu:
      {
        "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:
    {
      "email": "string",
      "password": "string"
    }
    
  • Réponse réussie:
    • Code: 200 OK
    • Contenu:
      {
        "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:
      {
        "_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:
    {
      "sonarrUrl": "string",
      "sonarrApiKey": "string",
      "radarrUrl": "string",
      "radarrApiKey": "string"
    }
    
  • Réponse réussie:
    • Code: 200 OK
    • Contenu:
      {
        "_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:
    {
      "sonarrUrl": "string",
      "sonarrApiKey": "string"
    }
    
  • Réponse réussie:
    • Code: 200 OK
    • Contenu:
      {
        "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:
    {
      "radarrUrl": "string",
      "radarrApiKey": "string"
    }
    
  • Réponse réussie:
    • Code: 200 OK
    • Contenu:
      {
        "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:
      [
        {
          "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:
      [
        {
          "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:
      [
        {
          "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:
      [
        {
          "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:
    {
      "message": "Non autorisé"
    }
    

Erreur de validation

  • Code: 400 Bad Request
  • Contenu:
    {
      "message": "Validation échouée",
      "errors": {
        "champ": ["Message d'erreur"]
      }
    }
    

Erreur de connexion API

  • Code: 503 Service Unavailable
  • Contenu:
    {
      "message": "Impossible de se connecter à l'API [Sonarr/Radarr]",
      "error": "Détails de l'erreur"
    }