295 lines
6.3 KiB
Markdown
295 lines
6.3 KiB
Markdown
# 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"
|
|
}
|
|
```
|