Negócio Base (ENB)
Introdução
A API Negócio Base é responsável por concentrar e permitir a reutilização de regras de negócio comuns a vários módulos do sistema, de forma a evitar que a mesma regra de negócio seja implementada em vários lugares, o que dificulta a manutenção e evolução do sistema, bem como aumenta a possibilidade de bugs ao potencializar a implementação de versões diferentes da mesma regra.
Documentos
Acesso
Endpoint
`/v1/documento-acesso/{idDocumento}/{guidUsuario}/pode-ver`
Verificar se o usuário informado tem permissão para visualizar o documento informado no E-Docs, levando em conta seu nível de acesso, autoria, credenciamento, entre outros fatores.
Regras de Negócio
PodeVer:
- Busca os dados do documento através do método ObterDadosPodeVer.
- Inicia processo de verificação de permissão:
- Se o documento for público, é retornado true, permitindo a visualização do documento.
- Caso não seja, verifica se o usuário possui permissão de acordo com o nivel de acesso do documento (VerificarPodeVerByNivelAcesso).
- Se o usuário for um cidadão e houver uma via associada:
- O método PodeVer é chamado recursivamente, agora verificando a permissão com base no guidVia.
- Se essa verificação também falhar, a operação retorna falha.
- Caso contrário, o valor retornado da verificação da via é considerado no resultado final.
- Se até esse ponto o usuário ainda não tiver acesso liberado, o sistema faz uma verificação adicional com DocumentoRegrasAcesso.IsSistemaCapturador. Essa regra garante que usuários vinculados ao sistema capturador do documento tenham acesso mesmo que não tenham permissão explícita de nível.
ObterDadosPodeVer (privado):
- Valida os parâmetros, nenhum parâmetro pode ser vazio ou nulo.
- Busca documento e seu capturador, o resultad da busca não pode ser nulo.
- Busca usuário a ser verificada a permissão. (a busca do usuário é feita através da API EAQ)
- Caso a via tenha sido informada, busca seus dados. (a busca é feita através da API EAQ, e caso retorne com valor nulo é gerado erro)
- Monta a estrutura de retorno com o agente capturador e a lista de credenciamentos do documento.
Captura
Endpoint
`/v1/documento-captura/{guidUsuario}/papeis-permitidos`
Obtém todos os papéis permitidos do usuário logado para captura de um documento.
Regras de Negócio
ObterPapeisPermitidosCaptura:
- Verifica se o guidUsuario foi informado corretamente.
- Busca os papéis de captura do usuário (_documentoPermissaoHelper.ObterPapeisCaptura).
- Retorna o resultado.
ObterPapeisCaptura:
- Obtem papéis de servidor, advogado e cidadão através da API EAQ(ObterUsuarioPapeisServidor, ObterUsuarioPapeisAdvogado e ObterAgenteAtivo).
- Todos os resultados são verificados, os válidos são adicionados à lista de credenciados (o papel de cidadão sempre será o último da lista).
Endpoint
`/v1/documento-captura-valor-original/{guidUsuario}/papeis-permitidos`
Obtém todos os papéis permitidos do usuário logado para captura com valor original de um documento.
Regras de Negócio
ObterPapeisPermitidosCapturaValorOriginal:
- Verifica se o guidUsuario foi informado corretamente.
- Busca os papéis para capturas com valor original (_documentoPermissaoHelper.ObterPapeisCapturaValorOriginal).
- Retorna o resultado.
ObterPapeisCapturaValorOriginal:
- Busca papéis se ação do usuário passando "AcoesConfig.CAPTURAR_DIGITALIZADO_VALOR_ORIGINAL" como parâmetro.
- Verifica se o resultado é válido e adiciona à lista de credenciados.
Credenciamento
Endpoint
`/v1/documento-credenciamento/{guidUsuario}/papeis-permitidos`
Obtém todos os papéis permitidos do usuário logado para credenciamento a um documento.
Regras de Negócio
ObterPapeisPermitidosCredenciamento:
- Verifica se o guidUsuario foi informado corretamente.
- Obtem os papéis de credenciamento (_documentoPermissaoHelper.ObterPapeisCredenciamento).
- Retorna o resultado.
ObterPapeisCredenciamento:
- Obtem papéis de servidor e de cidadão através da API EAQ(ObterUsuarioPapeisServidor e ObterAgenteAtivo).
- Os resultados são verificados, os válidos são adicionados à lista de credenciados (o papel de cidadão sempre será o último da lista).
Elaboração
Endpoint
`/v1/documento-elaboracao/{guidUsuario}/papeis-permitidos`
Obtém todos os papéis permitidos do usuário logado para elaboração de um documento.
Regras de Negócio
ObterPapeisPermitidosElaboracao:
- Verifica se o guidUsuario foi informado corretamente.
- Obtem papéis de elaboração (_documentoPermissaoHelper.ObterPapeisElaboracao).
- Retorna o resultado.
ObterPapeisElaboracao:
- Obtem papéis de servidor e de cidadão através da API EAQ(ObterUsuarioPapeisServidor e ObterAgenteAtivo).
- Os resultados são verificados, os válidos são adicionados à lista de credenciados (o papel de cidadão sempre será o último da lista).
Encaminhamentos
Encaminhamento
Endpoint
`/v1/encaminhamento/{guidUsuario}/todas-caixas`
Obtém todas as caixas de encaminhamento nas quais o usuário informado tem permissão de caixa de encaminhamento.
Regras de Negócio
ObterTodasCaixasEncaminhamento:
- Verifica se o guidUsuario foi informado corretamente.
- Busca todos os locais de acesso (_permissaoHelper.ObterTodosLocaisAcessoIncluindoCidadaoByAcao).
- Retorna o resultado.
ObterTodosLocaisAcessoIncluindoCidadaoByAcao:
- Busca agente ativo através da API EAQ (ObterAgenteAtivo).
- Busca todos os locais de acesso por ação (ObterTodosLocaisAcessoByAcao).
- Os resultados são verificados e adicionados à lista de locais.
ObterTodosLocaisAcessoByAcao:
- Busca papéis de servidor através da API EAQ (ObterUsuarioPapeisServidor).
- Caso o usuário não seja servidor a busca para aqui.
- Busca locais por ação usando API EAQ (ObterUsuarioLocalizacoesByAcao).
- Busca locais onde o usuário é gestor usando API EAQ (ObterUsuarioConjuntosGestor).
- Busca locais onde o usuário é delegado (_usuarioManagerApiClient.ObterLocaisDelegacaoAcessoPorUsuario).
- Busca grupos usando API EAQ (ObterUsuarioGrupos).
- Todos os resultados são verificados, os válidos são adicionados à lista de locais.
Endpoint
`/v1/encaminhamento/caixa/{guidAgenteCaixa}/papeis-permitidos`
Obtém todos os papéis permitidos de acesso à caixa de encaminhamento informada.
Regras de Negócio
ObterPapeisPermitidosCaixaEncaminhamento:
- Verifica se o guidUsuario foi informado corretamente.
- Busca papéis que permitem o usuário acessar a caixa de encaminhamento (_permissaoHelper.ObterPapeisPermitidosCaixa).
- Retorna o resultado.
ObterPapeisPermitidosCaixa:
- Verifica a caixa usando API EAQ ObterAgentesAtivos.
- Caso não tenha agentes ativos na caixa, finaliza a busca e retorna lista de papéis vazia.
- Se o agente for cidadão (caso a busca inclua cidadão), ou tenha papel de servidor:
- Adiciona papel à lista de papéis permitidos especificando o motivo do acesso (se cidadão ou servidor).
- Se o agente for um grupo:
- Busca membros do grupo relacionado a caixa usando API EAQ ObterMembrosGrupo.
- Adiciona os papéis dos membros do grupo à lista especificando o motivo do acesso (GrupoMembro).
- Caso o agente seja uma Unidade ou Órgão:
- Busca papéis de gestor usando API EAQ ObterPapelGestorEmConjunto.
- Adiciona os papéis de gestor à lista especificando motivo do acesso (se gestor da unidade ou do órgão).
- Busca delegação de acesso à caixa usando API EAQ ObterDelegacoesAcessoParaLocal, e adiciona à lista os papéis encontrados especificando o motivo (se acesso delegado para unidade ou órgão).
- Busca papéis com permissões para ações usando API EAQ ObterPapeisPermissaoOrgaoUnidadeByAcao, e adiciona à lista os papéis encontrados especificando o motivo (se permissão para unidade ou órgão).
Ação
Endpoint
`/v1/encaminhamento-acao/novo/{guidUsuario}/papeis-permitidos`
Obtém os papéis com os quais o usuário informado pode criar um encaminhamento.
Regras de Negócio
ObterPapeisPermitidoNovo:
- Verifica se o guidUsuario foi informado corretamente.
- Busca papéis permitidos para novo encaminhamento (_permissaoEncaminhamentoHelper.ObterPapeisNovoEncaminhamento).
- Retorna o resultado.
ObterPapeisNovoEncaminhamento:
- Busca os papéis de servidor e agente ativo (API EAQ ObterUsuarioPapeisServidor, ObterAgenteAtivo).
- Verifica os resultados e adiciona à lista de papéis credenciados.
Endpoint
`/v1/encaminhamento-acao/tramitar/{idEncaminhamento}/{guidUsuario}/papeis-permitidos`
Obtém os papéis com os quais o usuário informado pode tramitar (responder e reencaminhar) um determinado encaminhamento.
Regras de Negócio
ObterPapeisPermitidoTramitar:
- Verifica se guidUsuario e idEncaminhamento são válidos.
- Busca destinos do encaminhamento (_encaminhamentoRepository.ObterDestinosEncaminhamento).
- Busca papéis permitidos (_permissaoEncaminhamentoHelper.ObterPapeisTramitarEncaminhamento).
ObterDestinosEncaminhamento:
- Busca na tabela "DestinoEncaminhamentos" todos os registros ligados ao ID e inclui a navegação para Agente.
- Converte cada Agente encontrado em AgenteDto usando "MapFromAgente".
- Retorna a lista de agentes.
MapFromAgente:
- Trata valores nulos.
- Ajusta atributos do "patriarca" com valores padrão (AjustarPatriarca).
- Monta um objeto Dto padronizado.
AjustarPatriarca:
- Detecta quando o agente é de um tipo que deveria ter patriarca.
- Verifica se os dados estão nulos.
- Se estiverem, atribui valores padrão do GOVES.
Detalhes AjustarPatriarca
- O conceito de patriarca foi incorporado no sistema durante a sua utilização em produção, sendo assim, existem vários Agentes que não possuem informações sobre o patriarca.
- Atualmente os dados do patriarca no Agente é obrigatório para os tipos diferentes de Cidadão e Sistema.
- Então para os dados antigos que estão com as informações do patriarca nulos, por convensão, é atribuido deliberadamente os dados do GOVES
ObterPapeisTramitarEncaminhamento:
- Verifica se o encaminhamento possui destinatário, se não possuir, retorna sucesso com a lista vazia.
- Recupera todas as caixas de encaminhamento do usuário, através de "_permissaoHelper.ObterTodosLocaisAcessoIncluindoCidadaoByAcao".
- Busca locais com ação delegada, através de "_usuarioManagerApiClient.ObterLocaisDelegacaoAcessoPorUsuario".
- Busca os papeis para verificar se é servidor (API EAQ ObterLocaisDelegacaoAcessoPorUsuario).
- Caso os papéis sejam de servidor, percorre lista de destinos:
- Se o destino atual não estiver na lista de credenciamentos do usuário, passa para o próximo.
- Caso o destino seja Unidade ou Organização:
- Busca locais com ação delegada usando "_usuarioManagerApiClient.ObterPapelDelegadoAcessoParaLocalUsuario".
- Verifica se o usuário é chefe da unidade ou órgão e caso seja, inclui na lista de papéis.
- Buscar papéis ação e localização (API EAQ ObterPapeisUsuarioByAcaoELocalizacao).
- Remover Advogados (garante que, mesmo que um advogado receba permissão para acessar a caixa do setor pelo AC Admin, o E-Docs vai bloquear este caso).
- Caso o destino seja Grupo:
- Busca todos os papéis do usuário que pertencem ao grupo (API EAQ ObterPapeisServidorEmGrupo).
- Caso o destino seja Papel:
- Busca o papel que corresponde ao destino e adiciona à lista de papéis credenciados.
- Caso o destino seja Cidadão:
- Busca o agente cidadão para adicionar à lista de papéis credenciados (API EAQ ObterAgenteAtivo).
- Todos os resultados são verificados, os válidos são adicionados à lista "guidsCredenciamentosUsuario".
- Remove os papéis repetidos da lista e retorna.
ObterTodosLocaisAcessoIncluindoCidadaoByAcao:
- Obtem agente (API EAQ ObterAgenteAtivo).
- Verifica se o resultado é válido e adiciona à lista de locais.
- Busca locais por ação (ObterTodosLocaisAcessoByAcao).
- Verifica se o resultado é válido e adiciona à lista de locais.
- Retorna a lista.
ObterTodosLocaisAcessoByAcao:
- Verifica se usuário possui papel servidor (API EAQ ObterUsuarioPapeisServidor), caso não possua, para a pesquisa aqui.
- Busca locais por ação, locais onde é gestor, locais onde é delegado e grupos. Verifica os resultados, os válidos são adicionados à lista de locais. (as buscas são feitas atraves da API EAQ ObterUsuarioLocalizacoesByAcao, ObterUsuarioConjuntosGestor, ObterLocaisDelegacaoAcessoPorUsuario, ObterUsuarioGrupos)
Endpoint
`/v1/encaminhamento-acao/complementar/{idEncaminhamento}/{guidUsuario}/papeis-permitidos`
Obtém os papéis com os quais o usuário informado pode complementar um determinado encaminhamento.
Regras de Negócio
ObterPapeisPermitidoComplementar:
- Verifica se guidUsuario e isEncaminhamento são válidos.
- Busca o remetente do encaminhamento (_encaminhamentoRepository.ObterRemetenteEncaminhamento).
- Busca os papéis com permissão para complementar encaminhamento (_permissaoEncaminhamentoHelper.ObterPapeisComplementarEncaminhamento).
- Retorna lista com os papéis permitidos.
ObterRemetenteEncaminhamento:
- Busca na tabela "Encaminhamentos" todos os registros ligados ao ID e inclui a navegação para Agente.
- Converte cada Agente encontrado em AgenteDto usando "MapFromAgente" (mesmo método usado no Endpoint anterior).
- Retorna a lista de agentes.
ObterPapeisComplementarEncaminhamento:
- Caso o remetente seja cidadão e o usuário seja o remetente:
- Busca agente ativo (API EAQ ObterAgenteAtivo), caso seja válido, adiciona à lista de papéis credenciados.
- Se não, busca papel de servidor (API EAQ ObterUsuarioPapeisServidor).
- Verifica se algum desses papéis tem o mesmo ID do remetente do encaminhamento.
- Se encontrar, adiciona à lista. Se não, retorna lista vazia.
Permissões
Endpoint
`/v1/permissao/usuario/{guidUsuario}/perfil/desenvolvedor`
Verifica se o usuário é desenvolvedor no E-Docs.
Regras de Negócio
IsDeveloper:
- Busca usuário logado no cache (ObterUsuarioLogadoCache), caso não encontre, retorna false.
- Verifica se possui perfil de desenvolvedor (usuarioLogadoCache.PossuiPerfil). Caso tenha, retorna true.
ObterUsuarioLogadoCache:
- Valída parâmetros.
- Busca o usuário logado no cache, caso não exista ou expirou monta o build (MontarUsuarioLogadoCache).
MontarUsuarioLogadoCache:
- Verifica se existe um cache para o usuário com menos de 1 minuto de criação (ObterUsuarioLogadoCacheDelay).
- Caso exista, retorna ele e não tenta montar novamente o usuário.
- Caso não exista cache novo registrado, realiza a montagem do novo cache para o usuário.
ObterUsuarioLogadoCacheDelay: (Tratativa para evitar chamadas sucessivas devido a loops no login do E-Docs.)
- Verifica se o UsuarioLogadoCache tem menos de 1 minuto de criação.
- Se sim, retorna o usuário logado no cache.
- Caso tenha mais de 1 minuto de criação, retorna nulo.
Processos
Processo
Endpoint
`/v1/processo/{idProcesso}/status`
Obtém o status do processo informado, contendo ultimo ato, ultimo ato de movimentação, se está encerrado ou não, entre outras informações calculadas.
Regras de Negócio
ObterStatus:
- Constrói o status do processo usando (_processoStatusBuilder.BuildProcessoStatus).
- BuildProcessoStatus faz uma série de buscas e validações para obter informações como:
- Custódia;
- Edições;
- Autuação;
- Último ato, etc.
- Caso alguma busca retorne falha, é gerado erro.
Endpoint
`/v1/processo/{guidUsuario}/todas-caixas`
Obtém todas as caixas de processo nas quais o usuário informado tem permissão de caixa de processo.
Regras de Negócio
ObterTodasCaixasProcesso:
- Verifica se guidUsuario é válido.
- Busca todos os locais de acesso usando (ObterTodosLocaisAcessoByAcao).
ObterTodosLocaisAcessoByAcao:
- Verifica se o usuário possui papel de servidor (API EAQ ObterUsuarioPapeisServidor), caso não possua, retorna a lista de locais vazia.
- Realiza uma série de buscas:
- Locais onde o usuário possui permissão para ações (API EAQ ObterUsuarioLocalizacoesByAcao);
- Locais onde o usuário é gestor (API EAQ ObterUsuarioConjuntosGestor);
- Locais onde é delegado (_usuarioManagerApiClient.ObterLocaisDelegacaoAcessoPorUsuario);
- Locais onde os grupos do usuário foram criados (API EAQ ObterUsuarioGrupos).
- Caso alguma dessas buscas falhe, é gerado erro.
- Todos os resultados são validados e adicionados à lista de locais.
Endpoint
`/v1/processo/{guidUsuario}/todas-caixas-encerrados`
Obtém todas as caixas de processo encerrados nas quais o usuário informado tem permissão.
Regras de Negócio
ObterTodasCaixasProcessosEncerrados:
- Verifica se guidUsuario é válido.
- Busca todos os locais com processos encerrados usando (ObterTodasCaixasProcessosEncerrados).
ObterTodosLocaisAcessoProcessosEncerrados:
- Verifica se o usuário possui papel de servidor (API EAQ ObterUsuarioPapeisServidor), caso não possua, retorna a lista de locais vazia.
- Realiza uma série de buscas:
- Locais onde o usuário é gestor (API EAQ ObterUsuarioConjuntosGestor);
- Locais onde é delegado (_usuarioManagerApiClient.ObterLocaisDelegacaoAcessoPorUsuario);
- Locais onde os grupos do usuário foram criados (API EAQ ObterUsuarioGrupos).
- Locais onde o usuário possui permissão para reabrir (API EAQ ObterUsuarioLocalizacoesByAcao);
- Caso alguma dessas buscas falhe, é gerado erro.
- Todos os resultados são validados e adicionados à lista de locais.
- Valida os locais usando API EAQ ObterAgentesAtivos.
Endpoint
`/v1/processo/caixa/{guidAgenteCaixa}/papeis-permitidos`
Obtém todos os papéis permitidos de acesso à caixa de processo informada.
Regras de Negócio
ObterPapeisPermitidosCaixaProcesso:
- Verifica se guidCaixa é válido.
- Busca papéis com permissões para acessar a caixa (ObterPapeisPermitidosCaixa).
ObterPapeisPermitidosCaixa:
- Verifica a caixa usando API EAQ ObterAgentesAtivos.
- Caso não tenha agentes ativos na caixa, finaliza a busca e retorna lista de papéis vazia.
- Se o agente for cidadão (caso a busca inclua cidadão), ou tenha papel de servidor:
- Adiciona papel à lista de papéis permitidos especificando o motivo do acesso (se cidadão ou servidor).
- Se o agente for um grupo:
- Busca membros do grupo relacionado a caixa usando API EAQ ObterMembrosGrupo.
- Adiciona os papéis dos membros do grupo à lista especificando o motivo do acesso (GrupoMembro).
- Caso o agente seja uma Unidade ou Órgão:
- Busca papéis de gestor usando API EAQ ObterPapelGestorEmConjunto.
- Adiciona os papéis de gestor à lista especificando motivo do acesso (se gestor da unidade ou do órgão).
- Busca delegação de acesso à caixa usando API EAQ ObterDelegacoesAcessoParaLocal, e adiciona à lista os papéis encontrados especificando o motivo (se acesso delegado para unidade ou órgão).
- Busca papéis com permissões para ações usando API EAQ ObterPapeisPermissaoOrgaoUnidadeByAcao, e adiciona à lista os papéis encontrados especificando o motivo (se permissão para unidade ou órgão).
Endpoint
`/v1/processo/detalhe/{idProcesso}/permissoes/{guidUsuario}`
Obtém todas as permissões do usuário para exibir as ações de atos e ações na tela de detalhe do processo.
Regras de Negócio
ObterProcessoDetalhePermissoes:
- Busca status do processo usando (ObterStatus). Caso o resultado da busca seja nulo, retorna lista vazia (sem permissões para o usuário).
- Realiza busca a papéis com permissão para todas as ações e atos relacionados ao processo e o usuário, os resultados válidos são adicionados às respectivas flags do objeto "processoDetalhePermissoes".
- Retorna o objeto com as permissões.
Ação
Endpoint
`/v1/processo-acao/credenciamento-leitura-pecas/{idProcesso}/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos para que o usuário informado tenha permissão para realizar o credencimento de leitura às peças do processo informado.
Regras de Negócio
ObterPapeisPermitidosCredenciamentoLeituraPeca:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca papéis com credenciamento para leitura da peça (ObterPapeisAcaoCredenciamentoLeituraPeca).
ObterPapeisAcaoCredenciamentoLeituraPeca:
- Busca status do processo (_processoStatusBuilder.BuildProcessoStatus).
- Verifica custódia do processo (ObterPapeisCustodiaProcessoEmAndamento).
- Caso o status do processo não seja nulo, verifica se está encerrado.
- Se sim, busca papéis com permissão para reabertura do processo (ObterPapeisAtoReabertura), caso encontre adiciona à lista.
- Se não estiver encerrado, adiciona os papéis de custódia à lista de papéis credenciados.
ObterPapeisCustodiaProcessoEmAndamento/LogicaPapeisCustodiaProcessoEmAndamento:
- Caso processoStatus não seja fornecido, busca novamente (_processoStatusBuilder.BuildProcessoStatus) e valída o resultado.
- Se o processo estiver encerrado, retorna lista de credenciados vazia. (não tem papel permitido para a custódia para processos em andamento)
- Caso não passe a lista de papéis do usuário realiza a busca (API EAQ ObterUsuarioPapeisServidor) e valída o resultado.
- Se o ultimo ato tenha sido Autuação:
- Caso o processo tenha Autuação ou local da Autuação igual a null, retorna erro.
- Se a Autuação foi feita pelo próprio usuário, o próprio papel pode fazer o despacho.
- Busca e verifica se o usuário possui papel de gestor em conjunto (API EAQ ObterPapelGestorEmConjunto), caso possua, adiciona à lista de credenciados para despacho.
- Se a custódia for uma Unidade ou Órgão, verifica se o usuário possui papel delegado (_usuarioManagerApiClient.ObterPapelDelegadoAcessoParaLocalUsuario). Caso possua, adiciona à lista.
- Busca papéis do usuário relacionados a ação e a localização do processo, caso encontre, adiciona à lista.
- Para demais atos de movimentação (exceto Encerramento):
- Caso a custódia do processo não tenha sido informada, retorna erro.
- Se o avocamento foi feito pelo próprio usuário, então o próprio papel pode despachar se ainda estiver ativo.
- Caso a custódia seja uma Unidade ou Órgão:
- Busca papel gestor em conjunto (API EAQ ObterPapelGestorEmConjunto) e verifica se o usuário possui este papel. Caso possua, adiciona à lista.
- Busca papéis com ação delegada (_usuarioManagerApiClient.ObterPapelDelegadoAcessoParaLocalUsuario), caso o usuário possua papel delegado com acesso para o local do processo, adiciona à lista de credenciados para despacho.
- Busca papéis do usuário relacionados a ação e a localização do processo, caso encontre, adiciona à lista.
- Caso a custódia seja um grupo:
- Busca os papéis de servidor no grupo (API EAQ ObterPapeisServidorEmGrupo), caso o usuário possua papel ativo nesse grupo, adiciona o papel à lista.
- Caso a custódia seja um papel:
- Limita ao papel de destino.
ObterPapeisAtoReabertura/LogicaPapeisAtoReabertura:
- Caso processoStatus não seja fornecido, busca novamente (_processoStatusBuilder.BuildProcessoStatus) e valída o resultado.
- Se o processo não estiver encerrado, ou se a unidade de reabertura ou a custódia sejam nulas, retorna lista de credenciados vazia.
- Caso papeisUsuario não seja fornecido, busca novamente (API EAQ ObterUsuarioPapeisServidor) e valída o resultado.
- Busca e verifica se o usuário possui papel de gestor na custódia do processo, caso tenha adiciona papel à lista de credenciados.
- Verifica se a custódia do processo está em uma unidade ou em um órgão, e se o usuário possui papel delegado no local (_usuarioManagerApiClient.ObterPapelDelegadoAcessoParaLocalUsuario).
- Verifica se o usuário possui algum papel que permita a reabertura do processo pela localização (API EAQ ObterPapeisUsuarioByAcaoELocalizacao), caso possua, o papel é adicionado à lista de credenciados.
Endpoint
`/v1/processo-acao/gerar-copia/{idProcesso}/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos para que o usuário informado tenha permissão para realizar a geração de cópia do processo informado.
**Regras de Negócio
ObterPapeisPermitidosGerarCopia:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca papéis com permissão para gerar cópias do processo (ObterPapeisAcaoGerarCopia).
ObterPapeisAcaoGerarCopia:
- Contrói status do processo com "BuildProcessoStatus".
- Verifica se o status é válido e se o processo possui custódia informada. Caso não sejam válidos, retorna erro.
- Busca papéis credenciados para a ação usando (LogicaPapeisAcaoGerarCopia).
LogicaPapeisAcaoGerarCopia:
- Verifica se o usuário possui papel de servidor usando API EAQ ObterUsuarioPapeisServidor. Caso não possua, retorna lista vazia (usuário sem permissão para a ação).
- Caso o processo esteja em andamento, verifica se o usuário possui custódia do processo usando (LogicaPapeisCustodiaProcessoEmAndamento, método já documentado anteriormente).
- Se o processo esteja encerrado, verifica se o usuário possui custódia do processo usando (LogicaPapeisCustodiaProcessoEncerrado).
- Verifica se o usuário possui permissão específica para gerar cópias usando API EAQ ObterPapeisUsuarioByAcaoELocalizacao.
- Se possui permissão especial para a ação sem ter a custódia do processo usando API EAQ PossuiAcao. (ex.: Auditor da SECONT)
- Se o usuário possui papel com interesse no processo usando (ObterInteressadosByProcesso).
- Todas as buscas são validadas e adicionadas à lista de papéis credenciados.
LogicaPapeisCustodiaProcessoEncerrado:
- Verifica se o custodiante do processo possui papel de gestor (API EAQ ObterPapelGestorEmConjunto). Caso possua, adiciona o papel à lista de papéis credenciados.
- Caso a custódia seja de uma Unidade ou de um Órgão:
- Verifica se o usuário possui papel com acesso delegado para o processo (_usuarioManagerApiClient.ObterPapelDelegadoAcessoParaLocalUsuario). Caso possua, adiciona à lista.
Endpoint
`/v1/processo-acao/pas-gerar-copia/{idProcesso}/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos para que o usuário informado tenha permissão para realizar a geração de cópia do processo do tipo PAS informado.
Regras de Negócio
ObterPapeisPermitidosGerarCopiaPAS:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca papéis com permissão para gerar cópias do processo (API EAQ (ObterPapeisAcaoGerarCopiaPAS)).
ObterPapeisAcaoGerarCopiaPAS:
- Contrói status do processo com "BuildProcessoStatus", se o resultado for nulo, gera erro.
- Caso o processo não seja do tipo sancionatório ou não tenha custódia informada, gera erro.
- Busca papéis com permissão para gerar cópia (LogicaPapeisAcaoGerarCopia, método já documentado). Valida o resultado e adiciona à lista de papéis credenciados.
- Busca papéis com custódia do processo (LogicaPapeisCustodiaPAS). Valida o resultado e adiciona à lista de papéis credenciados.
- Remove duplicatas entre custodiantes e requeridos.
LogicaPapeisCustodiaPAS:
- Busca papéis de advogado no guidUsuario ObterUsuarioPapeisAdvogado.
- Caso possua papel válido, busca os representantes legais do processo (_processoRepository.ObterRepresentantesLegaisAdvogadosByProcesso), verifica se coincide com o papel do usuário, se sim, adiciona à lista.
- Busca papéis de servidor do usuário (API EAQ (ObterUsuarioPapeisServidor)).
- Caso possua papel válido, busca papéis requeridos no processo (a busca inclui papéis de servidor e guid cidadão).
- Os resultados são validados e adicionados à lista.
Endpoint
`/v1/processo-acao/gerir-nivel-acesso-pecas/{idProcesso}/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos para que o usuário informado tenha permissão para gerir o nível de acesso das peças do processo informado.
Regras de Negócio ObterPapeisPermitidosGerirNivelAcessoPecas:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca papéis com permissão para gerir nível (_permissaoProcessoHelper.ObterPapeisAcaoGerirNivelAcessoPecas).
ObterPapeisAcaoGerirNivelAcessoPecas:
- Constrói status do processo com "BuildProcessoStatus", se o resultado for nulo, gera erro.
- Busca papéis de servidor (API EAQ (ObterUsuarioPapeisServidor)).
- Caso o processo não esteja encerrado, busca papéis de custódia do processo (LogicaPapeisCustodiaProcessoEmAndamento, método já documentado). Papéis válidos são adicionados à lista.
- Se estiver encerrado:
- Verifica se o responsavel pelo encerramento foi o usuário. Caso tenha sido, ele pode gerir o nível de acesso do processo.
- Busca papéis com permissão para reabrir o processo (LogicaPapeisAtoReabertura, método já documentado).
- Os papéis são validados e adicionados à lista de credenciados para a ação.
Endpoint
`/v1/processo-acao/auto-credenciamento/{idProcesso}/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos para que o usuário informado tenha permissão para realizar o auto credenciamento no processo.
Regras de Negócio
ObterPapeisPermitidosAutoCredenciamento:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca papéis com permissão para auto credenciamento (ObterPapeisAcaoAutoCredenciamento).
ObterPapeisAcaoAutoCredenciamento:
- Constrói status do processo com "BuildProcessoStatus", se o resultado for nulo, gera erro.
- Caso não encontre informações sobre o patriarca no status do processo, retorna lista vazia e finaliza a busca.
- Busca papéis específicos para a ação (API EAQ ObterPapeisUsuarioByAcaoELocalizacao)).
- O resultados é validado e adicionado à lista de credenciados (exceto duplicatas).
Endpoint
`/v1/processo-acao/sinalizacao/{idProcesso}/{guidUsuario}/patriarcas-permitidos`
Obtém os patriarcas permitidos para que o usuário informado tenha permissão para realizar a sinalização do processo.
Regras de Negócio
ObterPatriarcasPermitidosSinalizacao:
- Verifica se guidUsuario é válido.
- Busca patriarcas com permissão para sinalizar processo (ObterPatriarcasAcaoSinalizar).
ObterPatriarcasAcaoSinalizar:
- Busca locais onde o usuário possui permissão para sinalizar o processo (API EAQ (ObterUsuarioLocalizacoesByAcao)).
- Caso não possua, finaliza a busca e retorna lista vazia.
- Desses locais, seleciona os que são de patriarcas.
- Caso não encontre, finaliza a busca e retorna lista vazia.
- Busca patriarcas habilitados (API EAQ (ObterPatriarcasHabilitados)).
- Caso não encontre, finaliza a busca e retorna lista vazia.
- Verifica quais dos patriarcas dos locais estão habilitados e adiciona à lista de credenciados (exceto as duplicatas).
Endpoint
`/v1/processo-acao/sinalizacao/{guidUsuario}/patriarcas-permitidos`
Obtém os patriarcas permitidos para que o usuário informado tenha permissão para realizar a sinalização do processo.
Regras de Negócio
Chama o mesmo método do Endpoint anterior (ObterPatriarcasPermitidosSinalizacao).
Associação
Endpoint
`/v1/processo-associacao/{guidUsuario}/locais`
Obtém os locais nos quais o usuário pode criar associação de processos.
Regras de Negócio
ObterLocaisPermitidosAssociacao:
- Verifica se guidUsuario é válido.
- Busca locais onde o usuário tem permissão para criar associação de processos (ObterLocaisAssociacaoProcesso).
ObterLocaisAssociacaoProcesso:
- Busca papéis de servidor do usuário (API EAQ (ObterUsuarioPapeisServidor)).
- Caso não encontre, finaliza a busca e retorna lista vazia.
- Desses papéis, encontra os que possuem valor de Unidade ou Órgão, seleciona seus ids e adiciona à lista de locais (exceto as duplicatas).
- Buscam agentes ativos nesses locais (API EAQ (ObterAgentesAtivos)) e adiciona à lista de locais permitidos.
- Busca locais pela ação (API EAQ (ObterUsuarioLocalizacoesByAcao)) e adiciona à lista de locais permitidos.
- Busca locais onde o usuário possui delegação de acesso (_usuarioManagerApiClient.ObterLocaisDelegacaoAcessoPorUsuario) e adiciona à lista de locais permitidos.
- Busca grupos de trabalho e comissões (API EAQ (ObterUsuarioGruposTrabalhoEComissoes)) e adiciona à lista de locais permitidos.
- Remove duplicatas e retorna a lista.
Endpoint
`v1/processo-associacao/gerir-associacao/{guidLocal}/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos do usuário para realizar a associação de processo no local informado.
Regras de Negócio
ObterPapeisPermitidosAssociacao:
- Verifica se guidUsuario e guidLocal são válidos.
- Busca papéis do usuário com permissão para criar associação de processos (ObterPapeisAssociacaoProcesso).
ObterPapeisAssociacaoProcesso:
- Busca papéis de servidor do usuário (API EAQ (ObterUsuarioPapeisServidor)).
- Caso não encontre, finaliza a busca e retorna lista vazia.
- Busca agentes ativos ou inativos no local (API EAQ (ObterAgenteAtivoOuInativo)).
- Caso o local seja um grupo:
- Busca papéis de servidor do usuário nesse grupo.
- Caso não encontre, finaliza a busca e retorna lista vazia.
- Busca papéis de servidor do usuário nesse grupo.
- Se não:
- Todos os resultados são validados, removido as duplicatas e adicionados à lista de papeis permitidos.
Ato
Endpoint
`/v1/processo-ato/autuacao/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos para que o usuário informado tenha permissão de autuar um processo.
Regras de Negócio
ObterPapeisPermitidosAutuacao:
- Verifica se guidUsuario é válido.
- Busca papéis com permissão para autuação de processo (ObterPapeisAtoAutuacao).
ObterPapeisAtoAutuacao:
- Busca papéis de servidos relacionados ao usuário (API EAQ (ObterUsuarioPapeisServidor)).
- Busca papéis com qualquer delegação de acesso (_usuarioManagerApiClient.ObterPapeisComQualquerDelegacaoAcessoPorUsuario).
- Todos os papéis são validados e adicionados a lista de papéis credenciados (exceto duplicatas).
Endpoint
`/v1/processo-ato/edicao/{idProcesso}/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos para que o usuário informado tenha permissão para realizar a edição do processo informado.
Regras de Negócio
ObterPapeisPermitidosEdicao:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca papéis de custódia de processos em andamento (ObterPapeisCustodiaProcessoEmAndamento, método já documentado anteriormente).
Endpoint
`/v1/processo-ato/despacho/{idProcesso}/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos para que o usuário informado tenha permissão para realizar o despacho do processo informado.
Regras de Negócio
ObterPapeisPermitidosDespacho:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca papéis de custódia de processos em andamento (ObterPapeisCustodiaProcessoEmAndamento, método já documentado anteriormente).
Endpoint
`/v1/processo-ato/avocamento/{idProcesso}/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos para que o usuário informado tenha permissão para realizar o avocamento do processo informado.
Regras de Negócio
ObterPapeisPermitidosAvocamento:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca papéis com permissão para avocamento (ObterPapeisAtoAvocamento).
ObterPapeisAtoAvocamento:
- Constrói status do processo com "BuildProcessoStatus", se o resultado for nulo, gera erro.
- Caso o último ato não tenha sido despacho, finaliza a busca e retorna lista vazia (não permite o avocamento).
- Busca papéis de servidor e adiciona à lista de credenciados.
- Caso o usuário possua papel responsável pelo último ato do processo, adiciona esse papel à lista.
- Se o penúltimo ato de movimentação não for nulo:
- Se esse ato foi feito por uma Unidade ou por um Órgão:
- Verifica se o usuário possui papel de Gestor (API EAQ (ObterPapelGestorEmConjunto)). Caso possua, adiciona papel à lista de credenciados.
- Verifica se o usuário possui papel com acesso delegado (API EAQ (ObterPapelDelegadoAcessoParaLocalUsuario)). Caso possua, adiciona papel à lista de credenciados.
- Verifica se o usuário possui algum papel especifico para avocamento do processo (API EAQ (ObterPapeisUsuarioByAcaoELocalizacao)). Caso possua, adiciona papel à lista de credenciados.
- Caso tenha sido de um grupo:
- Verifica se o usuário possui papel de servidor nesse grupo (API EAQ (ObterPapeisServidorEmGrupo)). Caso possua, adiciona o papel à lista de credenciados.
- Se esse ato foi feito por uma Unidade ou por um Órgão:
- Remove possíveis duplicatas da lista de credenciados.
Endpoint
`/v1/processo-ato/entranhamento/{idProcesso}/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos para que o usuário informado tenha permissão para reaizar o entranhamento de um documento/encaminhamento no processo informado.
Regras de Negócio
ObterPapeisPermitidosEntranhamento:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca papéis com permissão para entranhamento em processos (ObterPapeisCustodiaProcessoEmAndamento, método já documentado anteriormente).
Endpoint
`/v1/processo-ato/desentranhamento/{idProcesso}/{guidUsuario}/papeis-permitidos`
Obtém os papéis prmitidos para que o usuário informado tenha permissão para realizar o desentranhamento de um documento do processo informado.
Regras de Negócio
ObterPapeisPermitidosDesentranhamento:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca papéis com permissão para entranhamento em processos (ObterPapeisCustodiaProcessoEmAndamento, método já documentado anteriormente).
Endpoint
`/v1/processo-ato/encerramento/{idProcesso}/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos para que o usuário informado tenha permissão de realizar o encerramento do processo informado.
Regras de Negócio
ObterPapeisPermitidosEncerramento:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca papéis com permissão para entranhamento em processos (ObterPapeisCustodiaProcessoEmAndamento, método já documentado anteriormente).
Endpoint
`/v1/processo-ato/encerramento/{idProcesso}/{guidUsuario}/unidade-guarda`
Obtém a unidade de guarda para realizar o encerramento do processo informado.
Regras de Negócio
ObterUnidadeGuardaProcesso:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca a unidade de guarda do processo (ObterUnidadeGuardaProcesso).
ObterUnidadeGuardaProcesso:
- Constrói status do processo com "BuildProcessoStatus", se o resultado for nulo, gera erro.
- Caso o processo não tenha custódia informada, gera erro.
- Verifica se possui agente ativo ou inativo na unidade responsável pela custódia do processo.
- Retorna AgenteUnidade.
Endpoint
`/v1/processo-ato/reabertura/{idProcesso}/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos para que o usuário informado tenha permissão de realizar a reabertura do processo informado.
Regras de Negócio
ObterPapeisPermitidosReabertura:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca papéis com permissão para reabertura (ObterPapeisAtoReabertura, método já documentado anteriormente).
Endpoint
`/v1/processo-ato/entranhamento-especial/{idProcesso}/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos para que o usuário informado tenha permissão de realizar o entranhamento especial no processo informado.
Regras de Negócio
ObterPapeisPermitidosEntranhamentoEspecial:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca papéis com permissão para entranhamento especial (ObterPapeisAtoEntranhamentoEspecial).
ObterPapeisAtoEntranhamentoEspecial:
- Constrói status do processo com "BuildProcessoStatus", se o resultado for nulo, gera erro.
- Caso o processo não tenha custódia informada, gera erro.
- Busca papéis do usuário com permissão para a ação específica (API EAQ (PossuiAcao).
- Filtra os papéis retornados para manter apenas os vinculados ao mesmo patriarca da custódia do processo.
- Remove possíveis duplicatas da lista de credenciados.
Endpoint
`/v1/processo-ato/pas-autuacao/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos para que o usuário informado tenha permissão de autuar um processo do tipo PAS.
Regras de Negócio
ObterPapeisPermitidosAutuacaoPAS:
- Verifica se guidUsuario é válido.
- Busca papéis com permissão para realizar autuação de processos do tipo PAS (ObterPapeisAtoAutuacaoPAS).
ObterPapeisAtoAutuacaoPAS:
- Realiza busca através de (ObterPapeisAtoAutuacao, método já documentado anteriormente).
Endpoint
`/v1/processo-ato/pas-edicao/{idProcesso}/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos para que o usuário informado tenha permissão para realizar a edição do processo do tipo PAS informado.
Regras de Negócio
ObterPapeisPermitidosEdicaoPAS:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca papéis com permissão para realizar edição em processos do tipo PAS (ObterPapeisAtoEdicaoPAS).
ObterPapeisAtoEdicaoPAS:
- Constrói status do processo através de "BuildProcessoStatus". Caso o resultado seja nulo, gera erro.
- Verifica se o processo é do tipo Sancionatório. Caso não seja, gera erro.
- Busca papéis com custódia do processo em andamento (LogicaPapeisCustodiaProcessoEmAndamento, método já documentado anteriormente).
Endpoint
`/v1/processo-ato/pas-entranhamento/{idProcesso}/{guidUsuario}/papeis-permitidos`
Obtém os papéis permitidos para que o usuário informado tenha permissão para realizar o entranhamento em um processo do tipo PAS informado.
Regras de Negócio
ObterPapeisPermitidosEntranhamentoPAS:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca papéis com permissão para entranhamento em processos do tipo PAS (ObterPapeisCustodiaProcessoPAS).
ObterPapeisCustodiaProcessoPAS:
- Constrói status do processo com "BuildProcessoStatus".
- Verifica se o processo é do tipo sancionatório e se possui custódia informada. Caso contrário, gera erro.
- Obtém os papéis de custódia do processo relacionados ao usuário (LogicaPapeisCustodiaProcessoEmAndamento, método já documentado anteriormente).
- Obtém papéis de custódia do processos tipo PAS relacionados ao usuário (LogicaPapeisCustodiaPAS, método já documentado anteriormente).
- Todos os papéis são validados e adicionados a lista de papéis credenciados (exceto duplicatas).
Endpoint
`/v1/processo-ato/pas-gerir-representantes-legais/{idProcesso}/{guidUsuario}/papeis-permitidos`
Obtém os papeis permitidos para que o usuário informado tenha permissão para realizar a gestão dos representantes legais de um processo do tipo PAS informado.
Regras de Negócio
ObterPapeisPermitidosGerirRepresentantesLegais:
- Verifica se guidUsuario e idProcesso são válidos.
- Busca papéis com permissão para a ação gerir representantes (ObterPapeisAcaoGerirRepresentantesPAS).
ObterPapeisAcaoGerirRepresentantesPAS:
- Constrói status do processo com "BuildProcessoStatus".
- Verifica se o processo é do tipo sancionatório e se possui custódia informada. Caso contrário, gera erro.
- Obtém os papéis de custódia do processo relacionados ao usuário (LogicaPapeisCustodiaProcessoEmAndamento, método já documentado anteriormente).
- Obtém papéis de advogado vinculados ao usuário (API EAQ (ObterUsuarioPapeisAdvogado)).
- Todos os resultados são validados e adicionados à lista de papéis credenciados. (exceto duplicatas)
Usuários
Endpoint
`/v1/usuario/emails-notificacao`
Obtém o e-mail válido pelas diretrizes do E-Docs para cada guid de usuário informado. Caso o usuário não tenha nenhum e-mail considerado válido, ele não constará na lista de retorno.
Regras de Negócio
ObterEmailsCalculados:
- Verifica se a lista de guids é válida.
- Busca email do usuário (API EAQ (ObterUsuarioEmailsByGuid)).
- Cada email encontrado é validado através de "CalcularEmailValido", e adicionado à lista de emails calculados.
CalcularEmailValido:
- Caso o objeto emailDto seja nulo, o método termina imediatamente e retorna sucesso com null.
- Busca papéis de servidor (API EAQ (ObterUsuarioPapeisServidor)).
- Verifica se o agente existe:
- Pega o primeiro agente retornado, caso não tenha nenhum agente associado, retorna null.
- Determina se o cidadão é servidor ou se pertence à SESA ou à SEDU.
- Caso seja servidor e não da SESA/SEDU:
- Aceita apenas emails corporativos/gorvernamentais. (caso o email seja pessoal, ele verifica usando as mesmas regras do email corporativo/governamental)
- Em qualquer outro caso, prioriza o email corporativo. Caso não exista, usa o email pessoal.
- Cria o objeto de retorno somente se encontrar algum email válido.
Endpoint
`/v1/usuario/{guidUsuario}/cache/limpar`
Limpar dados do cache do usuário logado. (Principal uso no logoff do E-Docs)
Regras de Negócio
Building...
Endpoint
`/v1/usuario/{guidUsuario}/cache/iniciar`
Iniciar no cache o objeto do usuário logado cache, caso exista o objeto é mantido. (Principal uso no login do E-Docs).
Regras de Negócio
Building...
Endpoint
`/v1/usuario/{guidUsuario}/cache/gerar`
Gera os dados do usuário logado no cache com todas as informações de permissao.
Regras de Negócio
MontarUsuarioLogadoCache (método já documentado anteriormente).
Endpoint
`/v1/usuario/{guidUsuario}/cache`
Obtém os dados do usuário logado cache com todas as informações de permissão e detalhes.
Regras de Negócio
ObterUsuarioLogadoCache (método já documentado anteriormente).
Endpoints V2
- Usam os dados do usuário em cache.