Projeto

7 funções do TermoSupport para projeto.

// 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_projetoGET /projetoLista os projetos paginados
criar_projetoPOST /projetoCadastra um projeto
buscar_auto_complete_projetoGET /projeto/autocompleteLista básica de projetos para seleção
buscar_pelo_filtro_projetoGET /projeto/filtroBusca projetos por filtro
buscar_pelo_id_projetoGET /projeto/{id}Busca um projeto pelo id
atualizar_pelo_id_projetoPATCH /projeto/{id}Atualiza um projeto pelo id
deletar_pelo_id_projetoDELETE /projeto/{id}Exclui um projeto pelo id

buscar_paginador_projeto

GET/projeto Exige credencial

Lista os projetos paginados

Exige a permissão de leitura na área projetos (qualquer das ações ler, criar, editar ou deletar libera a leitura). Lista os projetos do mais recente atualizado para o mais antigo, sempre 50 por página: tamanho é ignorado. Aceita os mesmos filtros do GET /projeto/filtro. 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_projeto(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPaginadorProjeto = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaProjeto>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_projeto } from "termo_core/support";

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

Argumentos

Nome

Tipo

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

criar_projeto

POST/projeto Exige credencial

Cadastra um projeto

Exige a permissão criar na área projetos. visibilidade é ORGANIZACAO (padrão: todos com a área projetos veem) ou MEMBROS (só quem está vinculado ao projeto). Cria o projeto ligado aos aplicativos de aplicativo_ids, com os membros de membro_ids (o dono e quem criou entram sempre como membros). nome é obrigatório (até 120 caracteres); descricao vai até 5000; cor no formato #00397c; status é NO_PRAZO (padrão), EM_RISCO, ATRASADO, PAUSADO ou CONCLUIDO; dono_id tem padrão em quem criou; inicio não pode passar do prazo. secoes são os nomes das colunas do quadro, na ordem (padrão "A fazer", "Em andamento" e "Concluído").

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

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

Argumentos

Nome

Tipo

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

buscar_auto_complete_projeto

GET/projeto/autocomplete Exige credencial

Lista básica de projetos 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, nome e cor dos projetos não arquivados, em ordem alfabética. busca procura no nome e aplicativo_id limita aos projetos do aplicativo. pagina começa em 1 e tamanho tem padrão 10. 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_projeto(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarAutoCompleteProjeto = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaProjetoAutoComplete>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_auto_complete_projeto } from "termo_core/support";

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

Argumentos

Nome

Tipo

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

buscar_pelo_filtro_projeto

GET/projeto/filtro Exige credencial

Busca projetos 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é 500 projetos em ordem alfabética. busca procura no nome e na descrição; status é exato; aplicativo_id traz os projetos ligados ao aplicativo; membro_id os projetos em que o colaborador é dono ou membro; arquivado tem padrão false. 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_filtro_projeto(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPeloFiltroProjeto = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Array<tipos.Projeto>>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_filtro_projeto } from "termo_core/support";

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

Argumentos

Nome

Tipo

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

buscar_pelo_id_projeto

GET/projeto/{id} Exige credencial

Busca um projeto pelo id

Exige a permissão de leitura na área projetos (qualquer das ações ler, criar, editar ou deletar libera a leitura). Devolve o projeto com dono, aplicativos, membros e a contagem das tarefas principais (total, concluídas e atrasadas). 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_projeto(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Projeto>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_id_projeto } from "termo_core/support";

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

Argumentos

Nome

Tipo

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

atualizar_pelo_id_projeto

PATCH/projeto/{id} Exige credencial

Atualiza um projeto pelo id

Exige a permissão editar na área projetos. Atualização parcial com as regras do cadastro (inclusive visibilidade: ORGANIZACAO ou MEMBROS). Texto vazio em descricao apaga; null em dono_id, inicio ou prazo apaga o valor. aplicativo_ids e membro_ids, quando enviados, substituem a lista inteira (o dono continua membro). arquivado tira o projeto das listas. 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_projeto(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  corpo_da_requisicao: tipos.ProjetoAtualizar,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Projeto>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { atualizar_pelo_id_projeto } from "termo_core/support";

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

Argumentos

Nome

Tipo

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

deletar_pelo_id_projeto

DELETE/projeto/{id} Exige credencial

Exclui um projeto pelo id

Exige a permissão deletar na área projetos. Exclusão lógica do projeto, das colunas e das tarefas dele. 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_projeto(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<void>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { deletar_pelo_id_projeto } from "termo_core/support";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
await deletar_pelo_id_projeto(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;
}

PaginaProjeto

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

export interface PaginaProjeto {
  itens: Array<PaginaProjetoItensItem>;
  pagina: number;
  tamanho: number;
  total: number;
}

PaginaProjetoAutoComplete

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

export interface PaginaProjetoAutoComplete {
  itens: Array<PaginaProjetoAutoCompleteItensItem>;
  pagina: number;
  tamanho: number;
  total: number;
}

PaginaProjetoAutoCompleteItensItem

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

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

PaginaProjetoItensItem

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

export interface PaginaProjetoItensItem {
  aplicativos: Array<AplicativoResumo>;
  arquivado: boolean;
  atualizado_em: string;
  cor: string;
  criado_em: string;
  descricao?: string | null;
  dono?: ColaboradorResumo | null;
  id: string;
  inicio?: string | null;
  membros: Array<ColaboradorResumo>;
  nome: string;
  prazo?: string | null;
  status: string;
  /**
   * Tarefas principais abertas com o prazo já vencido.
   */
  tarefas_atrasadas: number;
  tarefas_concluidas: number;
  /**
   * Tarefas principais (sem contar subtarefas).
   */
  total_tarefas: number;
  /**
   * `ORGANIZACAO` (todos com a área `projetos` veem) ou `MEMBROS` (só o dono e os membros).
   */
  visibilidade: string;
}

Projeto

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

export interface Projeto {
  aplicativos: Array<AplicativoResumo>;
  arquivado: boolean;
  atualizado_em: string;
  cor: string;
  criado_em: string;
  descricao?: string | null;
  dono?: ColaboradorResumo | null;
  id: string;
  inicio?: string | null;
  membros: Array<ColaboradorResumo>;
  nome: string;
  prazo?: string | null;
  status: string;
  /**
   * Tarefas principais abertas com o prazo já vencido.
   */
  tarefas_atrasadas: number;
  tarefas_concluidas: number;
  /**
   * Tarefas principais (sem contar subtarefas).
   */
  total_tarefas: number;
  /**
   * `ORGANIZACAO` (todos com a área `projetos` veem) ou `MEMBROS` (só o dono e os membros).
   */
  visibilidade: string;
}

ProjetoAtualizar

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

export interface ProjetoAtualizar {
  aplicativo_ids?: Array<string> | null;
  arquivado?: boolean | null;
  cor?: string | null;
  descricao?: string | null;
  dono_id?: string | null;
  inicio?: string | null;
  membro_ids?: Array<string> | null;
  nome?: string | null;
  prazo?: string | null;
  status?: string | null;
  visibilidade?: string | null;
}

ProjetoCriar

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

export interface ProjetoCriar {
  aplicativo_ids?: Array<string>;
  cor?: string | null;
  descricao?: string | null;
  dono_id?: string | null;
  inicio?: string | null;
  membro_ids?: Array<string>;
  nome: string;
  prazo?: string | null;
  /**
   * Nomes das colunas do quadro, na ordem. Sem elas o projeto nasce com "A fazer", "Em andamento" e "Concluído".
   */
  secoes?: Array<string> | null;
  status?: string | null;
  /**
   * `ORGANIZACAO` (padrão) ou `MEMBROS`.
   */
  visibilidade?: string | null;
}

Nesta página