Aller au contenu

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-CommunityId Envoyez le X-CommunityId de la communauté où l’opération a lieu.
Les descriptions des endpoints viennent directement de la spécification de l’API et sont en portugais pour l’instant. L’interface autour est traduite.

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

NomEmplacementTypeDescription
spaceIdfacultatifquerystring (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.
savedfacultatifqueryboolean`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

NomTypeDescription
X-CommunityIdfacultatifstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Réponses

StatutDescription
200Cursos do espaço.
400Requisição inválida — falha de validação.
401Token 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`).
403Autenticado, mas sem permissão para esta operação.
404Recurso não encontrado.
500Erro interno do servidor.

Exemple curl

curl -X GET "https://api.memberfy.net/api/courses" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID"