POST Criar Token
Gera (ou reaproveita, se em cache) um token LiveKit para o usuário autenticado entrar numa sala de videochamada.
Esta rota requer o header Authorization: Bearer {accessToken}
Não exige @CheckPermissions — qualquer usuário autenticado pode chamar.
{ roomName } é tipado como objeto TypeScript solto, não como uma classe com class-validator — o ValidationPipe global não valida nem sanitiza esse corpo. Enviar sem roomName (ou com tipo errado) não gera 400; o erro só aparece adiante, ao tentar gerar o token pra uma sala inválida.
Endpoint
POST https://api-dev.imagemais.com.br/api/telemedicine/token
Corpo da Requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
roomName | string | ✅ (não validado, ver aviso acima) | Nome da sala LiveKit (formato telemedicine-{consultationId}-{createdAtMs}) |
O token é gerado com identity = user-{userId} (do token JWT) e name = nome do usuário no banco. TTL de 3 minutos. Um token já gerado para a mesma sala+identity é reaproveitado do cache Redis enquanto não expirar.
Requisição
curl -X 'POST' \
'https://api-dev.imagemais.com.br/api/telemedicine/token' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {accessToken}' \
-d '{
"roomName": "telemedicine-123-1753000000000"
}'
Respostas
201 Sucesso
Token JWT do LiveKit (string), embrulhado em data.
{
"data": "eyJhbGciOiJIUzI1NiJ9...<livekit-jwt>"
}
404 Usuário não encontrado
Retornado quando o userId do token não corresponde a um usuário ativo da conta.
{
"statusCode": 404,
"message": "Usuário não encontrado"
}
500 LiveKit não configurado
Retornado se LIVEKIT_API_KEY/LIVEKIT_API_SECRET não estiverem configurados no servidor.
{
"statusCode": 500,
"message": "Erro ao criar o acesso para a sala de telemedicina"
}