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.