Tarefa

7 funções do TermoSupport para tarefa.

// npm install termo_core --save-exact
import * as support from "termo_core/support";
// ou: import { support } from "termo_core";
FunçãoRotaO que faz
buscar_paginador_tarefaGET /tarefaLista as tarefas paginadas
criar_tarefaPOST /tarefaCadastra uma tarefa
buscar_auto_complete_tarefaGET /tarefa/autocompleteLista básica de tarefas para seleção
buscar_pelo_filtro_tarefaGET /tarefa/filtroBusca tarefas por filtro
buscar_pelo_id_tarefaGET /tarefa/{id}Busca uma tarefa pelo id
atualizar_pelo_id_tarefaPATCH /tarefa/{id}Atualiza uma tarefa pelo id
deletar_pelo_id_tarefaDELETE /tarefa/{id}Exclui uma tarefa pelo id

buscar_paginador_tarefa

GET/tarefa Exige credencial

Lista as tarefas paginadas

Exige a permissão de leitura na área projetos (qualquer das ações ler, criar, editar ou deletar libera a leitura). Lista da mais recente para a mais antiga, sempre 50 por página: tamanho é ignorado. Filtra por projeto_id, responsavel_id, concluida e busca (título). Visibilidade: projeto com visibilidade MEMBROS só aparece para o dono, os membros e o master do TermoAuth; para os demais ele, as tarefas e as seções dele somem das listas e o acesso pelo id (ou por projeto_id/tarefa_id/secao_id na query) responde 404. O responsável sempre enxerga a própria tarefa.

function buscar_paginador_tarefa(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPaginadorTarefa = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaTarefa>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_tarefa } from "termo_core/support";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_paginador_tarefa(credencial_de_acesso, { pagina: 1 });

Argumentos

Nome

Tipo

Retorno: Promise<tipos.PaginaTarefa> · Rust: Result<tipos::PaginaTarefa, ErroAoChamarServico> · veja PaginaTarefa.

criar_tarefa

POST/tarefa Exige credencial

Cadastra uma tarefa

Exige a permissão criar na área projetos. Cria a tarefa no projeto. Sem secao_id, entra na primeira coluna; com tarefa_pai_id, vira subtarefa (sem coluna; subtarefa não tem subtarefas). ticket_id liga a tarefa ao ticket de suporte que a originou. titulo é obrigatório (até 300 caracteres); descricao até 20000; prioridade é BAIXA, MEDIA, ALTA ou URGENTE; estimativa de 0 a 10000 pontos; inicio não pode passar do prazo. Quem criou fica como criador, a atividade ganha a linha de criação e o responsável recebe uma notificação. Visibilidade: projeto com visibilidade MEMBROS só aparece para o dono, os membros e o master do TermoAuth; para os demais ele, as tarefas e as seções dele somem das listas e o acesso pelo id (ou por projeto_id/tarefa_id/secao_id na query) responde 404. O responsável sempre enxerga a própria tarefa.

function criar_tarefa(
  credencial_de_acesso: CredencialDeAcesso,
  corpo_da_requisicao: tipos.TarefaCriar,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Tarefa>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { criar_tarefa } from "termo_core/support";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await criar_tarefa(credencial_de_acesso, corpo_da_requisicao);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.Tarefa> · Rust: Result<tipos::Tarefa, ErroAoChamarServico> · veja Tarefa.

buscar_auto_complete_tarefa

GET/tarefa/autocomplete Exige credencial

Lista básica de tarefas para seleção

Exige a permissão de leitura na área projetos (qualquer das ações ler, criar, editar ou deletar libera a leitura). Devolve id, título e nome do projeto, em ordem alfabética. busca procura no título e projeto_id limita a um projeto. Visibilidade: projeto com visibilidade MEMBROS só aparece para o dono, os membros e o master do TermoAuth; para os demais ele, as tarefas e as seções dele somem das listas e o acesso pelo id (ou por projeto_id/tarefa_id/secao_id na query) responde 404. O responsável sempre enxerga a própria tarefa.

function buscar_auto_complete_tarefa(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarAutoCompleteTarefa = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaTarefaAutoComplete>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_auto_complete_tarefa } from "termo_core/support";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_auto_complete_tarefa(credencial_de_acesso, { busca: "..." });

Argumentos

Nome

Tipo

Retorno: Promise<tipos.PaginaTarefaAutoComplete> · Rust: Result<tipos::PaginaTarefaAutoComplete, ErroAoChamarServico> · veja PaginaTarefaAutoComplete.

buscar_pelo_filtro_tarefa

GET/tarefa/filtro Exige credencial

Busca tarefas por filtro

Exige a permissão de leitura na área projetos (qualquer das ações ler, criar, editar ou deletar libera a leitura). Devolve até 2000 tarefas. É a leitura do quadro, da lista, do calendário, do cronograma e de "Minhas tarefas". Os filtros se somam: projeto_id, secao_id, responsavel_id, tarefa_pai_id (subtarefas de uma tarefa), ticket_id, aplicativo_id (projetos ligados ao aplicativo), etiqueta_id, somente_principais (sem subtarefas), concluida, prazo_de/prazo_ate e busca (título ou descrição). A ordem é a do quadro (coluna e posição) ou, com ordenar_por_prazo=true, o prazo mais próximo primeiro.

function buscar_pelo_filtro_tarefa(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPeloFiltroTarefa = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Array<tipos.Tarefa>>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_filtro_tarefa } from "termo_core/support";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_filtro_tarefa(credencial_de_acesso, { projeto_id: "..." });

Argumentos

Nome

Tipo

Retorno: Promise<Array<tipos.Tarefa>> · Rust: Result<Vec<tipos::Tarefa>, ErroAoChamarServico>

buscar_pelo_id_tarefa

GET/tarefa/{id} Exige credencial

Busca uma tarefa pelo id

Exige a permissão de leitura na área projetos (qualquer das ações ler, criar, editar ou deletar libera a leitura). Devolve a tarefa com projeto, coluna, responsável, criador, etiquetas e as contagens de subtarefas, comentários e anexos. Visibilidade: projeto com visibilidade MEMBROS só aparece para o dono, os membros e o master do TermoAuth; para os demais ele, as tarefas e as seções dele somem das listas e o acesso pelo id (ou por projeto_id/tarefa_id/secao_id na query) responde 404. O responsável sempre enxerga a própria tarefa.

function buscar_pelo_id_tarefa(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Tarefa>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_id_tarefa } from "termo_core/support";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_id_tarefa(credencial_de_acesso, id);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.Tarefa> · Rust: Result<tipos::Tarefa, ErroAoChamarServico> · veja Tarefa.

atualizar_pelo_id_tarefa

PATCH/tarefa/{id} Exige credencial

Atualiza uma tarefa pelo id

Exige a permissão editar na área projetos. Atualização parcial com as regras do cadastro. Mover no quadro é mandar secao_id (coluna do mesmo projeto) e ordem (decimal: a média entre os vizinhos). null em responsavel_id, inicio, prazo, prioridade ou estimativa apaga o valor; texto vazio em descricao apaga. concluida grava ou apaga concluida_em. etiqueta_ids substitui a lista. Cada mudança entra na atividade da tarefa; o novo responsável e, ao concluir, o criador recebem notificação. Visibilidade: projeto com visibilidade MEMBROS só aparece para o dono, os membros e o master do TermoAuth; para os demais ele, as tarefas e as seções dele somem das listas e o acesso pelo id (ou por projeto_id/tarefa_id/secao_id na query) responde 404. O responsável sempre enxerga a própria tarefa.

function atualizar_pelo_id_tarefa(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  corpo_da_requisicao: tipos.TarefaAtualizar,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Tarefa>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { atualizar_pelo_id_tarefa } from "termo_core/support";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await atualizar_pelo_id_tarefa(credencial_de_acesso, id, corpo_da_requisicao);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.Tarefa> · Rust: Result<tipos::Tarefa, ErroAoChamarServico> · veja Tarefa.

deletar_pelo_id_tarefa

DELETE/tarefa/{id} Exige credencial

Exclui uma tarefa pelo id

Exige a permissão deletar na área projetos. Exclusão lógica da tarefa e das subtarefas dela. Visibilidade: projeto com visibilidade MEMBROS só aparece para o dono, os membros e o master do TermoAuth; para os demais ele, as tarefas e as seções dele somem das listas e o acesso pelo id (ou por projeto_id/tarefa_id/secao_id na query) responde 404. O responsável sempre enxerga a própria tarefa.

function deletar_pelo_id_tarefa(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<void>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { deletar_pelo_id_tarefa } from "termo_core/support";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
await deletar_pelo_id_tarefa(credencial_de_acesso, id);

Argumentos

Nome

Tipo

Retorno: Promise<void> · Rust: Result<(), ErroAoChamarServico> · sem corpo na resposta.

Tipos

Tipos usados pelas funções desta página. O nome é o mesmo nos dois pacotes.

AplicativoResumo

O aplicativo como aparece dentro dos projetos e tickets.

import type { AplicativoResumo } from "termo_core/support";

export interface AplicativoResumo {
  cor: string;
  id: string;
  nome: string;
}

ColaboradorResumo

Quem aparece como dono, membro, responsável, solicitante ou autor nos projetos, tarefas e tickets.

import type { ColaboradorResumo } from "termo_core/support";

export interface ColaboradorResumo {
  id: string;
  nome: string;
}

EtiquetaResumo

A etiqueta como aparece dentro da tarefa.

import type { EtiquetaResumo } from "termo_core/support";

export interface EtiquetaResumo {
  cor: string;
  id: string;
  nome: string;
}

PaginaTarefa

import type { PaginaTarefa } from "termo_core/support";

export interface PaginaTarefa {
  itens: Array<PaginaTarefaItensItem>;
  pagina: number;
  tamanho: number;
  total: number;
}

PaginaTarefaAutoComplete

import type { PaginaTarefaAutoComplete } from "termo_core/support";

export interface PaginaTarefaAutoComplete {
  itens: Array<PaginaTarefaAutoCompleteItensItem>;
  pagina: number;
  tamanho: number;
  total: number;
}

PaginaTarefaAutoCompleteItensItem

import type { PaginaTarefaAutoCompleteItensItem } from "termo_core/support";

export interface PaginaTarefaAutoCompleteItensItem {
  id: string;
  projeto_nome: string;
  titulo: string;
}

PaginaTarefaItensItem

import type { PaginaTarefaItensItem } from "termo_core/support";

export interface PaginaTarefaItensItem {
  anexos_total: number;
  atualizado_em: string;
  comentarios_total: number;
  concluida: boolean;
  concluida_em?: string | null;
  criado_em: string;
  criador?: ColaboradorResumo | null;
  descricao?: string | null;
  /**
   * Esforço em pontos (o número do cartão).
   */
  estimativa?: number | null;
  etiquetas: Array<EtiquetaResumo>;
  id: string;
  inicio?: string | null;
  marco: boolean;
  ordem: number;
  prazo?: string | null;
  prioridade?: string | null;
  projeto_cor: string;
  projeto_id: string;
  projeto_nome: string;
  responsavel?: ColaboradorResumo | null;
  /**
   * Coluna do quadro. Subtarefa não tem coluna.
   */
  secao_id?: string | null;
  secao_nome?: string | null;
  subtarefas_concluidas: number;
  subtarefas_total: number;
  tarefa_pai_id?: string | null;
  tarefa_pai_titulo?: string | null;
  /**
   * Ticket de suporte que deu origem à tarefa.
   */
  ticket_id?: string | null;
  ticket_numero?: number | null;
  titulo: string;
}

Tarefa

import type { Tarefa } from "termo_core/support";

export interface Tarefa {
  anexos_total: number;
  atualizado_em: string;
  comentarios_total: number;
  concluida: boolean;
  concluida_em?: string | null;
  criado_em: string;
  criador?: ColaboradorResumo | null;
  descricao?: string | null;
  /**
   * Esforço em pontos (o número do cartão).
   */
  estimativa?: number | null;
  etiquetas: Array<EtiquetaResumo>;
  id: string;
  inicio?: string | null;
  marco: boolean;
  ordem: number;
  prazo?: string | null;
  prioridade?: string | null;
  projeto_cor: string;
  projeto_id: string;
  projeto_nome: string;
  responsavel?: ColaboradorResumo | null;
  /**
   * Coluna do quadro. Subtarefa não tem coluna.
   */
  secao_id?: string | null;
  secao_nome?: string | null;
  subtarefas_concluidas: number;
  subtarefas_total: number;
  tarefa_pai_id?: string | null;
  tarefa_pai_titulo?: string | null;
  /**
   * Ticket de suporte que deu origem à tarefa.
   */
  ticket_id?: string | null;
  ticket_numero?: number | null;
  titulo: string;
}

TarefaAtualizar

import type { TarefaAtualizar } from "termo_core/support";

export interface TarefaAtualizar {
  concluida?: boolean | null;
  descricao?: string | null;
  estimativa?: number | null;
  etiqueta_ids?: Array<string> | null;
  inicio?: string | null;
  marco?: boolean | null;
  ordem?: number | null;
  prazo?: string | null;
  prioridade?: string | null;
  responsavel_id?: string | null;
  secao_id?: string | null;
  titulo?: string | null;
}

TarefaCriar

import type { TarefaCriar } from "termo_core/support";

export interface TarefaCriar {
  descricao?: string | null;
  estimativa?: number | null;
  etiqueta_ids?: Array<string>;
  inicio?: string | null;
  marco?: boolean;
  /**
   * Sem ordem, a tarefa entra no fim da coluna.
   */
  ordem?: number | null;
  prazo?: string | null;
  prioridade?: string | null;
  projeto_id: string;
  responsavel_id?: string | null;
  /**
   * Sem seção (e sem tarefa pai), a tarefa entra na primeira coluna do projeto.
   */
  secao_id?: string | null;
  /**
   * Preenchido, cria uma subtarefa (sem coluna) dessa tarefa.
   */
  tarefa_pai_id?: string | null;
  ticket_id?: string | null;
  titulo: string;
}

Ticket

import type { Ticket } from "termo_core/support";

export interface Ticket {
  anexos_total: number;
  aplicativo: AplicativoResumo;
  /**
   * `true` quando o prazo passou antes de o ticket ser resolvido.
   */
  atrasado: boolean;
  atualizado_em: string;
  canal: string;
  comentarios_total: number;
  criado_em: string;
  descricao: string;
  fechado_em?: string | null;
  id: string;
  /**
   * Número sequencial mostrado como #1024.
   */
  numero: number;
  origem_url?: string | null;
  /**
   * Prazo de atendimento (SLA).
   */
  prazo?: string | null;
  primeira_resposta_em?: string | null;
  prioridade: string;
  resolvido_em?: string | null;
  responsavel?: ColaboradorResumo | null;
  solicitante?: ColaboradorResumo | null;
  solicitante_email?: string | null;
  solicitante_nome: string;
  status: string;
  tarefas: Array<TicketTarefa>;
  tipo: string;
  titulo: string;
}

TicketTarefa

Tarefa de projeto criada a partir do ticket.

import type { TicketTarefa } from "termo_core/support";

export interface TicketTarefa {
  concluida: boolean;
  id: string;
  projeto_id: string;
  projeto_nome: string;
  titulo: string;
}

Nesta página