Pular para o conteúdo principal

Web API

Agentes

Rota

`/v2/agente/patriarcas`

Retorna a lista de todos os patriarcas habilitados no E-Docs.

Regras

  • Primeiro busca a lista completa de patriarcas habilitados em cache. (o cache possui duração de 2 horas)
  • Caso não encontre a lista em cache, busca individualmente cada patriarca no banco e a organização relacionada a ele, verificando se essa é uma organização válida. Caso seja, adiciona à lista dos patriarcas habilitados.
  • A lista completa é salva em cache. (caso seja requisitada novamente dentro de 2 horas, dispensa a busca no banco)

Rota

`​/v2​/agente​/{idPatriarca}​/organizacoes`

Retorna a lista de todas as organizações ativas de um patriarca.

Regras

  • Primeiramente é criada uma chave usando o nome do método e o id do patriarca. (essa chave é usada na busca em cache)
  • Busca os patriarcas em cache. Caso não encontre, executa uma função para gerar e armazenar o valor em cache.
  • Essa função:
    • Monta a URL da API, que retorna todas as organizações filhas do patriarca informado.
    • Faz uma chamada GET, autenticada, para obter as organizações.
    • Caso o patriarca conste na lista de organizações, ele é extraído e é populado todos os órgãos retornados com ele.
  • Órgãos temporariamente inativos, tem guids listados e são removidos da lista de organizações ativas.

Rota

`​/v2​/agente​/{idOrgao}​/setores`

Retorna a lista de todos os setores ativos de uma organização.

Regras

  • Primeiramente é criada uma chave usando o nome e o id do Órgão. (essa chave é usada na busca em cache)
  • Busca a lista de unidades em cache. Caso não encontre, executa uma função para gerar e armazenar o valor em cache.
  • Essa função:
    • Obtém o Organograma completo, com toda estrutura de organização e unidade.
    • Extrai todas as unidades dessa estrutura.
    • Filtra apenas unidades que pertencem à Organização informada.
    • Mapeia os dados das unidades para o modelo "UnidadeModel".
  • Por fim, cria um objeto setor usando essas unidades.

Rota

`/v2​/agente​/{idOrgao}​/grupos-trabalho`

Retorna a lista de todos os grupos de trabalho ativos de uma organização.

Regras

  • Primeiramente é criada uma URL que garante que a API retorne todos os grupos de trabalho, inclusive os filhos (subgrupos) do conjunto informado.
  • Através da API externa (Acesso Cidadão) obtém a lista do objeto grupo.
  • Remove grupos inutilizados.
  • Mapeia os grupos válidos para o modelo interno "GrupoModel".
  • Para cada grupo retornado:
    • Se esse grupo tiver um IdConjuntoPai válido, busca o objeto completo do conjunto pai.
  • Os grupos são ordenados alfabeticamente pelo nome.

Rota

`/v2​/agente​/{idOrgao}​/comissoes`

Retorna a lista de todas as comissões ativas de uma organização.

Regras

  • Primeiramente é criada uma URL que garante que a API retorne as comissões do Siarhes, inclusive os filhos do conjunto informado.
  • Através da API externa (Acesso Cidadão) obtém a lista do objeto grupo.
  • Remove grupos inutilizados.
  • Mapeia os grupos válidos para o modelo interno "GrupoModel".
  • Para cada grupo retornado:
    • Se esse grupo tiver um IdConjuntoPai válido, busca o objeto completo do conjunto pai.
  • Os grupos são ordenados alfabeticamente pelo nome.
  • A partir desses grupos é criado o objeto comissoes.

Associação

Rota

`/v2/associacoes/processos/search`

Lista todos os Processos inclusos na Associação de forma paginada.

Regras

  • Busca a associação.
    • Caso o select passado seja nulo, o método inclui a categoria da associação e suas categorias pai (até 2 níveis), e a lista de processos associados.
    • Quando select for definido, carrega apenas os relacionamentos solicitados:
      • Categoria, Processos, e opcionalmente Interessados no Processo.
    • Verifica se o usuário possui permissão para ver.
  • Busca a lista de processos relacionados à associação (com paginação).
    • Sempre inclui o objeto Processo relacionado. (para evitar consultas adicionais)
  • Busca o número total de processos.
  • Retorna a lista completa.

Rota

`/v2/associacoes/search`

Lista todas as Associações de acordo com o filtro de forma paginada.

Regras

  • Busca a lista de associações.
    • A busca deve respeitar os limites de página e quantidade, ignorando os registros anteriores à página atual.
    • As condições de filtro são criadas dinamicamente com base nas propriedades do modelo Associação.
    • Cada campo preenchido no filtro gera uma expressão de comparação que será usada na consulta.
    • Todas as condições informadas no filtro devem ser aplicadas juntas.
    • Se não houver filtros, a busca deve retornar todas as associações.
    • A busca deve respeitar tanto os filtros quanto a paginação ao mesmo tempo.
    • Os dados retornados devem ser convertidos para modelos de domínio antes de sair do método.
  • Busca o número de associações.
  • Retorna lista completa com os dados da associação.

Caixas

Rota

`/v2/caixas/{idCaixa}/encaminhamento/responder`

Retorna a lista de Papéis que podem responder/reencaminhar um Encaminhamento de acordo com a caixa informada.

Regras

  • Caso o local possua patriarca ativo:
    • Adiciona papéis delegados no local.
    • Adiciona o gestor do local à lista de papéis com permissão.
    • Adiciona também papéis que possuam permissão específica para a ação no local.
  • Caso contrário, busca grupos relacionados ao agente e adiciona papéis dos membros à lista.
  • Se não encontrar nenhum grupo, adiciona papel com patriarca ativo.

Rota

`​/v2​/caixas​/{idCaixa}​/processo​/autuar`

Retorna a lista de Papéis que podem autuar um Processo de acordo com a caixa informada.

Regras

  • Caso o local possua patriarca ativo:
    • Adiciona o gestor do local à lista de papéis com permissão.
    • Adiciona também papéis que possuam permissão específica para a ação no local.
  • Caso contrário, busca grupos relacionados ao agente e adiciona papéis dos membros à lista.
  • Se não encontrar nenhum grupo, adiciona papel com patriarca ativo.

Rota

`/v2/caixas/{idCaixa}/processo/despachar`

Retorna a lista de Papéis que podem despachar um Processo de acordo com a caixa informada

Regras

  • Caso o local possua patriarca ativo:
    • Adiciona o gestor do local à lista de papéis com permissão.
    • Adiciona também papéis que possuam permissão específica para a ação no local.
  • Caso contrário, busca grupos relacionados ao agente e adiciona papéis dos membros à lista.
  • Se não encontrar nenhum grupo, adiciona papel com patriarca ativo.

Rota

`/v2​/caixas​/{idCaixa}​/processo​/entranhar`

Retorna a lista de Papéis que podem entranhar em um Processo de acordo com a caixa informada

Regras

  • Caso o local possua patriarca ativo:
    • Adiciona o gestor do local à lista de papéis com permissão.
    • Adiciona também papéis que possuam permissão específica para a ação no local.
  • Caso contrário, busca grupos relacionados ao agente e adiciona papéis dos membros à lista.
  • Se não encontrar nenhum grupo, adiciona papel com patriarca ativo.

Classificação Documental

Rota

`/v2/classificacao-documental/{idPatriarca}/planos-ativos`

Retorna a lista de todos os planos ativos de um patriarca.

Regras

  • Verifica autenticação do usuário.
  • Busca as organizações vinculadas ao patriarca:
    • Primeramente em cache, e caso não encontre, busca no Organograma.
    • Se o patriarca constar na lista de organizações, extrai e popula todos os orgãos retornados com ele.
    • O resultado é mapeado e ordenado.
  • Caso encontre organizações:
    • Seus idExterno são verificados e adicionados à lista.
    • Busca seus planos de classificação:
      • Valida se está ativo, verificando início e fim da vigência.
      • Ordena e mapeia os planos válidos encontrados.

Rota

`/v2​/classificacao-documental​/{idPlano}​/classes-ativas`

Retorna a lista de todas as classes ativas de um plano.

Regras

  • Assim como no endpoint anterior, usa o idExterno como chave para localizar o plano de classificação.
  • Quando um plano é encontrado ele deve trazer também as classes e suas informações complementares (nível e tipo de arquivamento).

Eventos

Rota

`/v2/evento/{idEvento}`

Retorna o Evento de um identificador.

Regras

  • Busca e realiza o mapeamento do evento.
  • Após a implementação do modelo "Executado" para Encaminhamento, é necessário informar a API que o evento terminou.
  • Os dados do evento são desserializados conforme o evento tipo, e o dto do evento é retornado.

Fundamentos Legais

Rota

`​/v2​/fundamentos-legais​/{idPatriarca}`

Retorna a lista de todos os fundamentos legais de um patriarca.

Regras

  • Busca os fundamentos relacionados ao patriarca.
  • Lista e ordena esses fundamentos.

Rota

`/v2/fundamentos-legais`

Retorna a lista de todos os fundamentos legais para cidadão.

Regras

  • Busca os fundamentos relacionados ao cidadão.
  • Lista e ordena esses fundamentos.