Adicionar membros do grupo vs adicionar proprietários: formato de dados é diferente

Ao usar a API para adicionar membros e proprietários a um grupo, parece que o formato de dados necessário é diferente. Isso pode ser intencional, mas gostaria de saber o porquê (isso está quebrando o pydiscourse, a melhor biblioteca que consigo encontrar para interagir com a API do Discourse em Python).

Adicionando um membro a um grupo:

curl -X PUT "https://{mydomain}/admin/groups/{group_id}/members.json" \ 
    -d 'usernames={my-username}' \
    -H "Api-Key: {my-api-key}" \
    -H "Api-Username: {my-api-username}"

Adicionando um proprietário a um grupo:

curl -X PUT "https://{mydomain}/admin/groups/{group_id}/owners.json" \ 
    -d 'group[usernames]={my-username}' \
    -H "Api-Key: {my-api-key}" \
    -H "Api-Username: {my-api-username}"

Tenho curiosidade sobre por que a chave para o parâmetro de nome de usuário no endpoint de proprietários precisa ser escrita como group[usernames] em vez de apenas usernames?

The only reason I can give as to why is that they are actually using two different controllers.

The add members endpoint is mapped to the groups controller:

PUT /admin/groups/:id/members(.:format) groups#add_members 

And the add owners endpoint is mapped to the admin groups controller.

PUT /admin/groups/:id/owners(.:format) admin/groups#add_owners

It’s unlikely we will update this endpoint because lots of integrations already use this endpoint as is. You best bet is to open up an issue in the pydiscourse repo. You could also monkey patch a fix for add_group_owner in your python app until it gets resolved inside of pydiscourse.

1 curtida