# API SAM - Cours

[← Cohortes](02-cohorts.md) | [Accueil](README.md) | [Progression →](04-progress.md)

---

Gestion des cours Moodle.

**Base URL :** `/api/moodlev5/courses`

---

## Endpoints

| Méthode | Route | Description |
|---------|-------|-------------|
| GET | `/courses` | Liste des cours |
| GET | `/courses/{moodle_id}` | Détail d'un cours |
| GET | `/courses/{moodle_id}/users` | Utilisateurs inscrits |

---

## GET /courses

Liste les cours (paginé).

**Paramètres query :**

| Paramètre | Type | Défaut | Description |
|-----------|------|--------|-------------|
| page | int | 1 | Numéro de page |
| per_page | int | 20 | Éléments par page |

**Exemple :**

```bash
curl -X GET "https://votre-domaine.com/api/moodlev5/courses" \
  -H "X-API-Key: bubul_sk_xxx"
```

**Réponse :**

```json
{
  "success": true,
  "data": {
    "items": [
      {
        "moodle_id": 45,
        "shortname": "SEC-001",
        "fullname": "Formation Sécurité",
        "summary": "Description du cours...",
        "category_id": 1,
        "start_date": "2026-01-15T00:00:00+00:00",
        "end_date": "2026-03-15T00:00:00+00:00",
        "visible": true,
        "format": "topics",
        "numsections": 10
      }
    ],
    "pagination": { ... }
  }
}
```

---

## GET /courses/{moodle_id}

Récupère un cours avec ses sections et activités.

**Exemple :**

```bash
curl -X GET "https://votre-domaine.com/api/moodlev5/courses/45" \
  -H "X-API-Key: bubul_sk_xxx"
```

**Réponse :**

```json
{
  "success": true,
  "data": {
    "course": {
      "moodle_id": 45,
      "shortname": "SEC-001",
      "fullname": "Formation Sécurité",
      "summary": "Description du cours...",
      "sections": [
        {
          "moodle_id": 1,
          "name": "Introduction",
          "position": 1,
          "activities": [
            {
              "moodle_id": 10,
              "name": "Vidéo d'introduction",
              "type": "resource"
            },
            {
              "moodle_id": 11,
              "name": "Quiz d'évaluation",
              "type": "quiz"
            }
          ]
        }
      ]
    }
  }
}
```

---

## GET /courses/{moodle_id}/users

Liste les utilisateurs inscrits à un cours avec leur progression.

**Exemple :**

```bash
curl -X GET "https://votre-domaine.com/api/moodlev5/courses/45/users" \
  -H "X-API-Key: bubul_sk_xxx"
```

**Réponse :**

```json
{
  "success": true,
  "data": {
    "users": [
      {
        "moodle_id": 123,
        "fullname": "Jean Dupont",
        "email": "j.dupont@example.com",
        "progress": 75,
        "completed": false,
        "last_access": "2026-02-10T14:30:00+00:00"
      }
    ]
  }
}
```
