add docker + debug
This commit is contained in:
parent
848a79a04e
commit
1f4193f9c0
26 changed files with 21051 additions and 28 deletions
295
backend/API_DOCS.md
Normal file
295
backend/API_DOCS.md
Normal file
|
|
@ -0,0 +1,295 @@
|
|||
# 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"
|
||||
}
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue