Pular para o conteúdo principal

Feature: Sala

Visao geral

A feature de Sala (reunioes) e controlada por enable_room no curso e na turma e operacionalizada pelos endpoints de class_room (sala principal, one-on-one e grupo).

Atores

  • Administrador/supervisor (configura opcoes e pode entrar como admin na sala).
  • Facilitador.
  • Participante inscrito.
  • Integracao externa: Jitsi/JaaS (via create_jaas_token).

Pre-condicoes

  • Flag enable_room no curso (we-dhedalos/functions/acfs/group_663b721c7c208.php).
  • Flag enable_room na turma (we-dhedalos/functions/acfs/group_662bf6328d87e.php).
  • Turma com facilitador definido (we-dhedalos/functions/rest/class_room.php:201, we-dhedalos/functions/rest/class_room.php:260).
  • Usuario autenticado para os endpoints de sala.

Fluxo principal

  1. Admin configura enable_room em curso e turma.
  2. API de turmas retorna enable_room efetivo por AND entre curso e turma (we-dhedalos/functions/rest/classes.php:541-547 e we-dhedalos/functions/rest/classes.php:1521-1522).
  3. Usuario chama endpoint de sala (/class_room, /class_room/one_on_one ou /class_room/group).
  4. Backend valida vinculo com turma e gera token de sala com create_jaas_token.

Fluxos alternativos

  • Turma nao encontrada ou combinacao usuario/turma invalida: 404 (we-dhedalos/functions/rest/class_room.php:153-155).
  • Usuario nao inscrito na turma: 403 (we-dhedalos/functions/rest/class_room.php:212-214, we-dhedalos/functions/rest/class_room.php:272-274).
  • Turma sem facilitador: 404 (we-dhedalos/functions/rest/class_room.php:208-210, we-dhedalos/functions/rest/class_room.php:268-270).
  • Falha na criacao do token/sala: 500 com detalhes (we-dhedalos/functions/rest/class_room.php:169-186, we-dhedalos/functions/rest/class_room.php:278-297).

Regras de negocio

  • enable_room efetivo = enable_room(curso) && enable_room(classes). Fonte: we-dhedalos/functions/rest/classes.php:541-547 e we-dhedalos/functions/rest/classes.php:1521-1522.
  • One-on-one exige participante inscrito na turma. Fonte: we-dhedalos/functions/rest/class_room.php:216-218.
  • Sala em grupo usa room_id informado na requisicao. Fonte: we-dhedalos/functions/rest/class_room.php:262-277.

Estados possiveis

  • enable_room no curso: 0 ou 1.
  • enable_room na turma: 0 ou 1.
  • Estado efetivo de sala na turma (payload): false ou true.

Endpoints envolvidos

  • OpenAPI GET /dhedalos/v1/class_room
  • OpenAPI GET /dhedalos/v1/class_room/one_on_one
  • OpenAPI GET /dhedalos/v1/class_room/group
  • OpenAPI GET /dhedalos/v1/classes/subscriber (retorna enable_room)
  • OpenAPI GET /dhedalos/v1/classes/facilitator (retorna enable_room)

Tabelas/CPTs afetados

  • model.md curso (meta enable_room)
  • model.md classes (meta enable_room, facilitator)
  • model.md students (vinculo user/class para autorizacao)
  • model.md wp_users (dados de usuario para token)

Pendencias/duvidas

  • Nao foi encontrada validacao backend que bloqueie os endpoints de sala quando enable_room esta desligado; a flag aparece no payload de turmas.