Mueva un registro a una lista diferente dentro del mismo proyecto o entre proyectos con copias y validaciones completas.
Mover Registro a Lista
La mutación moveTodo
permite mover un registro a una lista diferente. Esta operación crea una copia completa del registro en la lista de destino y lo elimina de la lista de origen. Los registros se pueden mover dentro del mismo proyecto o entre diferentes proyectos (con los permisos apropiados).
Ejemplo Básico
mutation MoveTodo {
moveTodo(
input: {
todoId: "todo_123abc"
todoListId: "list_456def"
}
)
}
Ejemplo de Movimiento entre Proyectos
mutation MoveTodoAcrossProjects {
moveTodo(
input: {
todoId: "todo_123abc"
todoListId: "different-project-list_789xyz"
}
)
}
Parámetros de Entrada
MoveTodoInput
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
todoId |
String! | ✅ Sí | El ID del registro a mover |
todoListId |
String! | ✅ Sí | El ID de la lista de destino |
Respuesta
La mutación devuelve un valor Boolean!
:
true
- El registro fue movido exitosamente- Se lanzan errores en caso de fallo en lugar de devolver
false
Qué se Mueve
Cuando se mueve un registro, los siguientes elementos se copian a la nueva ubicación:
- ✅ Asignados - Todos los usuarios asignados
- ✅ Listas de Verificación - Todos los elementos de la lista de verificación y su estado de finalización
- ✅ Comentarios - Todos los comentarios y respuestas
- ✅ Campos Personalizados - Todos los valores de campos personalizados
- ✅ Descripción - Descripción completa del registro y formato
- ✅ Fecha de Vencimiento - Fecha y hora de vencimiento original
- ✅ Etiquetas - Todas las etiquetas asociadas
- ✅ Acciones de Tareas - Todas las subtareas y elementos de acción
- ✅ Archivos - Todos los archivos adjuntos (con manejo especial para movimientos entre proyectos)
Manejo de Posición
- Los registros se posicionan automáticamente al final de la lista de destino
- No puede especificar una posición personalizada - se calcula automáticamente
- La posición se establece en la posición máxima actual + 65,535
Permisos Requeridos
Diferentes niveles de permisos tienen diferentes capacidades:
Rol de Usuario | Mismo Proyecto | Entre Proyectos | Acceso a Archivos |
---|---|---|---|
OWNER |
✅ Sí | ✅ Sí | All files |
ADMIN |
✅ Sí | ✅ Sí | All files |
MEMBER |
✅ Sí | ❌ No | Own files only |
Requisitos de Permiso
- Debe tener acceso
OWNER
,ADMIN
, oMEMBER
al proyecto de origen - Debe tener acceso al proyecto de destino
- Los usuarios
MEMBER
no pueden mover registros entre diferentes proyectos - Ambos proyectos deben estar activos (no archivados)
Respuestas de Error
Registro No Encontrado
{
"errors": [{
"message": "Todo was not found.",
"extensions": {
"code": "TODO_NOT_FOUND"
}
}]
}
Lista No Encontrada
{
"errors": [{
"message": "Todo list was not found.",
"extensions": {
"code": "TODO_LIST_NOT_FOUND"
}
}]
}
Permiso Denegado entre Proyectos
{
"errors": [{
"message": "You are not authorized.",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Manejo de Archivos
Movimientos en el Mismo Proyecto
- Los archivos se mueven directamente sin crear copias
- Se preservan todos los permisos de archivo
Movimientos entre Proyectos
- Se crean nuevas copias de archivos en el almacenamiento del proyecto de destino
- Los archivos originales se eliminan de forma asíncrona después de una copia exitosa
- Los permisos de archivo pueden actualizarse según la configuración del proyecto de destino
- Los usuarios
MEMBER
solo pueden mover archivos que poseen
Efectos Secundarios
Mover un registro desencadena varias acciones automáticas:
- Registro de Actividad - Crea un registro de actividad que muestra el movimiento
- Notificaciones - Notifica a los miembros relevantes del proyecto
- Webhooks - Desencadena el evento de webhook
handleTodoMoved
- Automatizaciones - Ejecuta automatizaciones configuradas para movimientos de registros
- Actualizaciones en Tiempo Real - Publica actualizaciones en vivo a todos los clientes conectados
- Actualizaciones de Gráficos - Actualiza gráficos y estadísticas del proyecto
Notas Importantes
- Copia Completa: Todos los datos del registro se copian - no puede mover selectivamente solo ciertos elementos
- Posición Automática: Los registros siempre se colocan al final de la lista de destino
- Restricciones entre Proyectos: Los usuarios
MEMBER
no pueden mover registros entre proyectos - Limpieza Asíncrona: La limpieza de archivos ocurre en segundo plano para movimientos entre proyectos
- Preserva el Historial: Se mantienen comentarios, actividad y auditorías
- Eventos de Webhook: Las operaciones de movimiento desencadenan eventos de eliminación y creación para sincronización en tiempo real
Casos de Uso
Reorganización del Trabajo
Mueva registros entre listas para reorganizar la estructura del proyecto o las etapas del flujo de trabajo.
Transferencias entre Proyectos
Transfiera registros entre proyectos cuando el trabajo necesita moverse a un equipo o fase diferente.
Consolidación de Listas
Mueva registros al combinar o reestructurar listas de proyectos.