Lista os cursos de um espaço ou de todos os que a pessoa pode abrir
GET/api/courses
- Auth
- Jeton requis
- Clé d’API:
- courses:read
- X-CommunityId
X-CommunityIdEnvoyez le X-CommunityId de la communauté où l’opération a lieu.
Lista os cursos do espaço informado em `spaceId` Sem `spaceId`, lista os cursos de **todos** os espaços da comunidade que a pessoa pode abrir (a mesma regra do espaço; espaço privado ou de plano sem acesso fica de fora). O acesso é o do **espaço** (`requireSpaceAccess`): sem acesso ao espaço, 403 sem título nem conteúdo; espaço de outra comunidade, 404. O `requiredPlanTier` do curso não é conferido.
Cursos **não têm moderação**: `moderationStatus` não filtra a lista. Rascunho e arquivado só aparecem para a equipe (owner, admin, moderador, financeiro e SuperAdmin); os demais veem só `published`.
Cada curso traz, além dos campos do curso, números do sumário e os dados **do próprio usuário**: - `modulesCount`, `lessonsCount`: módulos e aulas ativos; - `durationSeconds`: soma das durações das aulas em segundos; `null` quando alguma aula não tem duração no formato `mm:ss` ou `hh:mm:ss` (o app mostra o curso sem duração); - `userEnrollment`: a matrícula de quem pede (`enrolled`, `completed` ou `cancelled`) ou `null`; - `userProgress`: `{ completedLessons, totalLessons, percentage }` ou `null` (sem matrícula nem progresso); - `enrollmentsCount`: número de matriculados, **só para owner, admin, moderador, financeiro e SuperAdmin** (a chave não existe para o membro); - `product`: o produto que vende o curso (ou `null`), com `access` e `canEnter` **de quem pede**, os mesmos do detalhe (`plan` e `purchase` dizem que o curso está liberado sem matrícula; `paid`, que falta comprar). Calculados para a página inteira de uma vez. A fila de espera (`waitlist`) fica só no detalhe.
Paramètres
| Nom | Emplacement | Type | Description |
|---|---|---|---|
spaceIdfacultatif | query | string (uuid) | ID do espaço de Cursos. Opcional: sem ele, a lista traz os cursos de todos os espaços que a pessoa pode abrir. |
savedfacultatif | query | boolean | `true` traz só os cursos que **quem pede** salvou (filtro Salvos). Pessoal: a equipe também só vê os seus. Curso em rascunho, arquivado ou excluído sai da lista sem erro. |
En-têtes
| Nom | Type | Description |
|---|---|---|
X-CommunityIdfacultatif | string (uuid) | ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade. |
Réponses
| Statut | Description |
|---|---|
200 | Cursos do espaço. |
400 | Requisição inválida — falha de validação. |
401 | Token ausente, inválido ou expirado; token de outra comunidade (o `X-CommunityId` ou o `communityId` do corpo não é o do token); token antigo ou de uma sessão encerrada (troca de senha, convite aceito). Nesses casos a mensagem pede para entrar de novo (`auth.signInAgain`). |
403 | Autenticado, mas sem permissão para esta operação. |
404 | Recurso não encontrado. |
500 | Erro interno do servidor. |
Exemple curl
curl -X GET "https://api.memberfy.net/api/courses" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID"