Social
Com quem o dono está conectado.
Este escopo diz quem, nunca o que essas contas têm.
Os pedidos para seguir uma conta privada são respondidos um a um em
/api/v1/social/follow-requests/{username}, ou todos de uma vez:
PUT /api/v1/social/follow-requests com {"all": true} aceita, e
DELETE /api/v1/social/follow-requests?all=true recusa. O all é
obrigatório nos dois, porque esvaziar a fila não tem volta.
/api/ v1/ social/ followersContas que seguem o dono.
/api/ v1/ social/ followingContas que o dono segue.
/api/ v1/ social/ blocksQuem o dono bloqueou. A direção contrária não existe: uma conta lê os bloqueios que fez, nunca os que sofreu.
Parâmetros
| Campo | Tipo | Observações |
|---|---|---|
page | integer | De 1 a 1000. |
q | string | Filtra por nome de usuário ou nome de exibição. |
/api/ v1/ social/ following/ {username}Segue uma conta, ou pede para seguir se ela for privada. A resposta traz following e requested, e só um dos dois é verdadeiro. Fazer duas vezes não muda nada.
/api/ v1/ social/ following/ {username}Deixa de seguir uma conta, ou retira o pedido que ainda não foi respondido.
/api/ v1/ social/ blocks/ {username}Bloqueia uma conta. Isso também desfaz o seguir nos dois sentidos, o que é decisão do banco e não desta rota.
/api/ v1/ social/ blocks/ {username}Desbloqueia uma conta. Seguir de volta não é automático.
/api/ v1/ social/ follow-requestsQuem pediu para seguir uma conta privada e ainda está esperando. Só essa direção existe: o que esta conta pediu a outras é a fila delas para responder, e listá-la aqui seria ler uma decisão que ninguém tomou.
Parâmetros
| Campo | Tipo | Observações |
|---|---|---|
page | integer | De 1 a 1000. |
q | string | Filtra por nome de usuário ou nome de exibição. |
/api/ v1/ social/ follow-requestsAceita todos os pedidos que estão esperando, de uma vez, e diz quantos: {"data": {"approved": 3}}. Cada um é aceito como na rota de um pedido só, com a mesma verificação em duas etapas quando a conta a exige. Sem all: true no corpo responde 400, porque esvaziar a fila não tem volta e não devia acontecer por engano.
Corpo
| Campo | Tipo | Observações |
|---|---|---|
allobrigatório | boolean | Precisa ser true. |
/api/ v1/ social/ follow-requestsRecusa todos os pedidos que estão esperando, de uma vez, e diz quantos: {"data": {"declined": 3}}. Sem ?all=true responde 400, pelo mesmo motivo do PUT.
Parâmetros
| Campo | Tipo | Observações |
|---|---|---|
allobrigatório | boolean | Precisa ser true. |
/api/ v1/ social/ follow-requests/ {username}Aceita um pedido. Quem não estava esperando responde 404, em vez de um sucesso silencioso: aprovar um pedido que foi retirado não devia parecer aprovado.
/api/ v1/ social/ follow-requests/ {username}Recusa um pedido. Some da fila dos dois jeitos; só aceitar cria o seguir.
/api/ v1/ reportsConta à moderação sobre alguma coisa. Não existe lado de leitura, e não vai existir: uma denúncia é um recado para quem cuida delas, e deixar ver o andamento (ou deixar contar quantas vezes uma conta foi denunciada) transforma a fila em arma. A resposta diz que chegou, e nada mais. Uma pessoa tem uma denúncia aberta por coisa: denunciar de novo o mesmo perfil ou o mesmo conteúdo enquanto a primeira não foi fechada responde 409 conflict, e a primeira continua valendo. ARCADE_APP denuncia um jogo do Arcade: não pede username, porque a conta é a de quem publica o jogo, e leva o uloggd a verificar de novo a URL do jogo, no máximo uma vez por hora por jogo.
Corpo
| Campo | Tipo | Observações |
|---|---|---|
onobrigatório | string | PROFILE, REVIEW, LIST, SCREENSHOT, DIARY, PROFILE_COMMENT, CONTENT_COMMENT ou ARCADE_APP. |
username | string | A conta de quem publicou. Uma denúncia nomeia a conta de que trata, mesmo quando é sobre um conteúdo dela. Obrigatório para todo tipo menos ARCADE_APP, em que o banco tira a conta do próprio jogo. |
reasonobrigatório | string | HARASSMENT, HATE_SPEECH, SPAM, IMPERSONATION, SEXUAL_CONTENT, CHILD_SAFETY, SELF_HARM, VIOLENCE, PRIVACY, SPOILER, SCAM ou OTHER. Todos valem para qualquer tipo, menos SPOILER, que é para algo publicado (uma avaliação, sessão, lista, captura ou comentário) e é recusado com 400 num PROFILE, e SCAM (golpe), que só vale para ARCADE_APP. CHILD_SAFETY, SELF_HARM e VIOLENCE vão para o começo da fila da moderação, e SCAM também passa à frente. OTHER não nomeia regra nenhuma, então pede details. |
id | string | O conteúdo denunciado. Obrigatório para tudo que não seja PROFILE, onde a conta em si é o assunto. Com ARCADE_APP, o id do aplicativo do jogo. |
details | string | Até 1000 caracteres. Com OTHER é obrigatório e tem pelo menos 10, sem contar espaços nas pontas: sem isso responde 400. |
instance_id | uuid | Só com ARCADE_APP, opcional: a partida de onde a denúncia saiu. A moderação recebe junto o lançamento, a origem e a última verificação daquele momento. |