Skip to main content
GET
Cursos do club

Authorizations

Authorization
string
header
required

Token OPACO de sessão de quem administra, emitido por /v1/auth/admin/sign-in e verificado contra a nossa tabela — o mesmo desenho do studentSession, para a outra identidade.

É o esquema de quem ADMINISTRA — o dashboard. O aluno do classroom usa o studentSession; uma rota consumida pelos dois declara os dois esquemas, e o middleware aceita qualquer um deles. As duas credenciais são opacas e chegam pelo mesmo cabeçalho: quem as separa é a tabela em que cada uma existe.

O dashboard o guarda em cookie httpOnly, que o BFF troca pelo Authorization a cada chamada.

Path Parameters

clubId
string<uuid>
required

Id público da organização — o mesmo que GET /v1/me devolve em organization_id.

Na URL o recurso se chama club; no contrato e no domínio, organization. A divergência é deliberada: clubs é a palavra do produto, e a URL é o que as pessoas leem.

É o identificador do provedor de autenticação, e é assim de propósito: o cliente precisa nomear a organização ao pedir o token, e o token é o que prova o escopo. Um id só nosso obrigaria a traduzir um no outro antes de ter um token — e a tradução exigiria uma chamada escopada, que é justamente a que ainda não dá para fazer.

O uuid interno da organização não aparece no contrato: ele é o que as chaves estrangeiras do domínio referenciam, e continua sendo nosso.

Query Parameters

q
string

Busca no título.

Maximum string length: 200
status
enum<string>[]

Um ou vários (status=draft&status=archived). Ausente traz o que está DE PÉ — publicado e rascunho —, nunca o arquivado: uma lista que abre mostrando o que alguém já tirou de vista desfaz o arquivamento a cada visita.

O estado de um curso ou de uma aula, e os três são excludentes: archived é o que foi tirado de vista, draft é o que nunca foi publicado (ou está agendado para o futuro) e published é o que já vale para quem tem acesso. Não é uma coluna: sai de archived e de published_at, que continuam sendo a verdade.

Available options:
published,
draft,
archived
format
enum<string>[]

Um ou vários (format=ebook&format=masterclass). Ausente traz todo formato: a aba escolhe, e quem não pergunta vê o catálogo inteiro.

Como o conteúdo se APRESENTA — a aba em que ele aparece no catálogo e a palavra que a tela escreve. Não é um tipo de domínio: um ebook é um curso de uma aula, com a mesma árvore, os mesmos blocos, a mesma agenda e o mesmo entregável, e NENHUMA regra de acesso, de estrutura ou de liberação olha para este campo.

course é o catálogo com módulos e aulas, ebook é a leitura (um PDF), masterclass é a aula única em vídeo — gravação de live inclusive, que só difere na procedência. Curso criado sem formato é course.

Available options:
course,
ebook,
masterclass
created_from
string<date-time>

Criados a partir deste instante (inclusive).

created_until
string<date-time>

Criados antes deste instante.

sort
enum<string>
default:created

Empates saem pela data de criação, da mais nova para a mais antiga.

Available options:
created,
title
order
enum<string>

Ausente é desc para created e asc para title.

Available options:
asc,
desc
limit
integer
default:50
Required range: 1 <= x <= 100
page
integer
default:1
Required range: x >= 1

Response

Os cursos do recorte pedido

data
object[]
required
total
integer
required

Quantos cursos o recorte tem, além desta página.