Gerenciar listas de tarefas dentro de projetos - criar, editar, excluir e consultar listas
Visão Geral
Listas no Blue são contêineres para organizar tarefas dentro de um projeto. Cada lista pode conter várias tarefas e ajuda a estruturar o trabalho em grupos lógicos. As listas suportam posicionamento, bloqueio e controle de acesso baseado em funções.
Conceitos Chave
- Cada projeto pode ter até 50 listas
- As listas são ordenadas por posição (crescente)
- As listas podem ser bloqueadas para evitar modificações
- As listas respeitam permissões em nível de projeto e baseadas em funções
- Listas excluídas são movidas para a lixeira (exclusão suave)
Consultas
Obter uma Lista Única
Recuperar uma lista de tarefas específica pelo ID.
query GetTodoList($id: String!) {
todoList(id: $id) {
id
uid
title
position
isDisabled
isLocked
createdAt
updatedAt
project {
id
name
}
createdBy {
id
username
}
}
}
Obter Todas as Listas em um Projeto
Recuperar todas as listas de tarefas para um projeto específico.
query GetProjectLists($projectId: String!) {
todoLists(projectId: $projectId) {
id
uid
title
position
isDisabled
isLocked
createdAt
updatedAt
}
}
Consulta Avançada de Listas
Consultar listas com filtragem, ordenação e paginação.
query SearchTodoLists($filter: TodoListsFilterInput!, $sort: [TodoListsSort!], $skip: Int, $take: Int) {
todoListQueries {
todoLists(filter: $filter, sort: $sort, skip: $skip, take: $take) {
items {
id
uid
title
position
isDisabled
isLocked
createdAt
updatedAt
project {
id
name
}
}
pageInfo {
hasNextPage
hasPreviousPage
total
}
}
}
}
Mutations
Criar uma Lista
Criar uma nova lista de tarefas em um projeto.
mutation CreateTodoList($input: CreateTodoListInput!) {
createTodoList(input: $input) {
id
uid
title
position
isDisabled
isLocked
createdAt
project {
id
name
}
}
}
Exemplo:
mutation {
createTodoList(input: {
projectId: "project-123"
title: "Sprint 1 Tasks"
position: 1.0
}) {
id
title
}
}
Editar uma Lista
Atualizar as propriedades de uma lista de tarefas existente.
mutation EditTodoList($input: EditTodoListInput!) {
editTodoList(input: $input) {
id
title
position
isLocked
updatedAt
}
}
Exemplo:
mutation {
editTodoList(input: {
todoListId: "list-123"
title: "Sprint 1 - In Progress"
position: 2.0
isLocked: true
}) {
id
title
isLocked
}
}
Excluir uma Lista
Excluir uma lista de tarefas (move para a lixeira).
mutation DeleteTodoList($input: DeleteTodoListInput!) {
deleteTodoList(input: $input) {
success
}
}
Exemplo:
mutation {
deleteTodoList(input: {
projectId: "project-123"
todoListId: "list-123"
}) {
success
}
}
Marcar Lista como Concluída/Não Concluída
Marcar todas as tarefas em uma lista como concluídas ou não concluídas.
# Mark as done
mutation MarkListDone($todoListId: String!, $filter: TodosFilter) {
markTodoListAsDone(todoListId: $todoListId, filter: $filter)
}
# Mark as undone
mutation MarkListUndone($todoListId: String!, $filter: TodosFilter) {
markTodoListAsUndone(todoListId: $todoListId, filter: $filter)
}
Tipos de Entrada
CreateTodoListInput
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
projectId |
String! | ✅ Sim | O ID do projeto onde a lista será criada |
title |
String! | ✅ Sim | O nome da lista |
position |
Float! | ✅ Sim | A posição da lista (para ordenação) |
EditTodoListInput
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
todoListId |
String! | ✅ Sim | O ID da lista a ser editada |
title |
String | Não | Novo título para a lista |
position |
Float | Não | Nova posição para a lista |
isLocked |
Boolean | Não | Se a lista deve ser bloqueada |
DeleteTodoListInput
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
projectId |
String! | ✅ Sim | O ID do projeto (para verificação) |
todoListId |
String! | ✅ Sim | O ID da lista a ser excluída |
TodoListsFilterInput
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
companyIds |
[String!]! | ✅ Sim | Filtrar por IDs de empresas |
projectIds |
[String!] | Não | Filtrar por IDs de projetos específicos |
ids |
[String!] | Não | Filtrar por IDs de listas específicas |
titles |
[String!] | Não | Filtrar por títulos de listas |
search |
String | Não | Pesquisar listas por título |
Valores de Ordenação de TodoLists
Valor | Descrição |
---|---|
title_ASC |
Ordenar por título em ordem crescente |
title_DESC |
Ordenar por título em ordem decrescente |
createdAt_ASC |
Ordenar por data de criação em ordem crescente |
createdAt_DESC |
Ordenar por data de criação em ordem decrescente |
updatedAt_ASC |
Ordenar por data de atualização em ordem crescente |
updatedAt_DESC |
Ordenar por data de atualização em ordem decrescente |
position_ASC |
Ordenar por posição em ordem crescente (padrão) |
position_DESC |
Ordenar por posição em ordem decrescente |
Tipos de Resposta
Tipo TodoList
Campo | Tipo | Descrição |
---|---|---|
id |
ID! | Identificador único |
uid |
String! | Identificador amigável |
position |
Float! | Posição da lista para ordenação |
title |
String! | Nome da lista |
isDisabled |
Boolean! | Se a lista está desativada |
isLocked |
Boolean | Se a lista está bloqueada |
createdAt |
DateTime! | Timestamp de criação |
updatedAt |
DateTime! | Timestamp da última atualização |
activity |
Activity | Log de atividade associado |
createdBy |
User | Usuário que criou a lista |
project |
Project! | Projeto pai |
todos |
[Todo!]! | Tarefas nesta lista |
todosCount |
Int! | Número de tarefas |
Tipo TodoListsPagination
Campo | Tipo | Descrição |
---|---|---|
items |
[TodoList!]! | Array de listas de tarefas |
pageInfo |
PageInfo! | Informações de paginação |
Permissões Necessárias
Permissões de Consulta
Operação | Permissão Necessária |
---|---|
todoList |
Must be authenticated |
todoLists |
Must be authenticated and in company |
todoListQueries.todoLists |
Must be authenticated and in company |
Permissões de Mutação
Operação | Funções em Nível de Projeto Permitidas |
---|---|
createTodoList |
OWNER, ADMIN, MEMBER |
editTodoList |
OWNER, ADMIN, MEMBER, CLIENT |
deleteTodoList |
OWNER, ADMIN, MEMBER |
markTodoListAsDone |
OWNER, ADMIN, MEMBER |
markTodoListAsUndone |
OWNER, ADMIN, MEMBER |
Nota: Usuários com a função CLIENT podem editar listas, mas não podem criá-las ou excluí-las. Usuários com funções VIEW_ONLY ou COMMENT_ONLY não podem criar, editar ou excluir listas.
Respostas de Erro
TodoListNotFoundError
{
"errors": [{
"message": "Todo list was not found.",
"extensions": {
"code": "TODO_LIST_NOT_FOUND"
}
}]
}
ProjectNotFoundError
{
"errors": [{
"message": "Project was not found.",
"extensions": {
"code": "PROJECT_NOT_FOUND"
}
}]
}
Erro de Máximo de Listas
{
"errors": [{
"message": "You have reached the maximum number of todo lists for this project.",
"extensions": {
"code": "INTERNAL_SERVER_ERROR"
}
}]
}
UnauthorizedError
{
"errors": [{
"message": "Unauthorized",
"extensions": {
"code": "UNAUTHORIZED"
}
}]
}
Notas Importantes
- Limite de Listas: Cada projeto pode ter um máximo de 50 listas
- Exclusão Suave: Listas excluídas são movidas para a lixeira e podem ser potencialmente recuperadas
- Gerenciamento de Posição: Ao criar listas, certifique-se de que as posições não conflitam. Use valores incrementais (1.0, 2.0, 3.0) para permitir inserção entre listas
- Acesso Baseado em Funções: Listas podem ser ocultadas de certas funções usando permissões ProjectUserRoleTodoList
- Webhooks: Criação, atualizações e exclusões de listas acionam webhooks se configurados
- Rastreamento de Atividades: Todas as operações de lista são registradas no feed de atividades
- Atualizações em Tempo Real: Alterações nas listas são publicadas via assinaturas para atualizações em tempo real
Operações Relacionadas
- Use
todos
consulta para buscar tarefas dentro de uma lista - Use
createTodo
mutação para adicionar tarefas a uma lista - Use
moveTodo
mutação para mover tarefas entre listas - Inscreva-se nas alterações de lista usando
subscribeToTodoList
assinatura