Mova um registro para uma lista diferente dentro do mesmo projeto ou entre projetos com cópia e validação abrangentes.
Mover Registro para Lista
A mutação moveTodo
permite mover um registro para uma lista diferente. Esta operação cria uma cópia completa do registro na lista de destino e remove-o da lista de origem. Os registros podem ser movidos dentro do mesmo projeto ou entre projetos diferentes (com as permissões apropriadas).
Exemplo Básico
mutation MoveTodo {
moveTodo(
input: {
todoId: "todo_123abc"
todoListId: "list_456def"
}
)
}
Exemplo de Movimento Entre Projetos
mutation MoveTodoAcrossProjects {
moveTodo(
input: {
todoId: "todo_123abc"
todoListId: "different-project-list_789xyz"
}
)
}
Parâmetros de Entrada
MoveTodoInput
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
todoId |
String! | ✅ Sim | O ID do registro a ser movido |
todoListId |
String! | ✅ Sim | O ID da lista de destino |
Resposta
A mutação retorna um valor Boolean!
:
true
- O registro foi movido com sucesso- Erros são lançados em caso de falha em vez de retornar
false
O Que é Movido
Quando um registro é movido, os seguintes elementos são copiados para o novo local:
- ✅ Atribuições - Todos os usuários atribuídos
- ✅ Listas de Verificação - Todos os itens da lista de verificação e seu status de conclusão
- ✅ Comentários - Todos os comentários e respostas
- ✅ Campos Personalizados - Todos os valores dos campos personalizados
- ✅ Descrição - Descrição completa do registro e formatação
- ✅ Data de Vencimento - Data e hora de vencimento originais
- ✅ Tags - Todas as tags associadas
- ✅ Ações de Tarefa - Todas as subtarefas e itens de ação
- ✅ Arquivos - Todos os anexos de arquivos (com tratamento especial para movimentos entre projetos)
Manipulação de Posição
- Os registros são automaticamente posicionados no final da lista de destino
- Você não pode especificar uma posição personalizada - ela é calculada automaticamente
- A posição é definida como a posição máxima atual + 65.535
Permissões Necessárias
Diferentes níveis de permissão têm diferentes capacidades:
Função do Usuário | Mesmo Projeto | Entre Projetos | Acesso a Arquivos |
---|---|---|---|
OWNER |
✅ Sim | ✅ Sim | All files |
ADMIN |
✅ Sim | ✅ Sim | All files |
MEMBER |
✅ Sim | ❌ Não | Own files only |
Requisitos de Permissão
- Você deve ter acesso
OWNER
,ADMIN
ouMEMBER
ao projeto de origem - Você deve ter acesso ao projeto de destino
- Usuários
MEMBER
não podem mover registros entre diferentes projetos - Ambos os projetos devem estar ativos (não arquivados)
Respostas de Erro
Registro Não Encontrado
{
"errors": [{
"message": "Todo was not found.",
"extensions": {
"code": "TODO_NOT_FOUND"
}
}]
}
Lista Não Encontrada
{
"errors": [{
"message": "Todo list was not found.",
"extensions": {
"code": "TODO_LIST_NOT_FOUND"
}
}]
}
Permissão Negada Entre Projetos
{
"errors": [{
"message": "You are not authorized.",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Manipulação de Arquivos
Movimentos no Mesmo Projeto
- Arquivos são movidos diretamente sem criar cópias
- Todas as permissões de arquivo são preservadas
Movimentos Entre Projetos
- Novas cópias de arquivos são criadas no armazenamento do projeto de destino
- Arquivos originais são excluídos de forma assíncrona após a cópia bem-sucedida
- As permissões de arquivo podem ser atualizadas com base nas configurações do projeto de destino
- Usuários
MEMBER
só podem mover arquivos que possuem
Efeitos Colaterais
Mover um registro aciona várias ações automáticas:
- Registro de Atividade - Cria um registro de atividade mostrando o movimento
- Notificações - Notifica os membros relevantes do projeto
- Webhooks - Aciona o evento de webhook
handleTodoMoved
- Automatizações - Executa automatizações configuradas para movimentos de registro
- Atualizações em Tempo Real - Publica atualizações ao vivo para todos os clientes conectados
- Atualizações de Gráficos - Atualiza gráficos e estatísticas do projeto
Notas Importantes
- Cópia Completa: Todos os dados do registro são copiados - você não pode mover seletivamente apenas certos elementos
- Posição Automática: Os registros são sempre colocados no final da lista de destino
- Restrições Entre Projetos: Usuários
MEMBER
não podem mover registros entre projetos - Limpeza Assíncrona: A limpeza de arquivos acontece em segundo plano para movimentos entre projetos
- Preserva o Histórico: Comentários, atividades e trilhas de auditoria são mantidos
- Eventos de Webhook: Operações de movimento acionam eventos de exclusão e criação para sincronização em tempo real
Casos de Uso
Reorganização do Trabalho
Mova registros entre listas para reorganizar a estrutura do projeto ou estágios de fluxo de trabalho.
Transferências Entre Projetos
Transfira registros entre projetos quando o trabalho precisar ser movido para uma equipe ou fase diferente.
Consolidação de Listas
Mova registros ao combinar ou reestruturar listas de projetos.