R-006 — Anotações do cliente pertencem ao terapeuta que as escreveu
TLDR: em
/api/v1/me/clients/:client_id/commentso terapeuta lista, cria, edita e exclui apenas as próprias anotações daquele cliente, sejam elas da relação terapeuta–cliente (UserClient) ou de sessões com o cliente (Meeting).
Given / When / Then
Dado que o terapeuta tem o cliente em current_user.clients (não rascunho)
Quando cria uma anotação por POST /me/clients/:client_id/comments
Então a anotação é gravada com commentable: UserClient e user: current_user, sem depender de sessão
Dado que existem anotações do cliente escritas pelo terapeuta e por outros participantes das sessões
Quando o terapeuta lista GET /me/clients/:client_id/comments
Então recebe só as próprias, do UserClient e das Meeting cujo dono é o paciente e em que o terapeuta participa, ordenadas por created_at desc
Dado uma anotação de outro autor ou de outro cliente
Quando o terapeuta tenta editar ou excluir pelo pid
Então recebe 404
Tabela de decisão
| Situação | index |
update/destroy |
|---|---|---|
Anotação do terapeuta no UserClient |
aparece | permitido |
Anotação do terapeuta em Meeting com o paciente |
aparece | permitido |
| Anotação de outro participante da sessão | não aparece | 404 |
| Anotação do terapeuta para outro cliente | não aparece | 404 |
| Cliente inexistente ou de outro terapeuta | 404 |
404 |
Restrições
contenté gravado como recebido (HTML do editor do front ou texto puro do painel da chamada); a sanitização acontece na exibição, notrgclub-web.- Não há checagem de plano PRO nas rotas; o acesso segue o padrão de
/me/clients(posse do cliente).
Testes vinculados
spec/requests/api/v1/clients_comments_index_spec.rbspec/requests/api/v1/clients_comments_create_spec.rbspec/requests/api/v1/clients_comments_update_spec.rbspec/requests/api/v1/clients_comments_destroy_spec.rb